🦎 Komodo MCP服务器
模型上下文协议服务器 科莫多
使用人工智能助手和自动化工具通过Komodo管理您的Docker或Podman部署。
Komodo MCP Server实现了AI助手(如Claude、GitHub Copilot)和Komodo(容器管理平台)之间的无缝交互,以实现高效的容器管理、服务器编排和部署操作。MCP服务器使您能够通过使用自然语言或自动化工作流来控制Komodo管理的基础设施。
______________________________________________________________________
特性
🛠️ 完整的基础设施控制
- 70个工具,16个类别 --容器、堆栈、部署、服务器、构建、存储库、过程、操作、警报、Docker Swarms(Komodo v2)、变量、资源同步和更新历史的完整生命周期管理——从列出和检查到部署、构建、扩展和销毁。
- 远程终端访问 --通过实时输出流、退出代码和进度报告在服务器、容器、部署和堆栈服务上执行命令。
- 日志搜索和分析 --基于模式的跨容器日志搜索,具有可配置的尾部限制和匹配计数。
🔌 随时随地部署
- 多运输 --流式HTTP(有状态)、带TLS的HTTPS、传统SSE和stdio。相同的服务器,任何客户端。
- 多平台Docker --可用于生产的图像
amd64,arm64,arm/v7,以及arm/v6(树莓派)。使用tini init进行非根、多阶段构建。 - 适用于任何MCP客户端 --Claude Desktop、VS Code/GitHub Copilot或任何与MCP兼容的工具。通过Docker、npx或原生Node.js运行。
🔐 安全和身份验证
- 三种认证方法 -API密钥/密码(推荐)、用户名/密码或JWT令牌。全部支持Docker secrets
*_FILE变体。 - 运行时配置 --通过以下方式动态设置或更改凭据
komodo_configure而无需重新启动服务器。 - 默认硬化 --输入验证(Zod)、日志中的秘密清理、速率限制、DNS重新绑定保护和通过Helmet的安全标头。
⚡ 可靠性和操作
- 实时进度和取消 --长时间运行的操作(部署、启动、停止)报告实时进度。在飞行途中通过AbortSignal取消任何操作。
- 自动重新连接 --具有自动恢复和指数回退功能的连接监控。身份验证失败会立即停止重试。
- 健康与准备 --Kubernetes就绪
/health和/ready端点。komodo_health_check报告服务器版本、连接和身份验证状态。
*建于 mcp服务器框架 --一个生产就绪的TypeScript MCP服务器框架,具有结构化日志记录、OpenTetry和会话管理功能。*
可用工具(70)
| 类别 | 工具 |
|---|---|
| 配置 | komodo_configure, komodo_health_check |
| 容器 | komodo_container_list, komodo_container_inspect, komodo_container_logs, komodo_container_search_logs, komodo_container_action *(启动/停止/重新启动/暂停/取消暂停)* |
| 服务器 | komodo_server_list, komodo_server_info, komodo_server_stats, komodo_server_apply *(创建/更新)*, komodo_server_delete, komodo_server_action *(开始全部/重新开始全部/暂停全部/取消使用全部/停止全部容器、修剪\*、删除网络/图像/体积)* |
| 堆栈 | komodo_stack_list, komodo_stack_info, komodo_stack_apply *(创建/更新)*, komodo_stack_delete, komodo_stack_action *(部署/拉取/启动/重启/暂停/取消暂停/停止/销毁)* |
| 部署 | komodo_deployment_list, komodo_deployment_info, komodo_deployment_apply *(创建/更新)*, komodo_deployment_delete, komodo_deployment_action *(部署/拉取/启动/重启/暂停/取消暂停/停止/销毁)* |
| 构建 | komodo_build_list, komodo_build_info, komodo_build_action *(运行/取消)*, komodo_build_logs, komodo_build_apply *(创建/更新)*, komodo_build_delete |
| 回购协议 | komodo_repo_list, komodo_repo_info, komodo_repo_action *(克隆/拉取/构建/取消构建)*, komodo_repo_apply *(创建/更新)*, komodo_repo_delete |
| 程序 | komodo_procedure_list, komodo_procedure_info, komodo_procedure_action *(运行)*, komodo_procedure_apply *(创建/更新)*, komodo_procedure_delete |
| 行动 | komodo_action_list, komodo_action_info, komodo_action_action *(运行/取消)*, komodo_action_apply *(创建/更新)*, komodo_action_delete |
| 警报器 | komodo_alerter_list, komodo_alerter_info, komodo_alerter_apply *(创建/更新)*, komodo_alerter_delete |
| 群集 | komodo_swarm_list, komodo_swarm_info, komodo_swarm_apply *(创建/更新)*, komodo_swarm_delete, komodo_swarm_nodes_list, komodo_swarm_services_list, komodo_swarm_action *(update_node/remove_nodes/remove_services/remove_stacks)* |
| 资源同步 | komodo_resource_sync_list, komodo_resource_sync_info, komodo_resource_sync_action *(运行/刷新)*, komodo_resource_sync_apply *(创建/更新)*, komodo_resource_sync_delete |
| 变量 | komodo_variable_list, komodo_variable_info, komodo_variable_apply *(创建/更新--值/描述/is_cret)*, komodo_variable_delete |
| 更新 | komodo_update_list *(可过滤,分页)*, komodo_update_info |
| 终端 | komodo_exec *(目标:服务器/容器/部署/stack_service)* |
| API密钥 | komodo_user_list_api_keys, komodo_user_create_api_key, komodo_user_delete_api_key |
提示: 每个工具都携带_meta.category(其中之一config,container,server,stack,deployment,build,repo,procedure,action,alerter,swarm,resource-sync,variable,update,terminal,user)以及arequiredScopes阵列(komodo:read/komodo:operate/komodo:admin),因此MCP客户端和网关可以按类别和三层RBAC过滤或屏蔽工具。 列表/信息/日志工具支持 光标分页 通过{ cursor, page_size }(1–100,默认值50)并发出_meta.page.next_cursor当有更多项目可用时。inspect,info,logs,以及search_logs响应还包括会话范围ephemeral://…资源链路,因此可以通过以下方式在带外提取大型有效载荷resources/read;通行证inline_full: true强制镶入。
快速开始
Docker Compose(推荐用于HTTP)
部署为持久HTTP服务器——从任何MCP客户端连接。
mkdir komodo-mcp && cd komodo-mcp
curl -O https://raw.githubusercontent.com/MP-Tool/komodo-mcp-server/main/docker/compose.yaml
curl -O https://raw.githubusercontent.com/MP-Tool/komodo-mcp-server/main/docker/docker.env
cp docker.env .env # Edit with your credentials
docker compose up -d→ ****
克劳德桌面版
添加到您的 claude_desktop_config.json (设置→ 开发者→ 编辑配置):
"komodo-mcp-server": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KOMODO_URL=https://komodo.example.com:9120",
"-e", "KOMODO_API_KEY=api-key",
"-e", "KOMODO_API_SECRET=api-secret",
"ghcr.io/mp-tool/komodo-mcp-server:latest"
]
}→ 完整克劳德指南
VS代码/GitHub副本
添加 .vscode/mcp.json 在您的工作空间中:
{
"servers": {
"Komodo MCP Server": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KOMODO_URL=https://komodo.example.com:9120",
"-e", "KOMODO_API_KEY=api-key",
"-e", "KOMODO_API_SECRET=api-secret",
"ghcr.io/mp-tool/komodo-mcp-server:latest"
]
}
}
}使用
连接后,询问Claude、Copilot或任何兼容MCP的助手:
"List all my Komodo servers"
"Show containers on production-server"
"Start the nginx container"
"Deploy my-app to staging"
"Get stats for dev-server"MCP检验员测试
npx @modelcontextprotocol/inspector --url http://localhost:8000/mcp使用 /mcp 适用于流式HTTP或 /sse 用于传统SSE传输(如果启用)。调整主机和端口以匹配您的设置。
认证
支持三种方法——使用适合您设置的方法:
| 方法 | 环境变量 | 最适合 |
|---|---|---|
| API密钥 (推荐) | KOMODO_API_KEY + KOMODO_API_SECRET | 服务账户、自动化 |
| 用户名/密码 | KOMODO_USERNAME + KOMODO_PASSWORD | 互动用户 |
| JWT令牌 | KOMODO_JWT_TOKEN | 基于浏览器的SSO(OIDC、GitHub、谷歌OAuth) |
KOMODO_URL 总是需要的。所有凭据还通过以下方式支持Docker secrets *_FILE 变体(例如。 KOMODO_API_KEY_FILE).
有关完整的配置参考(环境变量、配置文件、Docker机密),请参阅 配置指南.
免责声明
人工智能工具(GitHub Copilot、Claude)被用作开发工作流程的一部分,用于代码生成、架构探索和文档起草。每一行代码和文档都经过人工审查,以确保质量、正确性和符合既定的工程标准。
贡献
欢迎投稿!查看我们的 贡献指南 了解详情。
发展
# Clone and install
git clone https://github.com/MP-Tool/komodo-mcp-server.git
cd komodo-mcp-server
npm install
# Build and run
npm run build
npm start文档
| 指南 | 说明 |
|---|---|
| 配置 | 所有环境变量、配置文件格式、优先级链、Docker机密 |
| **** | Docker Compose设置、健康检查、生产部署 |
| 客户端集成 | Claude Desktop、VS Code、Node.js/npx安装指南 |
| 贡献 | 开发设置、编码标准、PR指南 |
| 安全 | 漏洞报告、安全最佳实践 |
| 更新日志 | 版本历史和发行说明 |
许可证
GPL-3.0许可证-请参阅 许可证 了解详情。
需求
- 科莫多 v2.0.0或更高版本
- 码头工人 (用于集装箱化部署)或 Node.js 22+ (用于本地安装)
- 有效的Komodo证书 (API密钥/密码、用户名/密码或JWT令牌)
安全
通过GitHub的私有漏洞报告报告安全漏洞(请参阅 安全.md).
最佳实践:
- 从不提交凭据
- 使用环境变量
- 保持依赖关系更新
- 以非root用户身份运行(Docker中的默认设置)
链接
______________________________________________________________________
建于❤️ 科莫多社区🦎
