🚀 系统信息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"]
}
}
}
开发环境安装
若要进行本地开发,可按以下步骤操作:
- 克隆仓库:
git clone <repository-url>
cd mcp-system-info
- 安装依赖:
uv sync
- 启动服务器:
uv run mcp-system-info
💻 使用示例
基础用法
获取CPU信息
{
"name": "get_cpu_info_tool",
"arguments": {
"interval": 1.0,
"per_cpu": false
}
}
获取进程列表
{
"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
- 定位Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 添加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"
}
}
}
}
- 重启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 - 全面支持,具备特定平台的优化
故障排除
常见问题
- 权限错误:某些系统信息可能需要提升权限才能获取
- 传感器缺失:温度/风扇数据的可用性因硬件而异
- 性能影响:减少缓存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())"
贡献代码
- 分叉仓库
- 创建功能分支
- 进行修改并添加测试
- 运行完整的测试套件
- 提交拉取请求
代码标准
- 遵循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
- 传输协议:stdio
、sse
或 streamable-http
(默认值:stdio)
SYSINFO_HOST
- HTTP传输绑定的主机(默认值:localhost)
SYSINFO_PORT
- HTTP传输绑定的端口(默认值:8001)
SYSINFO_MOUNT_PATH
- SSE传输的挂载路径(默认值:/mcp)
传输模式
1. STDIO(默认)
uv run mcp-system-info
2. SSE(服务器发送事件)
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
3. 可流式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
📄 许可证
[在此处添加许可证信息]
支持
[在此处添加支持信息]