中央MCP主机
该项目使用Docker、Traefik和SuperGateway为模型上下文协议(MCP)服务器提供了一个集中式托管环境。
概述
此设置运行Traefik反向代理,将请求路由到各种MCP服务器。SuperGateway用于在stdio和SSE传输之间进行转换,允许MCP服务器使用SSE与客户端通信。
包括MCP服务器
- 概念:与Notion数据库和页面交互
- 线性:与线性票互动
- GitHub:与GitHub存储库、问题和拉取请求交互
- 存储体:用于记录项目笔记、思维轨迹和学习的工具
先决条件
- Docker和Docker Compose
- 通知API令牌
- 线性API令牌
- GitHub API令牌
设置
- 克隆此存储库
- 复制
.env.example文件到.env并填写您的API令牌:
cp .env.example .env
# Edit .env with your API tokens- 启动服务:
docker compose up -dDocker编写结构
该项目使用模块化的Docker Compose结构:
docker-compose.yml:包含Traefik配置和对特定服务文件的引用的主文件docker-compose/github.yml:GitHub MCP服务器配置docker-compose/notion.yml:注意MCP服务器配置docker-compose/memory-bank.yml:内存库MCP服务器配置docker-compose/linear.yml:线性MCP服务器配置
这种模块化方法允许您:
- 启动所有服务:
docker compose up -d(使用默认值all配置文件已设置.env) - 使用配置文件启动特定服务:
- 仅限GitHub: docker compose --profile github up -d - 仅供参考: docker compose --profile notion up -d - 仅限存储库: docker compose --profile memory-bank up -d - 仅线性: docker compose --profile linear up -d - 所有服务明确: docker compose --profile all up -d
- 通过在中创建新文件,可以轻松添加新服务
docker-compose目录
注: 该项目遵循现代Docker Compose实践,省略了 version key,在Docker Compose V2及以上版本中不再需要。注: 网络配置仅在主目录中定义 docker-compose.yml 文件以避免冲突。所有服务都引用此网络,但不要重新定义它。注: 默认配置文件设置为all在.env文件使用COMPOSE_PROFILES环境变量,允许您运行docker compose up而无需明确指定配置文件。
访问服务
运行后,您可以使用每个工具各自的基于路径的路由访问服务
基于路径的路由
- Traefik仪表板:http://$HOSTNAME/dashboard/
- MCP服务器概念:
- SSE端点:http://$HOSTNAME/concept/SSE - 消息端点:http://$HOSTNAME/concept/Message
- GitHub MCP服务器:
- SSE端点:http://$HOSTNAME/github/SSE - 消息端点:http://$HOSTNAME/github/Message
- 线性MCP服务器:
- SSE端点:http://$HOSTNAME/linear/SSE - 消息端点:http://$HOSTNAME/linear/Message
- 存储库MCP服务器:
- SSE端点:http://$HOSTNAME/内存库/SSE - 消息端点:http://$HOSTNAME/内存库/Message
运作原理
超级网关
SuperGateway用于在stdio和SSE传输之间进行转换:
- SuperGateway已安装在容器中
- 它使用以下命令运行MCP服务器命令
--stdio旗帜 - 它为SSE连接和消息发送公开HTTP端点
Traefik配置
Traefik配置为:
- 基于路径前缀路由请求,例如(
/notion,/github,/dashboard) - 在转发到相应的服务之前,删除路径前缀
- 设置适当的连接,确保连接不会中断
- 提供用于监控的仪表板
测试设置
要测试设置,您可以使用MCP检查器:
npx @modelcontextprotocol/inspector node build/index.js故障排除
- 路径路由问题:验证traefik标签中的路径前缀、SuperGateway baseUrl选项和条形中间件配置
- MCP服务器错误:检查容器的日志:
docker compose logs -f notion-gateway
docker compose logs -f github-gateway- SuperGateway问题:确保MCP服务器命令正确,并且该包存在于节点注册表中——一些包在MCP与节点注册表中以不同的名称进行通告。
