关于 Server Ops MCP
Server Ops MCP 供 AI 编码工具在本地或通过 SSH 检查和管理项目服务器,涵盖日志、资源诊断、项目文件操作及 Nginx 和证书管理,并以内置确认与密钥脱敏控制风险。
主要功能
- 01搜索和查看项目及系统日志
- 02监控 CPU、内存、磁盘和服务
- 03读取、搜索、写入、修补及删除项目文件
- 04测试和读取 Nginx 配置
- 05重载 Nginx 并管理证书
- 06确认变更并脱敏密钥
适用场景
- 01排查项目或系统日志中的错误
- 02检查服务器资源使用和服务状态
- 03在沙箱范围内审查或编辑项目文件
- 04经确认后管理 Nginx 或证书
MCP 相关
这是一个向 AI 客户端提供服务器运维工具的 MCP 服务,支持本地执行和通过 SSH 进行远程操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y server-ops-mcpOPS_PROJECT_ROOTProject root path; all file operations are sandboxed hereOPS_SSH_HOSTRemote server IP / domain; leave empty to run locallyOPS_SSH_PORTSSH port, default 22OPS_SSH_USERSSH usernameOPS_SSH_KEY密钥Path to SSH private key (choose either key or password)OPS_SSH_PASSWORD密钥SSH password (choose either key or password)OPS_SSH_PASSPHRASE密钥Private key passphraseOPS_CONFIG_PATHPath to an extra config file (see config.example.json)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
23收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | enum | 否 | all | cpu | memory | disk | load | processes |
详细介绍
Server Ops MCP
English | 简体中文
一款通用的服务器运维 MCP 服务。通过 .mcp.json,让 Claude Code / Cursor / Codex 等 AI 工具管理多个项目或服务器——排查日志、检查系统资源、读写代码,以及管理 Nginx / 证书。
支持本地和**远程(SSH)**模式,内置两步确认、命令白名单、路径遍历防护和自动密钥脱敏。
功能特性
- 🔍 日志排查:列出 / 读取 / 搜索项目日志、多通道日志和系统日志
- 📊 资源监控:一目了然地查看 CPU / 内存 / 磁盘 / 负载 / 进程 / 服务状态
- 📁 代码操作:读取、写入、修补、删除和搜索文件——所有操作均限制在项目根目录内
- 🌐 Nginx 和证书:测试和读取配置、安全重载、安装和续订证书
- 🔒 安全设计:写入操作需两步确认,提供命令白名单、路径遍历防护和自动脱敏
安装
需要 Node.js 18+。无需克隆或构建——首次使用时,npx 会获取并运行已发布的 npm 包(见下方配置)。
如需从源代码构建(例如用于开发):
git clone https://github.com/GT-dinuo/server-ops-mcp.git
cd server-ops-mcp
npm install
npm run build
构建输出位于 dist/;入口文件为 dist/index.js。
配置
在要使用此工具的每个项目中,创建(或追加内容到).mcp.json,并为每个环境声明一个 MCP 服务。本地模式只需设置 OPS_PROJECT_ROOT;远程模式还需添加 SSH 变量。
{
"mcpServers": {
"myproject-server": {
"command": "npx",
"args": ["-y", "server-ops-mcp"],
"env": {
"OPS_PROJECT_ROOT": "/www/wwwroot/your-project",
"OPS_SSH_HOST": "<server-ip-or-domain>",
"OPS_SSH_PORT": "22",
"OPS_SSH_USER": "ubuntu",
"OPS_SSH_KEY": "~/.ssh/id_rsa"
}
}
}
}
如果从源代码构建,请将命令指向本地构建文件:"command": "node","args": ["/absolute/path/to/server-ops-mcp/dist/index.js"]。
环境变量
| 变量 | 必需 | 说明 |
|---|---|---|
OPS_PROJECT_ROOT | 是 | 项目根目录路径;所有文件操作均限制在此目录内 |
OPS_SSH_HOST | 否 | 远程服务 IP / 域名;留空则在本地运行 |
OPS_SSH_PORT | 否 | SSH 端口,默认为 22 |
OPS_SSH_USER | 否 | SSH 用户名 |
OPS_SSH_KEY | 否 | SSH 私钥路径(选择密钥或密码其中一种) |
OPS_SSH_PASSWORD | 否 | SSH 密码(选择密钥或密码其中一种) |
OPS_SSH_PASSPHRASE | 否 | 私钥密码 |
OPS_CONFIG_PATH | 否 | 额外配置文件的路径——参见“自定义配置” |
用法
配置完成后,只需在 AI 工具中用自然语言描述运维需求。AI 会自动选择并调用合适的工具。
只读操作(直接运行)
Check the server's CPU, memory, and disk usage
Search for error-level logs from the last hour
List the project's log files
Read the Nginx config and check for problems
Find every place in the code that calls sendSms
写入操作(需要确认)
对于写入、删除、命令执行、Nginx 重载、证书安装等操作,工具会先返回一个 confirmationId。AI 会准确展示将要执行的内容,只有在你确认后才会执行:
You: Reload nginx
AI: (calls nginx_reload, returns the pending action + confirmationId)
About to run: nginx -s reload. Confirm?
You: Confirm
AI: (calls confirm_execute to run it)
file_write、file_patch、file_delete、command_exec 等操作都遵循相同的确认流程。
典型场景
- 生产环境故障排查:“为什么服务器内存满了?”→
memory_analysis+log_search协同工作 - 例行检查:“磁盘快满了吗?哪个目录占用最多?”→
disk_analysis - 安全审计:“审查项目配置,查找泄露的密钥”→
config_audit(输出会自动脱敏)
工具列表
系统运维
| 工具 | 描述 |
|---|---|
system_info | CPU / 内存 / 磁盘 / 负载 / 进程 |
memory_analysis | 内存使用情况分析 |
disk_analysis | 磁盘使用情况分析 |
service_status | 服务状态 |
log_search_system | 搜索系统日志 |
nginx_config_test | 测试 Nginx 配置 |
nginx_config_read | 读取 Nginx 配置 |
nginx_reload | 重新加载 Nginx(需要确认) |
certbot_install | 安装证书(需要确认) |
certbot_renew | 续订证书(需要确认) |
项目代码
| 工具 | 描述 |
|---|---|
log_list | 列出项目日志 |
log_read | 读取日志 |
log_search | 搜索日志 |
file_read | 读取文件 |
file_list | 列出目录内容 |
file_search | 搜索代码 |
file_write | 写入文件(需要确认) |
file_patch | 修补文件(需要确认) |
file_delete | 删除文件(需要确认) |
command_exec | 运行白名单中的命令 |
project_overview | 项目概览 |
config_audit | 审核配置(自动脱敏) |
confirm_execute | 确认并运行待处理操作 |
安全
- 只读工具可直接运行。
- 写入、命令执行、重新加载 Nginx、安装证书均需要两步确认(
confirm_execute)。 - 命令执行使用白名单机制——拒绝
rm -rf、sudo和向 shell 管道传入命令等危险操作。 - 文件操作限制在
OPS_PROJECT_ROOT沙盒内;路径遍历会被阻止。 .env文件和日志中的密码、令牌及其他机密信息都会自动脱敏。
自定义配置
下载 config.example.json 并将其另存为 config.json,然后将 OPS_CONFIG_PATH 指向该文件,即可自定义日志通道、命令白名单、读取限制等。
curl -o config.json https://raw.githubusercontent.com/GT-dinuo/server-ops-mcp/main/config.example.json
# (if you cloned the repo: cp config.example.json config.json)
# After editing config.json, set in the .mcp.json env:
# "OPS_CONFIG_PATH": "/absolute/path/to/config.json"
config.example.json 的主要字段:
logChannels:通道名称 → 日志目录路径(相对于项目根目录)maxReadLines/maxReadBytes:每次读取的行数 / 字节数上限commandWhitelist.direct:可直接运行的命令commandWhitelist.confirm:需要确认的命令
开发
npm run dev # watch mode, recompiles on change
npm run build # build to dist/
npm run clean # remove dist/
npm start # run the built Server
注意事项
- 远程操作依赖 SSH——请为 AI 使用只读账户或严格限定范围的命令白名单。
- 私钥文件的权限应设为
600(chmod 600 ~/.ssh/id_rsa)。 - 切勿将包含密码的
.mcp.json或config.json提交到代码仓库。
许可证
MIT © 2026 server-ops-mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。