MCP服务器网关

MCP Host是一个专业的MCP(模型上下文协议)服务器网关,支持连接任何MCP服务器到AI代理(如ChatGPT、Claude等),提供多种传输协议、Docker原生部署和全面的管理界面。

  • by NithichoteC
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NithichoteC/mcp-hoster

使用说明

MCP主机-专业MCP服务器网关

将任何MCP服务器连接到任何AI代理 -模型上下文协议的专业、生产就绪网关

MCP Host是一个全面的解决方案,允许您将任何MCP(模型上下文协议)服务器连接到任何AI代理,包括ChatGPT、Claude和自定义应用程序。只需单击一下即可部署Coolify,并立即开始将您的工具和数据源连接到AI代理。

🌟 主要特点

🔗 通用连接

  • ChatGPT集成:基于OAuth2的自定义连接器支持
  • 克劳德桌面版:本地MCP协议兼容性
  • API访问:用于自定义集成的RESTful API
  • WebSocket支持:实时通信

🚀 多运输支持

  • 工作室:传统的基于流程的沟通
  • 超文本传输协议:RESTful API集成
  • 上海证券交易所:服务器发送实时更新事件
  • 可流式传输的HTTP:现代MCP协议(2025规范)

🏗️ 专业基础设施

  • Docker原生:容器优先部署
  • 自动缩放:Kubernetes和Docker Swarm就绪
  • 健康监测:全面的健康检查
  • SSL/TLS:生产级安全

🎯 GitHub集成

  • 自动发现:从GitHub自动检测和配置MCP服务器
  • 热门服务器:精心策划的社区MCP服务器列表
  • 一键安装:直接从存储库安装服务器

🔧 管理接口

  • Web仪表板:基于React的管理界面
  • 实时监控:实时服务器状态和指标
  • 配置管理:轻松设置和配置服务器
  • API密钥管理:安全访问控制

📋 目录

  1. 快速开始
  2. 冷却部署
  3. 手动部署
  4. 配置
  5. ChatGPT集成
  6. 克劳德集成
  7. 添加MCP服务器
  8. API文档
  9. 故障排除
  10. 贡献

🚀 快速开始

选项1:部署到Coolify(推荐)

  1. 一键部署:

    # Import this repository to Coolify
    https://github.com/your-org/mcp-host
    
  2. 配置环境变量:

    • SECRET_KEY:生成随机字符串(必填)
    • OAUTH_CLIENT_ID:用于ChatGPT集成(可选)
    • OAUTH_CLIENT_SECRET:用于ChatGPT集成(可选)
    • GITHUB_TOKEN:用于GitHub集成(可选)
  3. 访问您的实例:

    • Web界面: https://your-domain.com
    • API https://your-domain.com/api/v1
    • 健康检查: https://your-domain.com/health

选项2:Docker编写

  1. 克隆存储库:

    git clone https://github.com/your-org/mcp-host.git
    cd mcp-host
    
  2. 配置环境:

    cp .env.example .env
    # Edit .env with your settings
    
  3. 部署:

    docker-compose up -d
    
  4. 访问服务:

    • Web界面:http://localhost:3000
    • APIhttp://localhost:8000
    • 健康:http://localhost:8000/health

🎯 冷却部署

MCP Host针对Coolify部署进行了优化,具有自动SSL、监控和扩展功能。

部署步骤

  1. 添加到Coolify:

    • 转到Coolify仪表板
    • 点击“新建资源”→ “Docker作曲”
    • 从Git导入: https://github.com/your-org/mcp-host
  2. 环境配置:

    # Required
    SECRET_KEY=your-random-secret-key-here
    
    # Optional - ChatGPT Integration
    OAUTH_CLIENT_ID=your-oauth-client-id
    OAUTH_CLIENT_SECRET=your-oauth-client-secret
    OAUTH_REDIRECT_URI=https://your-domain.com/auth/callback
    
    # Optional - GitHub Integration
    GITHUB_TOKEN=your-github-token
    
    # Production Settings
    ENVIRONMENT=production
    DEBUG=false
    LOG_LEVEL=INFO
    CORS_ORIGINS=https://your-domain.com
    
  3. 域配置:

    • 在Coolify中设置您的自定义域名
    • SSL将自动配置
    • 健康检查将监控所有服务
  4. 监控:

    • 在Coolify仪表板中查看日志
    • 监控资源使用情况
    • 设置停机警报

生产建议

  • 记忆:最低2GB RAM
  • 存储:10GB用于日志和MCP服务器
  • 中央处理器:建议使用2个核心
  • 安全套接层:让我们加密(通过Coolify自动)
  • 备份:启用数据持久性

🔧 配置

环境变量

变量 描述 默认值 必填
SECRET_KEY JWT密钥 - ✅
OAUTH_CLIENT_ID ChatGPT OAuth客户端ID - ❌
OAUTH_CLIENT_SECRET ChatGPT OAuth密钥 - ❌
GITHUB_TOKEN GitHub API令牌 - ❌
DATABASE_URL 数据库连接 sqlite:///./data/mcp_host.db ❌
CORS_ORIGINS 允许的来源 * ❌
MAX_CONCURRENT_SERVERS 服务器限制 10 ❌
LOG_LEVEL 日志记录级别 信息 ❌

数据库配置

SQLite(默认):

DATABASE_URL=sqlite:///./data/mcp_host.db

PostgreSQL(生产):

DATABASE_URL=postgresql://user:pass@host:5432/mcp_host

ChatGPT的OAuth2设置

  1. 注册应用 (OpenAI可用时)
  2. 配置重定向URI: https://your-domain.com/auth/callback
  3. 设置环境变量:
    OAUTH_CLIENT_ID=your-client-id
    OAUTH_CLIENT_SECRET=your-client-secret
    

💬 ChatGPT集成

设置自定义连接器

  1. 部署MCP主机 使用OAuth2配置

  2. 获取连接详细信息:

    • OAuth授权URL: https://your-domain.com/auth/authorize
    • 令牌URL: https://your-domain.com/auth/token
    • MCP服务器URL: https://your-domain.com/mcp
  3. 在ChatGPT中配置:

    {
      "name": "My MCP Host",
      "description": "Connect to my MCP servers",
      "mcp_server_url": "https://your-domain.com/mcp",
      "authentication": "oauth",
      "client_id": "your-client-id",
      "authorization_url": "https://your-domain.com/auth/authorize",
      "token_url": "https://your-domain.com/auth/token"
    }
    

测试ChatGPT连接

  1. 添加测试服务器:

    curl -X POST https://your-domain.com/api/v1/servers \
      -H "Authorization: Bearer your-api-key" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "test-server",
        "command": "echo",
        "args": ["Hello from MCP Host!"],
        "transport_type": "stdio"
      }'
    
  2. 在ChatGPT中测试:

    • 连接您的自定义连接器
    • 试着问:“有什么工具可用?”
    • 测试工具执行

🤖 克劳德集成

Claude桌面配置

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "mcp-host": {
      "command": "curl",
      "args": [
        "-X", "POST",
        "https://your-domain.com/mcp",
        "-H", "Authorization: Bearer your-api-key",
        "-H", "Content-Type: application/json"
      ]
    }
  }
}

API集成

import httpx

# Connect to MCP Host
client = httpx.Client(
    base_url="https://your-domain.com",
    headers={"Authorization": "Bearer your-api-key"}
)

# List available tools
tools = client.post("/mcp", json={
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
}).json()

print(tools)

📦 添加MCP服务器

来自GitHub仓库

  1. web界面:

    • 转到“服务器”→ “添加服务器”
    • 选择“来自GitHub”
    • 输入存储库URL: https://github.com/user/repo
    • 配置和部署
  2. API:

    curl -X POST https://your-domain.com/api/v1/servers/from-github \
      -H "Authorization: Bearer your-api-key" \
      -H "Content-Type: application/json" \
      -d '{
        "github_url": "https://github.com/czlonkowski/n8n-mcp",
        "name": "n8n-automation"
      }'
    

手动配置

curl -X POST https://your-domain.com/api/v1/servers \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-custom-server",
    "description": "Custom MCP server",
    "command": "python",
    "args": ["server.py"],
    "env": {
      "API_KEY": "secret"
    },
    "transport_type": "stdio",
    "auto_restart": true
  }'

n8n集成

  1. 快速设置:

    curl -X POST https://your-domain.com/api/v1/servers \
      -H "Authorization: Bearer your-api-key" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "n8n-mcp",
        "command": "npx",
        "args": ["@n8n-mcp/server"],
        "env": {
          "N8N_API_URL": "http://your-n8n-instance:5678",
          "N8N_API_KEY": "your-n8n-api-key"
        },
        "transport_type": "stdio"
      }'
    
  2. 环境变量:

    • N8N_API_URL:您的n8n实例URL
    • N8N_API_KEY:n8n用于身份验证的API密钥

📚 API文档

认证

# API Key Authentication
curl -H "Authorization: Bearer your-api-key" \
  https://your-domain.com/api/v1/servers

核心终点

方法 端点 描述
GET /health 系统健康检查
GET /api/v1/servers 列出所有服务器
POST /api/v1/servers 创建服务器
GET /api/v1/servers/{id} 获取服务器详细信息
PUT /api/v1/servers/{id} 更新服务器
DELETE /api/v1/servers/{id} 删除服务器
POST /api/v1/servers/{id}/start 启动服务器
POST /api/v1/servers/{id}/stop 停止服务器

MCP协议端点

方法 端点 描述
POST /mcp MCP JSON-RPC请求
GET /sse 服务器发送的事件
GET /auth/authorize OAuth2授权
POST /auth/token OAuth2代币交换

WebSocket事件

连接到 wss://your-domain.com/ws 实时更新:

const ws = new WebSocket('wss://your-domain.com/ws?token=your-api-key');

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Server event:', data);
};

🔍 故障排除

常见问题

1.服务器无法启动

# Check logs
docker-compose logs backend

# Common causes:
# - Missing SECRET_KEY
# - Port conflicts
# - Database connection issues

2.ChatGPT连接失败

# Verify OAuth2 configuration
curl https://your-domain.com/.well-known/oauth-authorization-server

# Check CORS settings
CORS_ORIGINS=https://chat.openai.com

3.MCP服务器错误

# Check server logs
curl https://your-domain.com/api/v1/servers/1/health

# Common fixes:
# - Verify command path
# - Check environment variables
# - Ensure dependencies are installed

4.拒绝许可

# Check API key permissions
curl -H "Authorization: Bearer your-key" \
  https://your-domain.com/api/v1/keys

# Verify user has required permissions

调试模式

启用调试日志记录:

DEBUG=true
LOG_LEVEL=DEBUG

健康检查

# System health
curl https://your-domain.com/health

# Server health
curl https://your-domain.com/api/v1/servers/1/health

# OAuth2 metadata
curl https://your-domain.com/.well-known/oauth-authorization-server

支持

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

开发设置

  1. 克隆存储库:

    git clone https://github.com/your-org/mcp-host.git
    cd mcp-host
    
  2. 后端开发:

    cd backend
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
    python -m uvicorn src.server:app --reload
    
  3. 前端开发:

    cd frontend
    npm install
    npm run dev
    
  4. 测试:

    # Backend tests
    cd backend
    pytest
    
    # Frontend tests
    cd frontend
    npm test
    

发布过程

  1. 更新版本 package.json 和 pyproject.toml
  2. 创建发行说明
  3. 标签发布: git tag v1.0.0
  4. 推送标签: git push --tags
  5. GitHub Actions将构建并发布

📝 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢


网站 • 文档 • 社区 • 支持

由...制作❤️ 由MCP主办团队