系统监控服务器

System Stats MCP Server 是一个用于系统监控和管理的工具,提供实时系统状态监控、进程管理、系统d服务管理和日志查看功能。

  • by LunnosMp4
  • JavaScript
  • 混合部署
  • 更新于
在 GitHub 查看 LunnosMp4/VM-Manager-MCP

使用说明

系统统计MCP服务器

特性

系统监控工具

  • 运行时间 -在几秒钟和几小时内获得系统正常运行时间
  • CPU 使用率 -检索CPU信息和负载平均值
  • 内存占用 -用百分比监视总内存、可用内存和已用内存
  • 主机配置 -获取操作系统平台、版本、体系结构和主机名
  • 磁盘使用情况 -列出所有已装载的文件系统及其使用信息
  • 网络信息 -获取网络接口地址(IPv4、IPv6、MAC)
  • 进程列表 -列出所有正在运行的进程,包括PID、用户、CPU和内存使用情况
  • 开放端口 -列出所有侦听TCP/UDP端口和使用它们的进程

进程管理

  • 杀死进程 -使用SIGKILL通过PID终止进程
  • PM2集成 -PM2流程管理器的全面支持:
    • 列出所有PM2管理流程
    • 启动/停止PM2过程
    • 重新启动PM2进程
    • 删除PM2进程

系统化服务管理

  • systemctl_list -列出systemd服务,可选择按状态筛选(active, failed, inactive)
  • 系统状态 -获取特定systemd服务的状态
  • 系统动作 -启动、停止、重新启动、启用或禁用systemd服务

日志查看

  • get_logs -通过以下方式检索最近的日志 journalctl,可选择按服务名称和行数进行筛选

安装

npm install

配置

使用环境变量配置服务器:

变量 默认值 描述
PORT 3001 服务器端口(流式HTTP模式)
BASE_PATH (空) 端点的URL路径前缀
MCP_TOOL_TIMEOUT_MS 300000 工具执行超时(毫秒)
MCP_MAX_RESPONSE_BYTES 0 最大响应大小(0=无限制)
MCP_API_KEY (空) 用于身份验证的API密钥(可选)
MODE 可流式传输http 启动模式: streamable-http 或 stdio

示例 .env 文件:

PORT=3001
BASE_PATH=/mcp
MCP_API_KEY=your-secret-key
MCP_TOOL_TIMEOUT_MS=300000

用法

以流式HTTP模式启动

node index.js
# or with custom settings
node index.js --mode=streamable-http

服务器在上运行 http://0.0.0.0:3001 (或自定义端口),并在以下位置公开MCP端点 http://0.0.0.0:3001/mcp (或 ${BASE_PATH}/mcp 如果已配置)。

这 /mcp 端点接受 GET, POST,以及 DELETE 通过Streamable HTTP传输请求。

以标准模式启动

node index.js --mode=stdio

API身份验证

如果 MCP_API_KEY 设置后,请求必须包括通过以下方式之一进行身份验证:

  • 头球 X-API-Key: your-key
  • 头球 Authorization: Bearer your-key
  • 查询参数: ?key=your-key

工具响应格式

所有工具都返回带有错误处理的JSON响应:

成功响应:

{
  "content": [
    {
      "type": "text",
      "text": "{...tool result...}"
    }
  ]
}

错误响应:

{
  "error": "error_code",
  "message": "Human-readable error message"
}

发展

项目结构

  • index.js -主服务器实现
  • package.json -依赖关系和脚本
  • .env -环境配置(可选)

依赖项

  • @modelcontextprotocol/sdk -MCP协议实现
  • express -HTTP服务器框架
  • dotenv -环境变量管理

错误处理

服务器内置了错误处理功能,用于:

  • 工具输入无效
  • 工具执行超时
  • PM2未安装/不可用
  • Shell命令失败
  • 响应大小限制