系统监视器(系统监视器MCP服务器)
sys-monitor 是一个MCP(模型上下文协议)服务器,它公开 只读的 通过以下方式向MCP客户端发送系统指标(CPU、内存、磁盘、进程、网络) 工具, 资源,以及 提示.
它能做什么
以下示例演示了AI代理可以使用sys监视器MCP处理的查询类型。
系统健康与概述
- 显示全面的系统健康状况和运行状态。
______________________________________________________________________
存储管理
- 检索所有已装载卷的当前可用磁盘空间。
- 生成详细的存储利用率审计。
______________________________________________________________________
过程监控
- 返回所有活动系统进程的总数。
- 确定当前活动的Python实例的数量。
- 验证执行状态
cursor过程。 - 显示详细的元数据和运行时统计信息
cursor过程。
______________________________________________________________________
内存和资源消耗
- 计算所有Python进程的总内存消耗。
- 确定内存利用率最高的特定Python进程。
- 检索特定内存使用指标
cursor过程。
______________________________________________________________________
快速参考汇总表
| 类别 | 推荐技术查询 |
|---|---|
| 系统 | 显示系统运行状况和状态。 |
| 存储 | 检索可用磁盘空间和存储审核。 |
| 过程 | 列出活动进程(总数或按语言/ID)。 |
| 资源 | 报告每个进程或组的内存消耗情况。 |
______________________________________________________________________
MCP客户端配置
光标和VSCode配置
光标MCP设置
Cursor通过其设置支持MCP服务器。要使用HTTP传输配置sys监视器,请执行以下操作:
- 打开光标设置:
- 按 Ctrl+Shift+P (Windows/Linux)或 Cmd+Shift+P (macOS) - 键入“首选项:打开用户设置(JSON)” - 或导航到:文件→ 偏好设置→ 设置→ 扩展→ MCP
- 添加MCP服务器配置:
选项A:标准模式(建议本地使用)
{
"mcpServers": {
"sys-monitor": {
"command": "uv",
"args": ["run", "python", "-m", "sys_monitor"],
"env": {}
}
}
}选项B:具有流式HTTP传输的HTTP模式
{
"mcpServers": {
"sys-monitor-http": {
"command": "uv",
"args": ["run", "python", "-m", "sys_monitor", "--transport", "http", "--port", "8000"],
"env": {
"MCP_TRANSPORT": "http",
"MCP_HOST": "127.0.0.1",
"MCP_PORT": "8000"
}
}
}
}选项C:连接到已运行的HTTP服务器
{
"mcpServers": {
"sys-monitor-remote": {
"url": "http://localhost:8000/mcp",
"transport": "streamable-http"
}
}
}选项D:连接到HTTPS服务器(安全)
{
"mcpServers": {
"sys-monitor-https": {
"url": "https://127.0.0.1:8000/mcp",
"transport": "streamable-http"
}
}
}- 重新加载光标:重新启动游标或重新加载窗口(
Ctrl+Shift+P→ “开发人员:重新加载窗口”)
- 验证连接:
- 打开Cursor AI聊天 - 键入命令,如“显示CPU信息”或“我的系统内存使用情况如何?” - Cursor现在应该能够访问系统监控工具
VSCode MCP设置
VSCode with GitHub Copilot通过MCP设置文件支持MCP服务器:
- 查找或创建MCP配置文件:
- 窗户: %APPDATA%\Code\User\globalStorage\github.copilot-mcp\mcp-config.json - macOS: ~/Library/Application Support/Code/User/globalStorage/github.copilot-mcp/mcp-config.json - Linux: ~/.config/Code/User/globalStorage/github.copilot-mcp/mcp-config.json
- 添加配置:
标准模式:
{
"mcpServers": {
"sys-monitor": {
"command": "uv",
"args": ["run", "python", "-m", "sys_monitor"],
"env": {}
}
}
}HTTP模式:
{
"mcpServers": {
"sys-monitor-http": {
"command": "uv",
"args": ["run", "python", "-m", "sys_monitor", "--transport", "http", "--port", "8000"],
"env": {
"MCP_TRANSPORT": "http"
}
}
}
}连接到正在运行的服务器:
{
"mcpServers": {
"sys-monitor-remote": {
"url": "http://localhost:8000/mcp",
"transport": "http"
}
}
}连接到HTTPS服务器:
{
"mcpServers": {
"sys-monitor-https": {
"url": "https://127.0.0.1:8000/mcp",
"transport": "http"
}
}
}- 重新加载VSCode:重新启动VSCode或重新加载窗口
- 测试集成:使用GitHub Copilot聊天查询系统信息
配置说明
流式HTTP模式的优点:
- ✅ 会话管理:跨请求自动跟踪会话
- ✅ 协议遵从:采用JSON-RPC 2.0的完整MCP协议
- ✅ 连接池:多个请求的性能更好
- ✅ 错误处理:标准JSON-RPC错误代码
何时使用HTTP模式:
- 基于Web的MCP客户端
- 远程监控场景
- 多个并发客户端
- Docker/容器化部署
- 网络可访问部署
何时使用标准模式:
- 单个本地客户端(游标、VSCode)
- 最高安全性(无网络暴露)
- 最简单的配置
- 默认推荐模式
故障排除:
- 确保
uv已安装:uv --version - 验证是否安装了sys监视器:
uv run python -m sys_monitor --help - 在Cursor/VCode输出面板中检查服务器日志
- 对于HTTP模式,请验证服务器是否正在运行:
curl http://localhost:8000/mcp
HTTP模式(Web客户端/远程访问)
有关HTTP传输配置,请参阅 mcp-config.json.http.example 其中包括:
- 本地主机HTTP:本地web客户端的安全默认配置
- 远程HTTP:带有安全警告的网络可访问部署
- Docker部署:带有反向代理示例的容器配置
- 环境变量:替代配置方法
⚠️ 远程访问安全警告:
- 始终使用带有身份验证的反向代理(nginx、Traefik)
- 配置防火墙规则以限制对受信任网络的访问
- 在生产环境中使用HTTPS/TLS(在反向代理端终止SSL)
- 未经身份验证,切勿将HTTP模式直接暴露给互联网
nginx远程设置示例:
# nginx reverse proxy with basic auth
location /mcp/ {
auth_basic "MCP Server";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8000/mcp/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}环境变量
使用环境变量配置服务器(对容器很有用):
# Set transport mode
export MCP_TRANSPORT=http
export MCP_HOST=127.0.0.1
export MCP_PORT=8000
# Start server (uses env vars)
sys-monitor配置优先级: CLI参数>环境变量>默认值
可用环境变量:
MCP_TRANSPORT-运输方式:stdio(默认)或httpMCP_HOST-HTTP绑定主机(默认值:127.0.0.1)MCP_PORT-HTTP绑定端口(默认值:8000)MCP_SESSION_TIMEOUT-会话超时(秒)(默认值:3600)
故障排除
权限被拒绝错误
某些操作可能需要提升权限:
- 流程详细信息:访问系统进程可能需要管理员/root权限
- 网络连接:列出网络连接可能需要在某些平台上提升权限
- 解决方案:服务器返回结构化错误(
ToolError)而不是崩溃。检查错误type字段为permission_denied.
不支持的功能
一些功能是特定于平台的:
- 平均负载:仅在类Unix系统(Linux、macOS)上可用。退货
unsupportedWindows上出现错误。 - 网络连接:可能并非在所有平台上都可用,或者可能需要提升权限。
- 解决方案:服务器通过返回结构化错误来优雅地处理不受支持的功能
type=unsupported.
Windows上的平均负载
Windows不支持平均负载。这 get_load_average 工具将返回 ToolError 随着 type=unsupported这是预期的行为。
高延迟
如果工具调用的时间比预期的要长:
- 流程列表:在具有许多进程的系统上可能需要更长的时间(目标:\<5秒)
- 网络连接:可能需要更长的时间或需要更高的权限
- CPU采样:使用0.1s间隔进行快速响应;可能不太准确
服务器未启动
如果服务器无法启动:
- 验证是否安装了Python 3.11+:
python --version - 验证是否安装了依赖项:
uv pip list或pip list - 检查端口冲突(stdio传输不应出现此问题)
- 查看日志中的错误消息
MCP检查员问题
如果MCP检查器无法启动:
- 验证是否安装了Node.js和npx:
npx --version - 检查员将在首次使用时自动下载该包
- 确保服务器可以独立启动:
make server
______________________________________________________________________
部署
- 部署指南: 部署.md
- 示例组成文件:
- nginx配置示例: nginx.conf示例
- HTTP客户端配置示例: mcp-config.json.http.emple
______________________________________________________________________
安全与隐私
- 使用只读监控
psutil. - 有意限制/编辑敏感数据(例如,命令行和远程端点)。
- 远程HTTP访问:将其置于经过身份验证的反向代理之后;不要公开曝光。
发展
看 快速启动.md.
______________________________________________________________________
更多文档
- MCP SDK故障排除: 文档/故障排除-mcp-dk.md
- 错误代码: docs/mcp-error-codes.md
- 工具/资源/提示合同: 规格/001 mcp系统监视器/合同#
______________________________________________________________________
