Mcp System Info

Mcp System Info

🚀 系统信息MCP服务器

这是一个模型上下文协议(MCP)服务器,用于提供实时的系统信息和指标。该服务器通过标准化的MCP接口,公开CPU使用率、内存统计信息、磁盘信息、网络状态和正在运行的进程等数据。

🚀 快速开始

本MCP服务器可通过uvx便捷安装使用,也可进行本地开发部署。安装完成后,可在MCP客户端(如Claude Desktop)中进行配置,即可获取系统信息。

✨ 主要特性

🛠️ 可用工具

  • get_cpu_info - 获取CPU使用率、核心数量、频率和负载平均值
  • get_memory_info - 获取虚拟内存和交换内存统计信息
  • get_disk_info - 获取所有挂载点或特定路径的磁盘使用信息
  • get_network_info - 获取网络接口信息和I/O统计信息
  • get_process_list - 获取正在运行的进程列表,支持排序和过滤
  • get_system_uptime - 获取系统启动时间和运行时长信息
  • get_temperature_info - 获取温度传感器和风扇转速信息(若硬件支持)

📚 可用资源

  • system://overview - 获取包含所有指标的系统综合概述
  • system://processes - 获取当前进程列表资源

⭐ 关键特性

  • 实时指标:支持可配置的缓存机制
  • 跨平台支持:支持Windows、macOS和Linux系统
  • 安全至上:对敏感数据进行过滤
  • 性能优化:采用智能缓存提高性能
  • 全面的错误处理:确保系统稳定运行
  • 环境变量配置:方便灵活配置服务器

📦 安装指南

使用uvx(推荐)

使用 uvx 安装和使用此MCP服务器是最简单的方法:

uvx install mcp-system-info

然后在MCP客户端(如Claude Desktop)中进行配置:

{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"]
}
}
}

开发环境安装

若要进行本地开发,可按以下步骤操作:

  1. 克隆仓库
    git clone 
    cd mcp-system-info
    
  2. 安装依赖
    uv sync
    
  3. 启动服务器
    uv run mcp-system-info
    

💻 使用示例

基础用法

获取CPU信息

# 基本CPU信息
{
"name": "get_cpu_info_tool",
"arguments": {
"interval": 1.0,
"per_cpu": false
}
}

获取进程列表

# 按内存使用量排序的前10个进程
{
"name": "get_process_list_tool",
"arguments": {
"limit": 10,
"sort_by": "memory",
"filter_name": "python"
}
}

获取磁盘信息

# 所有磁盘使用情况
{
"name": "get_disk_info_tool",
"arguments": {}
}

# 特定路径的磁盘使用情况
{
"name": "get_disk_info_tool",
"arguments": {
"path": "/home"
}
}

高级用法

系统概述

# 请求全面的系统概述
{
"uri": "system://overview"
}

进程列表资源

# 获取顶级进程资源
{
"uri": "system://processes"
}

📚 详细文档

与Claude Desktop集成

添加到Claude Desktop

  1. 定位Claude Desktop配置文件
    • macOS~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows%APPDATA%\Claude\claude_desktop_config.json
  2. 添加MCP服务器配置

使用uvx(推荐)

{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}

本地开发环境

{
"mcpServers": {
"system-info": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-system-info",
"run",
"mcp-system-info"
],
"env": {
"SYSINFO_TRANSPORT": "stdio",
"SYSINFO_CACHE_TTL": "10",
"SYSINFO_LOG_LEVEL": "INFO"
}
}
}
}

HTTP传输(SSE)

{
"mcpServers": {
"system-info-http": {
"command": "uvx",
"args": ["mcp-system-info"],
"env": {
"SYSINFO_TRANSPORT": "sse",
"SYSINFO_HOST": "localhost",
"SYSINFO_PORT": "8001",
"SYSINFO_MOUNT_PATH": "/mcp"
}
}
}
}
  1. 重启Claude Desktop 以加载新的服务器配置。

与Claude配合使用

配置完成后,你可以向Claude询问以下问题:

  • "我当前的CPU使用率是多少?"
  • "显示使用内存最多的前10个进程"
  • "可用磁盘空间有多少?"
  • "我的系统运行时长是多少?"
  • "给我一个完整的系统概述"

测试

运行测试

# 运行所有测试
uv run pytest

# 运行并输出详细信息
uv run pytest -v

# 运行特定测试文件
uv run pytest tests/test_tools.py

# 运行并生成覆盖率报告
uv run pytest --cov=system_info_mcp --cov-report=html

测试结构

  • tests/test_config.py - 配置验证测试
  • tests/test_tools.py - 工具实现测试
  • tests/test_resources.py - 资源处理程序测试
  • tests/test_utils.py - 实用函数测试

所有测试都使用模拟依赖项,以确保在不同环境中能够一致、快速地执行。

性能考虑

  • 缓存机制:智能缓存减少系统调用,提高响应时间
  • 可配置间隔:根据需求调整缓存TTL
  • 懒加载:温度传感器和其他可选功能仅在需要时加载
  • 异步支持:基于FastMCP构建,实现高效的异步操作

安全特性

  • 只读操作:不具备系统修改能力
  • 敏感数据过滤:过滤命令行参数中的密码、令牌等敏感信息
  • 输入验证:在处理前验证所有参数
  • 错误隔离:一个工具的失败不会影响其他工具

平台支持

  • macOS - 全面支持,在支持的硬件上包括温度传感器
  • Linux - 全面支持,传感器可用性取决于硬件
  • Windows - 全面支持,具备特定平台的优化

故障排除

常见问题

  1. 权限错误:某些系统信息可能需要提升权限才能获取
  2. 传感器缺失:温度/风扇数据的可用性因硬件而异
  3. 性能影响:减少缓存TTL或限制进程数量以提高性能

调试模式

启用调试日志以进行故障排除:

SYSINFO_LOG_LEVEL=DEBUG uv run mcp-system-info

验证安装

测试工具是否正常工作:

uv run python -c "from system_info_mcp.tools import get_cpu_info; print(get_cpu_info())"

贡献代码

  1. 分叉仓库
  2. 创建功能分支
  3. 进行修改并添加测试
  4. 运行完整的测试套件
  5. 提交拉取请求

代码标准

  • 遵循PEP 8风格指南
  • 为所有函数添加类型提示
  • 为新功能编写测试
  • 根据需要更新文档

🔧 技术细节

项目结构

mcp-system-info/
├── src/
│   └── system_info_mcp/
│       ├── __init__.py
│       ├── server.py          # 主FastMCP服务器
│       ├── tools.py           # 工具实现
│       ├── resources.py       # 资源处理程序
│       ├── config.py          # 配置管理
│       └── utils.py           # 实用函数
├── tests/                     # 全面的测试套件
├── pyproject.toml            # 项目配置
└── README.md

环境配置

服务器支持通过环境变量进行配置:

核心设置

  • SYSINFO_CACHE_TTL - 缓存的生存时间(秒)(默认值:5)
  • SYSINFO_MAX_PROCESSES - 返回的最大进程数(默认值:100)
  • SYSINFO_ENABLE_TEMP - 启用温度传感器(默认值:true)
  • SYSINFO_LOG_LEVEL - 日志级别(默认值:INFO)

传输配置

  • SYSINFO_TRANSPORT - 传输协议:stdiossestreamable-http(默认值:stdio)
  • SYSINFO_HOST - HTTP传输绑定的主机(默认值:localhost)
  • SYSINFO_PORT - HTTP传输绑定的端口(默认值:8001)
  • SYSINFO_MOUNT_PATH - SSE传输的挂载路径(默认值:/mcp)

传输模式

1. STDIO(默认)

# 使用标准输入输出 - 无需网络端口
uv run mcp-system-info

2. SSE(服务器发送事件)

# 具有实时流的HTTP服务器
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
# 服务器将在 http://localhost:8001/mcp 可用

3. 可流式HTTP

# 具有请求/响应的HTTP服务器
SYSINFO_TRANSPORT=streamable-http SYSINFO_PORT=9000 uv run mcp-system-info

完整示例

SYSINFO_TRANSPORT=sse \
SYSINFO_HOST=0.0.0.0 \
SYSINFO_PORT=8001 \
SYSINFO_CACHE_TTL=10 \
SYSINFO_LOG_LEVEL=DEBUG \
uv run mcp-system-info

📄 许可证

[在此处添加许可证信息]

支持

[在此处添加支持信息]

  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-10-06 12:21

相似服务问题

相关AI产品