MCP网关工具

一个用于管理和部署MCP服务器的Docker CLI插件,支持多种AI客户端集成。

  • by kawai-network
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 kawai-network/mcp-gateway

使用说明

MCP网关

用于管理模型上下文协议(MCP)服务器和客户端的Docker CLI插件。该工具包提供了一个全面的界面,用于通过Docker集成发现、部署和管理MCP服务器。

概述

MCP网关是一个强大的命令行工具,它扩展了Docker CLI的MCP功能,使MCP服务器能够与各种AI客户端无缝集成,包括Claude Desktop、Cursor、VS Code、Zed等。

特性

  • 目录管理:发现、创建和管理MCP服务器目录
  • 服务器部署:将MCP服务器部署为Docker容器
  • 客户端集成:将MCP服务器连接到各种AI桌面客户端
  • 秘密管理:安全地管理凭据和机密
  • OAuth支持:处理OAuth身份验证流
  • 策略管理:定义和执行访问策略
  • 备份与恢复:备份和恢复MCP配置
  • OCI注册表支持:从OCI注册表中拉取和推送MCP服务器映像

安装

先决条件

  • 转到1.25.5或更高版本
  • Docker命令行界面
  • Docker引擎

从源头构建

# Clone the repository
git clone https://github.com/kawai-network/mcp-gateway.git
cd mcp-gateway

# Build the plugin
go build -o docker-mcp ./cmd/docker-mcp

# Install as a Docker CLI plugin
mkdir -p ~/.docker/cli-plugins
cp docker-mcp ~/.docker/cli-plugins/docker-mcp
chmod +x ~/.docker/cli-plugins/docker-mcp

用法

基本命令

# Show help
docker mcp --help

# Show version
docker mcp version

# List available commands
docker mcp --help

目录管理

# List available MCP servers
docker mcp catalog ls

# Show details of a specific server
docker mcp catalog show <server-name>

# Create a new catalog entry
docker mcp catalog create <name> --image <image>

# Add a server to the catalog
docker mcp catalog add <name>

# Remove a server from the catalog
docker mcp catalog rm <name>

# Export catalog
docker mcp catalog export <output-file>

# Import catalog
docker mcp catalog import <input-file>

服务器管理

# List deployed servers
docker mcp server ls

# Initialize a new server
docker mcp server init <name>

# Enable a server
docker mcp server enable <name>

# Inspect server configuration
docker mcp server inspect <name>

客户管理

# List connected clients
docker mcp client ls

# Connect a client to an MCP server
docker mcp client connect <client> <server>

# Disconnect a client
docker mcp client disconnect <client> <server>

工具管理

# List available tools
docker mcp tools list

# Call a tool
docker mcp tools call <tool-name>

# Start a tool
docker mcp tools start <tool-name>

秘密管理

# List secrets
docker mcp secret ls

# Set a secret
docker mcp secret set <name> <value>

# Remove a secret
docker mcp secret rm <name>

# Export secrets
docker mcp secret export <output-file>

OAuth管理

# List OAuth tokens
docker mcp oauth ls

# Authenticate
docker mcp oauth auth

# Revoke a token
docker mcp oauth revoke <token-id>

策略管理

# Dump policy configuration
docker mcp policy dump

# Set policy
docker mcp policy set <policy-file>

备份与恢复

# Backup configuration
docker mcp backup dump <output-file>

# Restore configuration
docker mcp backup restore <input-file>

支持的客户

MCP网关支持与以下AI桌面客户端集成:

  • 克劳德桌面 -Anthropic的Claude AI助手
  • 光标 -AI驱动的代码编辑器
  • VS代码 -Microsoft Visual Studio代码
  • 泽德 -高性能代码编辑器
  • 基罗 -AI开发环境
  • Continue.dev -AI配对编程扩展

配置

客户档案

该工具自动检测和管理受支持应用程序的客户端配置文件。配置文件存储在标准位置:

  • 克劳德桌面: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
  • 光标: ~/.cursor/mcp.json
  • VS代码: ~/.vscode/mcp.json
  • 泽德: ~/.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/       # Main CLI application
│   ├── commands/          # Command implementations
│   ├── catalog/           # Catalog management
│   ├── client/            # Client integration
│   ├── oauth/             # OAuth handling
│   ├── secret-management/ # Secret management
│   └── server/            # Server management
├── catalog/               # Catalog core logic
├── catalog_next/          # Next-gen catalog (OCI-based)
├── client/                # Client profile management
├── codemode/              # Code mode functionality
├── config/                # Configuration handling
├── db/                    # Database layer
├── desktop/               # Desktop integration
├── docker/                # Docker client wrapper
├── features/              # Feature flags
├── migrate/               # Database migrations
├── signatures/            # Signature verification
└── version/               # Version information

运行测试

# Run all tests
go test ./...

# Run tests with coverage
go test -cover ./...

# Run specific package tests
go test ./cmd/docker-mcp/commands

建筑

# Build for current platform
go build -o docker-mcp ./cmd/docker-mcp

# Build for multiple platforms
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

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目在Apache License 2.0下获得许可-有关详细信息,请参阅License文件。

致谢

支持

有关问题、疑问或贡献,请访问 GitHub存储库.