MCP网关部署包

基于Docker的MCP网关部署包,提供Web管理界面和RESTful API,适用于服务器编排和容器管理。

  • by Jblast94
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 Jblast94/mcp-gateway-deployment

使用说明

MCP网关部署包

基于Docker的完整部署包,用于模型上下文协议(MCP)网关,配备基于Web的管理界面。

🚀 功能特性

  • MCP网关 - Docker 官方的 MCP 服务器编排器
  • 网络管理仪表盘 - 管理服务器和配置的精美用户界面
  • RESTful管理API - 对您的MCP(可能指某种云服务或平台,如Microsoft Cloud Platform等,具体需根据上下文确定)部署进行程序化控制
  • 环境管理 - 安全存储凭证和机密信息
  • Docker 集成 - 从仪表盘直接管理容器
  • 生产就绪 - 包括监控、健康检查和自动重启
  • 一键部署 - Linode自动化设置脚本(可适配其他主机)

📋 先决条件

  • Ubuntu 24.04 LTS(或类似的Linux发行版)
  • Root或sudo访问权限
  • 最低2GB内存(建议4GB)
  • 20GB磁盘空间
  • 端口3000、8080、8811可用

🎯 快速入门

选项1:自动化部署(Linode)

# Clone this repository
git clone https://github.com/YOUR_USERNAME/mcp-gateway-deployment.git
cd mcp-gateway-deployment

# Make deployment script executable
chmod +x deploy-linode.sh

# Run deployment (as root)
sudo ./deploy-linode.sh

该脚本将:

  • 安装 Docker 和 Docker Compose
  • 设置MCP网关和管理器
  • 配置防火墙规则
  • 生成安全的管理员密码
  • 创建systemd服务以实现自动启动
  • 显示访问凭据

选项2:手动部署

# Clone repository
git clone https://github.com/YOUR_USERNAME/mcp-gateway-deployment.git
cd mcp-gateway-deployment

# Create required directories
mkdir -p gateway-config secrets

# Generate admin password
openssl rand -base64 32 | bcrypt -c 10 > secrets/admin.password

# Create environment file
cat > .env <<EOF
SESSION_SECRET=$(openssl rand -hex 32)
NODE_ENV=production
EOF

# Start services
docker-compose up -d

📁 项目结构

mcp-gateway-deployment/
├── docker-compose.yml           # Main orchestration file
├── deploy-linode.sh            # Automated deployment script
├── .env                        # Environment variables (generated)
├── gateway-config/             # MCP Gateway configuration
│   └── gateway.yaml           # Server definitions
├── secrets/                    # Secure credential storage
│   ├── admin.password         # Hashed admin password
│   └── *.env                  # Server environment variables
└── manager/                    # Management application
    ├── Dockerfile             # Container definition
    ├── package.json           # Node.js dependencies
    ├── server.js              # Express API server
    ├── healthcheck.js         # Container health check
    └── public/
        └── index.html         # Web dashboard

🎛️ 管理控制面板

访问网页仪表板,请前往 http://YOUR_SERVER_IP:3000

特点:

  • 服务器管理 - 添加、移除和配置MCP服务器
  • 环境变量 - 安全管理凭据
  • 容器控制 - 启动、停止、重启Docker容器
  • 实时统计数据 - 监控运行中的服务器和资源使用情况
  • 配置编辑器 - 通过用户界面编辑 gateway.yaml

🔌 API 端点

网关API(端口8080)

GET  /api/servers        - List all MCP servers
POST /api/servers        - Add new server
GET  /api/servers/:id    - Get server details
DELETE /api/servers/:id  - Remove server

管理API(端口3000)

POST /api/login          - Authenticate
POST /api/logout         - End session
GET  /api/config         - Get gateway configuration
PUT  /api/config         - Update gateway configuration
GET  /api/servers        - List configured servers
POST /api/servers        - Deploy new server
DELETE /api/servers/:id  - Remove server
GET  /api/env            - List environment variables
POST /api/env            - Add environment variable
GET  /api/containers     - List Docker containers
POST /api/containers/:id/:action - Control containers (start/stop/restart)

流媒体终端(端口 8811)

用于实时MCP通信的WebSocket终端

🔐 安全

  • 管理员密码经过bcrypt哈希处理并存储于 /secrets/
  • 会话密钥是随机生成的
  • “Secrets”目录具有受限权限(700)
  • API访问的JWT令牌认证
  • UFW防火墙配置为仅开放最少端口
  • 对于管理器而言,Docker 套接字访问为只读

更改管理员密码

# Generate new password
openssl rand -base64 32 | bcrypt -c 10 > secrets/admin.password

# Restart manager
docker-compose restart mcp-manager

📝 配置

添加MCP服务器

通过仪表板:

  1. 登录管理仪表板
  2. 导航至“服务器配置”
  3. 填写服务器详细信息
  4. 点击“部署服务器”

通过配置文件设置:

# gateway-config/gateway.yaml
servers:
  - name: filesystem
    image: mcp/filesystem
    config:
      path: /data
      
  - name: web-search
    image: mcp/web-search
    env:
      API_KEY: ${SEARCH_API_KEY}

环境变量

存储机密信息于 /secrets/ 目录:

echo "sk-1234567890abcdef" > secrets/OPENAI_API_KEY.env
echo "ghp_abcdefg12345" > secrets/GITHUB_TOKEN.env

在 gateway.yaml 中的引用:

servers:
  - name: ai-assistant
    image: mcp/openai
    env:
      OPENAI_API_KEY: ${OPENAI_API_KEY}

🛠️ 维护

查看日志

docker-compose logs -f           # All services
docker-compose logs -f mcp-gateway    # Gateway only
docker-compose logs -f mcp-manager    # Manager only

重启服务

docker-compose restart           # Restart all
docker-compose restart mcp-gateway    # Restart gateway
docker-compose restart mcp-manager    # Restart manager

更新服务

docker-compose pull
docker-compose up -d

备份配置

tar -czf mcp-backup-$(date +%Y%m%d).tar.gz \
    gateway-config/ \
    secrets/ \
    .env

监控资源

docker stats                     # Real-time resource usage
docker-compose ps               # Service status

🔧 故障排除

服务无法启动

# Check logs
docker-compose logs

# Verify Docker is running
systemctl status docker

# Check port availability
netstat -tlnp | grep -E '3000|8080|8811'

无法访问仪表板

# Check firewall
sudo ufw status

# Verify manager is running
docker-compose ps mcp-manager

# Check manager logs
docker-compose logs mcp-manager

忘记管理员密码

# Generate new password
NEW_PASS=$(openssl rand -base64 32)
echo "$NEW_PASS"
echo "$NEW_PASS" | bcrypt -c 10 > secrets/admin.password

# Restart manager
docker-compose restart mcp-manager

🌐 连接客户

Claude Desktop(可译为“Claude桌面版”)

{
  "mcpServers": {
    "remote-gateway": {
      "url": "http://YOUR_SERVER_IP:8080",
      "transport": "http"
    }
  }
}

带有MCP扩展的VS Code

{
  "mcp.servers": [
    {
      "name": "Remote Gateway",
      "url": "http://YOUR_SERVER_IP:8080"
    }
  ]
}

📊 系统要求

最小值

  • 2GB 内存
  • 2个CPU核心
  • 20GB磁盘空间
  • 10兆比特每秒网络

推荐

  • 4GB 运行内存
  • 4个CPU核心
  • 50GB磁盘空间
  • 100 Mbps网络

🤝 贡献(或“参与贡献”)

欢迎贡献!请随时提交拉取请求。

📄 许可证

MIT 许可证 - 详情请参见 LICENSE 文件

🆘 支持

  • GitHub Issues:[报告错误或请求功能]
  • 文档:[完整的MCP网关文档]
  • 社区:[加入MCP Discord服务器]

🙏 致谢

  • Docker MCP网关团队
  • 模型上下文协议社区
  • 所有贡献者

📚 额外资源