系统信息MCP服务器
提供实时系统信息和度量的模型上下文协议(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-当前进程列表资源
⭐ 主要特点
- 实时度量 具有可配置的缓存
- 与跨平台支持 (Windows、macOS、Linux)
- 注重安全 具有敏感数据过滤功能
- 性能优化 具有智能缓存
- 全面的错误处理
- 环境变量配置
安装
使用uvx(推荐)
安装和使用此MCP服务器的最简单方法是 uvx:
uvx install mcp-system-info然后在MCP客户端(如Claude Desktop)中配置它:
{
"mcpServers": {
"system-info": {
"command": "uvx",
"args": ["mcp-system-info"]
}
}
}开发安装
对于当地发展:
- 克隆存储库:
git clone
cd mcp-system-info- 安装依赖项:
uv sync- 运行服务器:
uv run mcp-system-info发展
项目结构
mcp-system-info/
├── src/
│ └── system_info_mcp/
│ ├── __init__.py
│ ├── server.py # Main FastMCP server
│ ├── tools.py # Tool implementations
│ ├── resources.py # Resource handlers
│ ├── config.py # Configuration management
│ └── utils.py # Utility functions
├── tests/ # Comprehensive test suite
├── pyproject.toml # Project configuration
└── 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/建筑与出版
构建包
# Build distribution files
uv build这将在中创建分发文件 dist/ 目录:
mcp_system_info-*.whl(车轮锉)mcp_system_info-*.tar.gz(来源分布)
使用uvx进行本地测试
发布前在本地测试包:
# Test running the command directly from wheel file
uvx --from ./dist/mcp_system_info-*.whl mcp-system-info
# Test with environment variables
SYSINFO_LOG_LEVEL=DEBUG uvx --from ./dist/mcp_system_info-*.whl mcp-system-info发布到PyPI
# Publish to PyPI (requires PyPI account and token)
uv publish
# Or publish to TestPyPI first
uv publish --repository testpypi注: 您需要:
- 在以下位置创建PyPI帐户https://pypi.org
- 在您的帐户设置中生成API令牌
- 使用您的凭据配置uv或使用环境变量
环境配置
服务器支持通过环境变量进行配置:
核心设置
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(默认)
# Uses standard input/output - no network port
uv run mcp-system-info2.SSE(服务器发送事件)
# HTTP server with real-time streaming
SYSINFO_TRANSPORT=sse SYSINFO_PORT=8001 uv run mcp-system-info
# Server will be available at http://localhost:8001/mcp3.可流式传输HTTP
# HTTP server with request/response
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信息
# Basic CPU info
{
"name": "get_cpu_info_tool",
"arguments": {
"interval": 1.0,
"per_cpu": false
}
}获取进程列表
# Top 10 processes by memory usage
{
"name": "get_process_list_tool",
"arguments": {
"limit": 10,
"sort_by": "memory",
"filter_name": "python"
}
}获取磁盘信息
# All disk usage
{
"name": "get_disk_info_tool",
"arguments": {}
}
# Specific path
{
"name": "get_disk_info_tool",
"arguments": {
"path": "/home"
}
}资源使用情况
系统概述
# Request comprehensive system overview
{
"uri": "system://overview"
}进程列表资源
# Get top processes resource
{
"uri": "system://processes"
}与Claude Desktop集成
添加到Claude桌面
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %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:
- “我目前的CPU使用率是多少?”
- “显示使用最多内存的前10个进程”
- “有多少可用磁盘空间?”
- “我的系统正常运行时间是多少?”
- “给我一个完整的系统概述”
测试
运行测试
# Run all tests
uv run pytest
# Run with verbose output
uv run pytest -v
# Run specific test file
uv run pytest tests/test_tools.py
# Run with coverage report
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 -完全支持依赖硬件的传感器可用性
- 视窗 -完全支持特定于平台的优化
故障排除
常见问题
- 权限错误: 某些系统信息可能需要提升权限
- 传感器缺失: 温度/风扇数据可用性因硬件而异
- 性能影响: 减少缓存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风格指南
- 为所有函数添加类型提示
- 为新功能编写测试
- 根据需要更新文档
许可证
\[在此处添加您的许可证信息\]
支持
\[在此处添加支持信息\]
