返回市场
中央-MCP-代理服务器

中央-MCP-代理服务器

作者:odgrim7 星标更新:2025-03-14

项目介绍

中央MCP主机

本项目提供了一个基于Docker、Traefik和SuperGateway的集中式MCP服务器托管环境。

概述

此设置运行一个Traefik反向代理,用于将请求路由到不同的MCP服务器。SuperGateway用于在stdio和SSE传输之间进行转换,使MCP服务器能够使用SSE与客户端通信。

包含的MCP服务器

  • Notion:与Notion数据库和页面交互
  • Linear:与Linear工单交互
  • GitHub:与GitHub仓库、问题和拉取请求交互
  • Memory Bank:记录项目笔记、思维轨迹和学习工具

预备条件

  • Docker和Docker Compose
  • Notion API令牌
  • Linear API令牌
  • GitHub API令牌

设置

  1. 克隆此仓库
  2. 复制.env.example文件到.env并填写您的API令牌:
    cp .env.example .env
    # 使用您的API令牌编辑.env
    
  3. 启动服务:
    docker compose up -d
    

Docker Compose结构

该项目采用模块化的Docker Compose结构:

  • docker-compose.yml:主文件,包含Traefik配置,并引用服务特定文件
  • docker-compose/github.yml:GitHub MCP服务器配置
  • docker-compose/notion.yml:Notion MCP服务器配置
  • docker-compose/memory-bank.yml:Memory Bank MCP服务器配置
  • docker-compose/linear.yml:Linear MCP服务器配置

这种模块化方法允许您:

  • 启动所有服务:docker compose up -d(使用默认的all配置文件设置在.env中)
  • 使用配置文件启动特定服务:
    • 仅GitHub:docker compose --profile github up -d
    • 仅Notion:docker compose --profile notion up -d
    • 仅Memory Bank:docker compose --profile memory-bank up -d
    • 仅Linear:docker compose --profile linear up -d
    • 显式启动所有服务:docker compose --profile all up -d
  • 通过在docker-compose目录中创建新文件轻松添加新服务

注意:此项目遵循现代Docker Compose实践,省略了不再需要的version键。

注意:网络配置仅在主docker-compose.yml文件中定义,以避免冲突。所有服务都引用此网络,但不重新定义它。

注意:默认配置文件在.env文件中使用COMPOSE_PROFILES环境变量设置为all,允许您运行docker compose up而无需显式指定配置文件。

访问服务

一旦运行,您可以使用每个工具各自的基于路径的路由访问服务

基于路径的路由

  • Traefik仪表板:http://$HOSTNAME/dashboard/
  • Notion MCP服务器
    • SSE端点:http://$HOSTNAME/notion/sse
    • 消息端点:http://$HOSTNAME/notion/message
  • GitHub MCP服务器
    • SSE端点:http://$HOSTNAME/github/sse
    • 消息端点:http://$HOSTNAME/github/message
  • Linear MCP服务器
    • SSE端点:http://$HOSTNAME/linear/sse
    • 消息端点:http://$HOSTNAME/linear/message
  • Memory-bank MCP服务器
    • SSE端点:http://$HOSTNAME/memory-bank/sse
    • 消息端点:http://$HOSTNAME/memory-bank/message

工作原理

SuperGateway

SuperGateway用于在stdio和SSE传输之间进行转换:

  1. SuperGateway安装在容器中
  2. 它使用--stdio标志运行MCP服务器命令
  3. 它暴露HTTP端点用于SSE连接和消息发送

Traefik配置

Traefik配置为:

  1. 根据路径前缀(例如/notion/github/dashboard)路由请求
  2. 在转发到适当的服务之前剥离路径前缀
  3. 设置适当的连接确保连接不会中断
  4. 提供一个仪表板用于监控

测试设置

要测试设置,您可以使用MCP Inspector:

npx @modelcontextprotocol/inspector node build/index.js

故障排除

  • 路径路由问题:验证Traefik标签中的路径前缀,SuperGateway的baseUrl选项和strip中间件配置
  • MCP服务器错误:检查容器的日志:
    docker compose logs -f notion-gateway
    docker compose logs -f github-gateway
    
  • SuperGateway问题:确保MCP服务器命令正确且包存在于node注册表中-某些包在mcp和node注册表中可能有不同的名称。