# ops-mcp 生产环境 OPS MCP Server —— 安全的数据库查询 + Docker 容器日志工具。 Go 编译为 ~15MB 单二进制,scratch 镜像部署。 ## 快速开始 ```bash make build && ./ops-mcp -env=dev ``` ## Claude Desktop 配置 ```json { "mcpServers": { "ops-mcp": { "command": "/path/to/ops-mcp", "args": ["-env=dev"] } } } ``` ## Docker Compose 部署(推荐) ```bash # 1. 配置密钥 cp .env.example .env # 编辑 .env,填入真实的 DB_PASSWORD 和 JWT_SECRET # 2. 启动(仅 MCP 服务) make up # 3. 启动(带本地 PostgreSQL,用于开发调试) make up-dev # 4. 查看日志 make logs # 5. 更新部署 git pull && make up # 重新 build 镜像并重启 ``` **docker-compose.yml 做了什么:** | 项目 | 说明 | |---|---| | `build.context` | 从当前目录 `Dockerfile` 构建 | | `ports` | 映射 `8080`(SSE 模式) | | `volumes` | 只读挂载 `/var/run/docker.sock`,挂载 `prod.yaml` | | `read_only: true` | 容器文件系统只读 + tmpfs `/tmp` | | `security_opt` | `no-new-privileges` 禁止提权 | | `cap_drop: [ALL]` | 移除所有 Linux capabilities | | `healthcheck` | 30s 间隔自检 | | `profiles: [dev]` | PG 仅 `--profile dev` 时启动 | ## MCP 工具列表 | 工具 | 说明 | |---|---| | `health` | 服务健康检查、内存、goroutine、连接状态 | | `info` | 版本号、Go 版本、已加载工具列表 | | `db_query` | 参数化只读 SQL 查询(四层安全防护) | | `db_tables` | 列出数据库所有表 | | `db_table_info` | 查看表结构 | | `db_explain` | EXPLAIN 分析查询计划 | | `docker_ps` | 列出 Docker 容器 | | `docker_logs` | 获取容器日志(白名单 + 大小限制) | | `docker_inspect` | 查看容器详情(不泄露 Env 密钥) | ## 开发 ```bash make build # 编译 make test # 测试 make lint # 代码检查(需安装 golangci-lint) make image # 仅构建 Docker 镜像 ```