用途
netops-mcp 是一个 Model Context Protocol(MCP)服务器,用于把常见的 DevOps 与网络诊断工具通过标准化接口暴露给 MCP 客户端,如 Claude Desktop、Claude Code 和 Cursor。每个工具都是对标准操作系统实用程序的轻量、带输入校验的封装,便于在 AI 客户端中以统一方式调用网络与系统诊断能力。
主要能力
服务器提供 26 项网络与系统诊断工具,按类别包括:
- 连通性:ping、traceroute、mtr、telnet、netcat
- DNS:nslookup、dig、host
- HTTP / API:curl、httpie、api_test
- 发现与扫描:nmap_scan、service_discovery、port_scan、service_enumeration
- 网络状态:ss、netstat、arp、arping
- 系统监控:status、CPU、内存、磁盘、进程列表、工具可用性
使用方式
支持两种传输:
- stdio:客户端将服务器作为子进程启动,无认证,适合本地使用。
- HTTP:长期运行的服务,支持认证、限流和指标。HTTP 模式默认要求 API 密钥,缺少密钥时拒绝启动。
配置从 JSON 文件加载(默认 config/config.json,或 $NETOPS_MCP_CONFIG),由 Pydantic 模型校验;只有五个环境变量被读取,其余均在 JSON 文件中。主机/端口/路径解析优先级为命令行标志 > 配置文件的 server 段 > 内置默认值(0.0.0.0 / 8815 / /netops-mcp)。
认证方面,只接受 sha256:<64-hex> 摘要,明文密钥在配置加载时被拒绝。客户端发送明文密钥,支持三种请求头;无密钥请求返回 401,无效密钥返回 403。/health 始终公开,/metrics 在启用认证时需要密钥。
MCP 客户端配置:
- stdio(Claude Desktop / Cursor):添加到 claude_desktop_config.json 或 .cursor/mcp.json。
- Claude Code 可用一条命令添加同一服务器。
- HTTP:客户端指向运行中的服务器,并发送明文密钥作为请求头。
适用场景
适合需要通过 MCP 客户端执行网络连通性测试、DNS 查询、HTTP 请求、网络发现与扫描、网络状态检查及系统监控的 DevOps 和网络运维场景。
限制
- 需要 Python >= 3.10 和 uv(推荐)。
- 仅支持 Linux 或 macOS,不支持 Windows。
- 系统工具需在 PATH 中,启动时会检查可用性:curl、ping、traceroute、mtr、telnet、nc、nmap、ss、netstat、arp、arping、nslookup、dig、host;httpie 为可选。
- 输入经过校验以防命令注入,HTTP/扫描目标解析后分类,默认阻止对回环、链路本地和云元数据地址的请求(允许私有/局域网范围)。特权 nmap 扫描由配置控制。
- 生产环境中 HTTP 模式应置于反向代理(nginx、Caddy)之后以提供 TLS,切勿将明文 HTTP 端口暴露到互联网。
- Docker 镜像以非 root 用户运行,仅具备 NET_ADMIN、NET_RAW 能力,限制 2 CPU / 1 GB(docker-compose.yml)。
- 扫描工具(nmap_scan、port_scan、service_enumeration)及其他主动探测未经授权可能违法,仅可扫描自己拥有或获得明确许可的主机和网络,使用者自行承担全部责任。
版本与许可
0.1.0 版本有破坏性变更:HTTP 模式默认要求 API 密钥(security.require_auth 默认为 true),stdio 模式不受影响。项目采用 MIT 许可。提供托管部署(位于 Fronteir AI)。