Build Mcp

Build Mcp

🚀 Docker Build MCP TypeScript Server

本项目是一个完全遵循 MCP(模型上下文协议)标准的 Docker Build MCP 服务器。它能为用户提供标准化、自动化的 Docker 镜像管理服务,借助 MCP 标准实现与各类客户端的无缝对接,极大提升 Docker 操作的便捷性与效率。

✨ 主要特性

  • 💯 完全支持 MCP 标准:与 Cursor、Claude 等 MCP 客户端在工具发现和执行方面 100% 兼容。
  • ⚙️ 自动化 Docker 镜像管理:通过 API 提供 build、run、stop、rm、rmi、push 等 Docker CLI 的主要功能。
  • 📡 支持 SSE(服务器发送事件)和 stdio 模式
  • 🔧 高扩展性结构:每个 Docker 命令都作为独立工具实现,便于维护和扩展。
  • 📝 执行命令和结果日志:执行所有 Docker 命令时,命令和结果会输出到控制台。

📂 目录结构

./
├── dist/                # 构建结果
├── node_modules/        # 依赖模块
├── src/
│   ├── config/          # 服务器和工具配置
│   ├── models/          # 类型/模式定义
│   ├── prompts/         # MCP 提示处理程序
│   ├── resources/       # 资源处理程序
│   ├── tools/           # 与 Docker 相关的 MCP 工具 (build, run, stop, rm, rmi 等)
│   ├── utils/           # 实用函数
│   ├── http-server.ts   # HTTP 服务器入口点
│   └── index.ts         # MCP 服务器入口点
├── tests/               # 测试代码
├── package.json         # 项目元数据/脚本
├── tsconfig.json        # TypeScript 配置
└── vitest.config.ts     # 测试配置

💪 主要功能和支持工具

  • docker_build:接收多个文件作为上下文,构建 Docker 镜像。
  • docker_run:使用所需选项创建并运行容器。
  • docker_ps:查询正在运行/所有容器的列表(支持 all 选项)。
  • docker_stop, docker_stop_multi:停止容器(多个)。
  • docker_rm, docker_rm_multi:删除容器(多个)(删除前自动停止)。
  • docker_images:查询本地镜像列表。
  • docker_rmi, docker_rmi_multi:删除镜像(多个)。
  • docker_push:将标记的镜像推送到注册表。
  • docker_login:登录 Docker 注册表。
  • docker-inspect:查询容器/镜像的详细信息。
  • docker-container-prune, docker-image-prune, docker-network-prune, docker-volume-prune:批量清理不必要的资源。

📦 安装指南

1. 安装依赖

npm install

2. 运行开发服务器(SSE 模式)

ENABLE_UNSAFE_SSE_TRANSPORT=1 npm run dev

3. 构建并部署运行

npm run build
npm start

💻 使用示例

基础用法

  • MCP 客户端可以通过工具发现自动识别和执行上述工具。
  • 每个工具通过子进程直接调用 Docker CLI,与实际 Docker 环境的操作相同。

🧪 测试

  • tests/ 目录中包含每个工具的测试代码。
  • 支持基于 vitest 的测试。

🤝 贡献与咨询

本项目欢迎扩展和贡献。如果您有关于 MCP 标准、Docker 自动化或额外功能的问题,请随时通过 Issue 或 PR 提出。


实际上,build、push、run 等操作是通过子进程调用 Docker CLI 完成的。


🐳 DinD(Docker 内 Docker)完全隔离型 MCP 服务器实战部署指南

1. 构建最新镜像并推送到 Docker Hub

docker build -t ekdh600/build-mcp:latest .
docker push ekdh600/build-mcp:latest

2. 提交并推送最新代码到 Git

cd docker-build-mcp-ts
git add .
git commit -m "docs: 更新 DinD 结构和 Kubernetes 支持"
git push

3. 基于 DinD 运行完全隔离的容器(适配 Kubernetes)

  • 不挂载主机 Docker 套接字,仅使用内部 dockerd
  • 在 Kubernetes 环境中也能正常工作
docker run --privileged --name build-mcp -d -p 3000:3000 ekdh600/build-mcp:latest
  • 内部 dockerd 会自动启动,MCP 服务器在 0.0.0.0:3000 监听。
  • MCP 工具(docker_ps、docker_run 等)仅控制容器内部的 Docker 环境(与主机完全隔离)。
  • 可以在 Cursor、云环境或 Kubernetes 环境中注册并使用 MCP 服务器。

4. MCP 工具实战使用示例(Cursor/云环境)

  • MCP 服务器地址:http://<主机 IP>:3000
  • 在 Cursor 中注册 MCP 服务器后,即可使用 docker_ps、docker_run 等工具。
  • 创建和查询的容器都仅存在于 DinD 内部环境中。
  • 0 关注
  • 0 收藏,16 浏览
  • system 提出于 2025-10-01 23:30

相似服务问题

相关AI产品