🚀 系統信息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
📄 許可證
[在此處添加許可證信息]
支持
[在此處添加支持信息]