系统统计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=stdioAPI身份验证
如果 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命令失败
- 响应大小限制
