🖥️ 系统监视器MCP服务器(Go)
A. 模型上下文协议(MCP) 用Go编写的服务器,提供系统监控、控制和自动化工具,旨在与 克劳德桌面 或任何其他MCP兼容客户端。
______________________________________________________________________
🚀 特性
| 类别 | 工具 | 描述 |
|---|---|---|
| 系统监控 | get_cpu_usage | 返回平均CPU使用率(%) |
get_memory_usage | 显示总计、已使用、免费和使用百分比 | |
get_network_stats | 显示每个接口发送/接收的字节数 | |
get_battery_status | 报告所有电池的充电水平和状态 | |
get_gpu_usage | 通过macOS获取GPU信息 system_profiler | |
get_system_info | 提供操作系统、正常运行时间、内存和磁盘使用情况摘要 | |
| 过程控制 | list_processes | 按CPU使用率列出前N个进程 |
kill_process | 通过PID终止进程 | |
launch_process | 启动命令或应用程序 | |
| 文件系统 | list_files | 列出指定目录中的文件 |
______________________________________________________________________
🧰 需求
- 转到1.22+
- macOS或Linux(适用于
system_profiler或兼容命令) - Claude Desktop(用于MCP集成)
- 依赖关系:
go get github.com/modelcontextprotocol/go-sdk/mcp
go get github.com/shirou/gopsutil/v3
go get github.com/distatus/battery______________________________________________________________________
⚙️ 安装
git clone https://github.com/yourusername/system-monitor-mcp-go.git
cd system-monitor-mcp-go
go mod tidy
go build -o system-monitor-mcp-go main.go______________________________________________________________________
🧩 与Claude Desktop集成
- 打开你的 Claude桌面配置 (通常在
~/Library/Application Support/Claude/claude_desktop_config.json). - 在下面添加此项
mcpServers:
{
"mcpServers": {
"system-monitor": {
"command": "/Users/chinmaychaudhari/Documents/coding/golang-mcp/system-monitor-mcp-go",
"args": [],
"cwd": "/Users/chinmaychaudhari/Documents/coding/golang-mcp"
}
}
}- 重新启动克劳德桌面。
- 问克劳德这样的问题:
> 显示我当前的CPU使用情况。
如果您的MCP服务器运行正常,Claude将调用 get_cpu_usage 工具并显示结果。
______________________________________________________________________
🧪 示例提示
| 提示 | 描述 |
|---|---|
| “显示我当前的CPU使用情况。” | 调用 get_cpu_usage |
| “检查内存使用统计数据。” | 调用 get_memory_usage |
| “按CPU使用率列出前5个进程。” | 调用 list_processes |
| “使用PID 1234终止进程。” | 调用 kill_process |
| “列出~/Documents中的文件。” | 调用 list_files |
______________________________________________________________________
🛠️ 开发说明
- 每个MCP工具都已注册
mcp.AddTool(). - 返回的数据是人类可读的文本和结构化的JSON。
server.Run(ctx, &mcp.StdioTransport{})确保克劳德可以通过stdio进行通信。
______________________________________________________________________
🧠 故障排除
如果您在日志中看到此错误:
spawn ./system-monitor-mcp-go ENOENT这意味着克劳德找不到二进制文件。\ ✅ 通过确保二进制文件存在并具有执行权限来修复它:
chmod +x ./system-monitor-mcp-go或者在配置文件中指定完整路径。
______________________________________________________________________
🧑💻 作者
钦迈·乔杜里\ 在Go中构建应用AI系统和后端工具。
______________________________________________________________________
🪪 许可证
麻省理工学院许可证©2025 Chinmay Chaudhari
