这是一个提供实时系统信息和指标的模型上下文协议(MCP)服务器。该服务器通过标准化的MCP接口公开CPU使用情况、内存统计信息、磁盘信息、网络状态和运行进程。
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 - 当前进程列表资源安装并使用此MCP服务器最简单的方法是通过uvx:
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
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
安装开发依赖项:
uv sync --dev
运行测试:
uv run pytest
带覆盖率运行测试:
uv run pytest --cov=system_info_mcp --cov-report=term-missing
格式化代码:
uv run black src/ tests/
检查代码:
uv run ruff check src/ tests/
类型检查:
uv run mypy src/
# 构建分发文件
uv build
这将在dist/目录下创建分发文件:
mcp_system_info-*.whl(轮子文件)mcp_system_info-*.tar.gz(源码分发)发布前进行本地测试:
# 直接从轮子文件运行命令测试
uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# 带环境变量测试
SYSINFO_LOG_LEVEL=DEBUG uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# 发布到 PyPI(需要 PyPI 账户和令牌)
uv publish
# 或者先发布到 TestPyPI
uv publish --repository testpypi
注意: 您需要:
服务器支持通过环境变量进行配置:
SYSINFO_CACHE_TTL - 缓存生存时间(秒,默认:5)SYSINFO_MAX_PROCESSES - 返回的最大进程数(默认:1SYSINFO_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(服务器发送事件)
# 实时流传输的 HTTP 服务器
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
# 服务器将在 http://localhost:8001/mcp 上可用
3. Streamable 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
# 基本 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 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json添加 MCP 服务器配置:
{
"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"
}
}
}
}
{
"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:
# 运行所有测试
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 - 工具函数测试所有测试都使用模拟依赖项,以便在不同环境中一致且快速地执行。
启用调试日志以进行故障排除:
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())"
[在此处添加您的许可信息]
[在此处添加支持信息]