Skip to main content
Glama
sykin7

mcp-vps-monitor

by sykin7
README.md

# mcp-vps-monitor

一个专为 AI 智能体(如 OpenClaw / 小龙虾、Cursor、Claude Desktop 等)设计的通用 VPS 系统监测与运维 MCP(Model Context Protocol)工具包。

本工具包采用**纯只读架构**,支持数据缓存防高并发打爆 CPU、正则表达式防命令注入,并提供精准的内存/Swap 统计与 Docker 容器运行状态排查。

---

## 🛠️ 项目结构

```text
mcp-vps-monitor/
├── src/
│   └── index.ts        # MCP 服务核心源码(已优化缓存与安全校验)
├── dist/               # 自动编译生成的 JavaScript 运行目录
├── package.json        # 项目依赖配置
├── tsconfig.json       # TypeScript 编译选项
├── setup.sh            # Linux / VPS 环境一键部署脚本
├── init.bat            # Windows 本地环境一键部署脚本
└── README.md           # 部署使用说明文档

```

---

## 🛠️ 核心功能列表 (Tools)

| 工具名称 | 功能描述 | 特性与安全防护 | 示例输入参数 |
| --- | --- | --- | --- |
| `get_system_metrics` | 获取 CPU 占用、精准可用内存(Available)、Swap 交换分区以及磁盘容量信息 | 具备 3 秒 In-Memory 缓存,防止智能体高频调用打爆 CPU | 无 |
| `check_network_ping` | 测试 VPS 到指定目标 IP 或域名的网络延迟与连通性 | 内置严格正则匹配校验,防范命令行注入攻击 | `{"host": "1.1.1.1"}` |
| `get_top_processes` | 获取当前系统 CPU 或内存占用最高的前 N 个进程 | 经过字段精简脱敏,减少 Token 消耗 | `{"limit": 5}` |
| `get_docker_status` | 获取 VPS 上运行的 Docker 容器列表及其运行状态 | 快速提取容器 ID、名称、镜像与 Up/Exited 状态 | 无 |

---

## 🚀 部署与初始化步骤

### 环境要求

* **Node.js**:v18.0.0 或更高版本
* **npm**:随 Node.js 一起安装

---

### 途径一:在 Linux / VPS 环境部署(推荐)

1. **上传项目文件**:
将 `mcp-vps-monitor` 文件夹上传至 VPS 的任意目录(例如 `/opt/mcp-vps-monitor`)。
2. **运行一键部署脚本**:
进入项目目录并执行 `setup.sh` 脚本,自动安装依赖并完成编译:
```bash
cd /opt/mcp-vps-monitor
bash setup.sh

```


3. **运行结果校验**:
脚本执行完成后,会在项目根目录下生成 `dist/index.js` 文件。

---

### 途径二:在 Windows 本地电脑部署

1. **打开项目目录**:
进入 `mcp-vps-monitor` 根目录。
2. **双击运行脚本**:
直接双击运行 `init.bat` 脚本。
3. **运行结果校验**:
脚本会自动唤起命令行界面进行 `npm install` 与 `npx tsc` 编译,完成后按下任意键退出即可。

---

## 🤖 智能体(Agent)接入配置

### 接入 OpenClaw(小龙虾)

OpenClaw 与 MCP 服务部署在同一台 VPS 环境下时,建议采用 **STDIO 管道传输** 模式接入。

1. 打开 OpenClaw 的配置文件(例如 `openclaw.json` 或 Agent 配置文件)。
2. 在 `mcpServers` 字段中添加以下配置节点:

```json
{
  "mcpServers": {
    "vps-monitor": {
      "command": "node",
      "args": [
        "/opt/mcp-vps-monitor/dist/index.js"
      ]
    }
  }
}

```

> **注意**:请确保 `/opt/mcp-vps-monitor/dist/index.js` 为您 VPS 上的实际绝对路径。

3. 保存配置文件并重启 OpenClaw 服务。

---

## ❓ 常见问题与注意事项

1. **Docker 容器列表获取失败**:
* **原因**:运行 MCP 服务或 OpenClaw 的系统用户缺乏读取 Docker Daemon 的权限。
* **解决方案**:请使用 `root` 用户运行,或将当前非 root 用户加入 docker 用户组:
```bash
sudo usermod -aG docker $USER

```




2. **网络 Ping 测试提示格式非法**:
* **原因**:`check_network_ping` 增加了正则安全过滤,仅支持标准的 IP 地址(如 `1.1.1.1`)或域名(如 `google.com`),不支持带空格或管道符的复杂字符串。

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct monitoring function: system metrics, network ping, top processes, and Docker status. There is no overlap.

Naming Consistency5/5

All tools use consistent snake_case verb_noun naming (get_system_metrics, check_network_ping, get_top_processes, get_docker_status).

Tool Count5/5

Four tools are well-scoped for a VPS monitor, covering essential aspects without being too few or too many.

Completeness4/5

The set covers CPU, memory, disk, network, processes, and Docker status. Minor gaps like uptime or per-partition disk usage exist but are not critical.

Maintenance

ActivityStale
ResponsivenessNo issues