Skip to main content
Glama
Call123X

server-monitor-mcp

by Call123X
README.md
# Server Monitor MCP

Server Monitor MCP 是一个面向 Linux 服务器的巡检服务,提供网页后台和 MCP 接口。你可以在后台维护多台 SSH 主机,用名称区分业务服务器,然后让机器人直接提问:

- 帮我看一下算力服务器的网络状态
- 帮我看一下算力服务器的处理器型号
- 帮我看一下算力服务器的硬盘使用率

## 功能概览

- 后台登录和服务器管理
- 支持 SSH 密码认证
- 支持 SSH 私钥和私钥口令
- 实时巡检 CPU、内存、磁盘、网络、系统信息
- 支持保存自定义 SSH 巡检命令
- 提供 MCP 工具给上游机器人调用
- 内置请求日志页面,可查看请求内容、返回内容和执行耗时
- 支持在后台配置小智接入地址和 Token

## 技术栈

- FastAPI
- Jinja2
- SQLite
- Paramiko
- FastMCP

## 快速部署

### 1. 安装依赖

```bash
pip install -e .
```

如果你不使用可编辑安装,也可以直接安装依赖:

```bash
pip install fastapi jinja2 itsdangerous mcp paramiko cryptography uvicorn websockets
```

### 2. 准备环境变量

复制 `.env.example` 到 `.env`,至少确认下面这些值:

```env
APP_HOST=127.0.0.1
APP_PORT=8765
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin123456
APP_SECRET=
XIAOZHI_BRIDGE_ENABLED=false
XIAOZHI_ENDPOINT_URL=
XIAOZHI_RECONNECT_DELAY_SECONDS=5
```

说明:

- `APP_SECRET` 留空时,程序会在本地 `data/.app_secret` 自动生成
- `XIAOZHI_ENDPOINT_URL` 可以先留空,之后在后台页面里配置

### 3. 启动服务

```bash
python -m uvicorn app.main:app --host 127.0.0.1 --port 8765
```

启动后访问:

- 后台首页:`http://127.0.0.1:8765/`
- 日志页面:`http://127.0.0.1:8765/logs`
- 系统设置:`http://127.0.0.1:8765/settings`
- MCP 地址:`http://127.0.0.1:8765/mcp`

## 使用方式

### 后台管理

登录后台后可以:

- 添加服务器名称、地址、端口、用户名
- 选择密码认证或私钥认证
- 保存备注和标签
- 对单台服务器执行实时巡检
- 为服务器配置自定义命令,例如 `nvidia-smi`

### MCP 工具

当前提供的工具:

- `list_servers`
- `get_server_snapshot`
- `get_server_metric`
- `run_server_custom_check`

适合的提问方式:

- 查询某台服务器的完整巡检信息
- 单独查询 CPU、内存、磁盘、网络、处理器、主机名、系统信息
- 运行预先保存的自定义命令

## 小智接入

如果要接入小智:

1. 打开后台的“系统设置”
2. 填写 WebSocket 接入地址
3. 填写 Token
4. 保存并应用

Token 会加密存储,页面和日志只显示掩码。

## 运行说明

- 当前巡检逻辑面向 Linux 服务器
- `.env`、数据库、运行日志不会提交到仓库
- SSH 凭据会加密后写入 SQLite
- 生产环境建议放到反向代理后面,并启用 HTTPS