article
README
🚀 MCP 网关
MCP 网关是一款 Docker CLI 插件,用于管理模型上下文协议(MCP)服务器和客户端。该工具包提供了一个全面的接口,可借助 Docker 集成来发现、部署和管理 MCP 服务器。
🚀 快速开始
MCP 网关是一款强大的命令行工具,它为 Docker CLI 扩展了 MCP 功能,能让 MCP 服务器与包括 Claude Desktop、Cursor、VS Code、Zed 等在内的各种 AI 客户端实现无缝集成。
✨ 主要特性
- 目录管理:发现、创建和管理 MCP 服务器目录
- 服务器部署:将 MCP 服务器作为 Docker 容器进行部署
- 客户端集成:将 MCP 服务器连接到各种 AI 桌面客户端
- 密钥管理:安全地管理凭证和密钥
- OAuth 支持:处理 OAuth 认证流程
- 策略管理:定义并执行访问策略
- 备份与恢复:备份和恢复 MCP 配置
- OCI 注册表支持:从 OCI 注册表拉取和推送 MCP 服务器镜像
📦 安装指南
前提条件
- Go 1.25.5 或更高版本
- Docker CLI
- Docker 引擎
从源代码构建
# 克隆仓库
git clone https://github.com/kawai-network/mcp-gateway.git
cd mcp-gateway
# 构建插件
go build -o docker-mcp ./cmd/docker-mcp
# 作为 Docker CLI 插件安装
mkdir -p ~/.docker/cli-plugins
cp docker-mcp ~/.docker/cli-plugins/docker-mcp
chmod +x ~/.docker/cli-plugins/docker-mcp
💻 使用示例
基础命令
# 显示帮助信息
docker mcp --help
# 显示版本信息
docker mcp version
# 列出可用命令
docker mcp --help
目录管理
# 列出可用的 MCP 服务器
docker mcp catalog ls
# 显示特定服务器的详细信息
docker mcp catalog show <server-name>
# 创建新的目录条目
docker mcp catalog create <name> --image <image>
# 向目录中添加服务器
docker mcp catalog add <name>
# 从目录中移除服务器
docker mcp catalog rm <name>
# 导出目录
docker mcp catalog export <output-file>
# 导入目录
docker mcp catalog import <input-file>
服务器管理
# 列出已部署的服务器
docker mcp server ls
# 初始化新服务器
docker mcp server init <name>
# 启用服务器
docker mcp server enable <name>
# 检查服务器配置
docker mcp server inspect <name>
客户端管理
# 列出已连接的客户端
docker mcp client ls
# 将客户端连接到 MCP 服务器
docker mcp client connect <client> <server>
# 断开客户端连接
docker mcp client disconnect <client> <server>
工具管理
# 列出可用工具
docker mcp tools list
# 调用工具
docker mcp tools call <tool-name>
# 启动工具
docker mcp tools start <tool-name>
密钥管理
# 列出密钥
docker mcp secret ls
# 设置密钥
docker mcp secret set <name> <value>
# 移除密钥
docker mcp secret rm <name>
# 导出密钥
docker mcp secret export <output-file>
OAuth 管理
# 列出 OAuth 令牌
docker mcp oauth ls
# 进行认证
docker mcp oauth auth
# 撤销令牌
docker mcp oauth revoke <token-id>
策略管理
# 转储策略配置
docker mcp policy dump
# 设置策略
docker mcp policy set <policy-file>
备份与恢复
# 备份配置
docker mcp backup dump <output-file>
# 恢复配置
docker mcp backup restore <input-file>
📚 详细文档
支持的客户端
MCP 网关支持与以下 AI 桌面客户端集成:
- Claude Desktop - Anthropic 的 Claude AI 助手
- Cursor - 由 AI 驱动的代码编辑器
- VS Code - 微软的 Visual Studio Code
- Zed - 高性能代码编辑器
- Kiro - AI 开发环境
- Continue.dev - AI 结对编程扩展
配置
客户端配置文件
该工具会自动检测并管理受支持应用程序的客户端配置文件。配置文件存储在以下标准位置:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) - Cursor:
~/.cursor/mcp.json - VS Code:
~/.vscode/mcp.json - Zed:
~/.config/zed/settings.jsonc - Continue.dev:
~/.continue/config.json
目录配置
目录以 YAML 格式定义:
name: my-mcp-server
description: My custom MCP server
image: my-registry/my-mcp-server:latest
tools:
- name: tool1
description: First tool
- name: tool2
description: Second tool
开发
项目结构
mcp-gateway/
├── cmd/docker-mcp/ # 主 CLI 应用程序
│ ├── commands/ # 命令实现
│ ├── catalog/ # 目录管理
│ ├── client/ # 客户端集成
│ ├── oauth/ # OAuth 处理
│ ├── secret-management/ # 密钥管理
│ └── server/ # 服务器管理
├── catalog/ # 目录核心逻辑
├── catalog_next/ # 下一代目录(基于 OCI)
├── client/ # 客户端配置文件管理
├── codemode/ # 代码模式功能
├── config/ # 配置处理
├── db/ # 数据库层
├── desktop/ # 桌面集成
├── docker/ # Docker 客户端包装器
├── features/ # 功能标志
├── migrate/ # 数据库迁移
├── signatures/ # 签名验证
└── version/ # 版本信息
运行测试
# 运行所有测试
go test ./...
# 运行带覆盖率的测试
go test -cover ./...
# 运行特定包的测试
go test ./cmd/docker-mcp/commands
构建
# 为当前平台构建
go build -o docker-mcp ./cmd/docker-mcp
# 为多个平台构建
GOOS=linux GOARCH=amd64 go build -o docker-mcp-linux-amd64 ./cmd/docker-mcp
GOOS=darwin GOARCH=amd64 go build -o docker-mcp-darwin-amd64 ./cmd/docker-mcp
GOOS=darwin GOARCH=arm64 go build -o docker-mcp-darwin-arm64 ./cmd/docker-mcp
贡献代码
欢迎贡献代码!请随时提交拉取请求。
- Fork 仓库
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add some amazing feature') - 推送到该分支 (
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
本项目采用 Apache 许可证 2.0 版 - 详情请参阅 LICENSE 文件。
致谢
- 使用 Docker CLI 插件 SDK 构建
- 使用 Model Context Protocol Go SDK
- 由 Cobra CLI 框架提供支持
支持
如有问题、疑问或想要贡献代码,请访问 GitHub 仓库。
微信扫一扫