mcpField
C
Central MCP Host

Central MCP Host

本地服务
github.com/odgrim云与基础设施785 周前更新

关于 Central MCP Host

Central MCP Host 使用 Docker、Traefik 和 SuperGateway,在家庭实验室集中运行多个 MCP 服务。它适合希望避免在每台机器分别部署服务的用户,并支持按配置档选择服务。

主要功能

  1. 01集中托管多个 MCP 服务
  2. 02Traefik 按路径路由请求
  3. 03SuperGateway 转换 stdio 与 SSE
  4. 04按配置档启动指定服务
  5. 05提供 Traefik 监控面板

适用场景

  1. 01在家庭实验室运行 Notion、Linear 和 GitHub 服务
  2. 02为 MCP 客户端提供 SSE 端点
  3. 03只启动所需的 MCP 服务

MCP 相关

它托管 Notion、Linear、GitHub 和 Memory Bank 的 MCP 服务,并通过 SuperGateway 将 stdio 转为 SSE,向 MCP 客户端提供 HTTP 端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"central-mcp-proxy": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
启动命令docker run -i --rm compose

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocicompose

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Central MCP Host

本项目使用 Docker、Traefik 和 SuperGateway,为 Model Context Protocol(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
    # Edit .env with your API tokens
    
  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(使用 .env 中设置的默认 all 配置文件)
  • 使用配置文件启动特定服务:
    • 仅启动 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 V2 及更高版本已不再需要该键。

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

注意: 默认配置文件通过 COMPOSE_PROFILES 环境变量在 .env 文件中设置为 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. 暴露用于 SSE 连接和发送消息的 HTTP 端点
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 注册表中的名称不同。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。