你是否曾经希望自己的AI助手能够同时操作GitHub、查询Google地图、执行网页自动化,还能持久化存储数据?如果为每一个服务都单独配置一个MCP服务器,不仅繁琐,还难以管理。今天要介绍的开源项目多服务协议中枢,正是为了解决这个痛点而诞生的。它是一个模块化的MCP服务器,通过统一的网关,将多种服务集成到了一个平台中。

需要特别说明的是,该项目已不再维护。作者AdamPippert明确表示,由于小型模型存在内存问题,他更倾向于使用独立的容器化服务器提供者。不过,代码仍然公开,可供有需要的人参考或尝试。

项目基本信息

信息项详情
项目名称多服务协议中枢
GitHub地址https://github.com/AdamPippert/mcp-server
项目描述一个实现模型上下文协议标准的模块化服务器,提供通过统一网关与GitHub、GitLab、Google地图、内存存储和网络自动化交互的工具。
作者AdamPippert
开源协议MIT License
开源状态公开状态(已不再维护)
LanguagesPython, JavaScript
支持平台Windows / macOS / Linux
最后更新2026-04-23

一、项目介绍

多服务协议中枢是一个实现了MCP标准的模块化服务器。它的核心设计理念是“统一网关,模块化工具”。你可以通过一个统一的API端点,调用GitHub、GitLab、Google地图、内存存储和Puppeteer网页自动化等多种工具,而无需为每个服务单独配置MCP服务器。

这个项目的架构非常清晰:服务器提供一个MCP网关端点,负责接收和路由所有工具请求;每个工具都作为独立模块实现,可以根据需要轻松添加或移除。它还提供了MCP清单端点,用于描述所有可用工具及其功能。

尽管项目已不再维护,但其设计思路对于理解MCP架构、学习如何集成多种服务仍有一定参考价值。

二、核心优势(基于原始设计)

统一网关,多服务集成

通过一个MCP服务器,就能访问GitHub、GitLab、Google地图、内存存储和网页自动化等多种服务,避免了为每个服务单独配置服务器的繁琐。

模块化设计

每个工具都是独立的模块,可以轻松添加、移除或替换。这种设计使得服务器非常灵活,易于扩展。

多种访问方式

除了统一的MCP网关,每个工具也可以通过自己的API端点直接访问。这为不同场景提供了灵活的选择。

容器化支持

提供Docker和Podman部署支持,方便在生产环境中运行。特别对Red Hat系Linux(RHEL、CentOS、Fedora)有良好的支持。

丰富的工具集

包含5大类工具,每类工具都有多个操作,覆盖了开发者和AI代理常见的需求。

三、适用场景(历史参考)

开发者学习和参考

如果你想学习如何设计一个模块化的MCP服务器,或者如何将多个外部API集成到MCP中,这个项目作为参考。但请注意它已不再维护。

个人项目临时使用

如果你需要快速搭建一个集成了多种服务的MCP环境,且不介意使用不再维护的项目,可以短期尝试。

理解MCP架构

通过研究这个项目的代码和架构,可以加深对MCP协议和模块化设计的理解。

四、安装教程(旧版,仅供参考)

系统要求

工具用途下载/安装方式
Python后端运行环境[https://python.org/] (版本要求:3.8 或以上)
Node.jsPuppeteer依赖[https://nodejs.org/] (版本要求:14.0 或以上)
Git下载项目代码[https://git-scm.com/]

旧版安装步骤

第一步:克隆项目并安装依赖

git clone https://github.com/AdamPippert/mcp-server.git
cd mcp-server
pip install -r requirements.txt
npm install

第二步:配置环境变量

创建.env文件,配置你需要使用的服务的API密钥:

SECRET_KEY=你的密钥
DEBUG=False

# GitHub配置(可选)
GITHUB_TOKEN=你的GitHub令牌

# GitLab配置(可选)
GITLAB_TOKEN=你的GitLab令牌

# Google地图配置(可选)
GMAPS_API_KEY=你的Google地图API密钥

# 内存配置(可选)
MEMORY_DB_URI=sqlite:///memory.db

# Puppeteer配置(可选)
PUPPETEER_HEADLESS=true
CHROME_PATH=/usr/bin/chromium-browser

第三步:启动服务器

python app.py

服务器默认运行在5000端口。

第四步:使用MCP网关

通过HTTP POST请求调用MCP网关:

POST /mcp/gateway
{
  "tool": "github",
  "action": "listRepos",
  "parameters": {
    "username": "octocat"
  }
}

五、使用示例(旧版)

示例1:通过MCP网关调用GitHub工具

请求

{
  "tool": "github",
  "action": "searchRepos",
  "parameters": {
    "q": "mcp-server"
  }
}

响应:返回匹配的仓库列表。

示例2:直接访问Puppeteer工具

截图请求POST /tool/puppeteer/screenshot

{
  "url": "https://example.com",
  "fullPage": true
}

提取网页内容POST /tool/puppeteer/extract

{
  "url": "https://example.com",
  "selectors": ["h1", "p"]
}

示例3:使用Google地图工具

地理编码请求POST /tool/gmaps/geocode

{
  "address": "1600 Amphitheatre Parkway, Mountain View, CA"
}

地点搜索

{
  "query": "coffee shops in Seattle",
  "location": "47.6062,-122.3321",
  "radius": 5000
}

示例4:使用内存工具持久化数据

存储数据POST /tool/memory/set

{
  "key": "user_preference",
  "value": "dark_mode",
  "metadata": {
    "created_by": "ai_assistant"
  }
}

检索数据GET /tool/memory/get?key=user_preference

示例5:获取MCP清单

GET /mcp/manifest

返回所有可用工具及其操作的完整描述,包括参数和返回值格式。

六、容器化部署(旧版)

Docker部署

# 构建镜像
docker build -t mcp-server .

# 运行容器
docker run -p 5000:5000 --env-file .env mcp-server

Podman部署(针对Red Hat系统)

# 构建镜像
podman build -t mcp-server .

# 运行容器(注意SELinux的:Z标志)
podman run -p 5000:5000 --env-file .env -v ./data:/app/data:Z mcp-server

七、总结

多服务协议中枢是一个设计思路清晰、架构模块化的MCP服务器。它通过统一网关集成了GitHub、GitLab、Google地图、内存存储和Puppeteer等多种工具,展示了MCP协议在实际应用中的潜力。

然而,该项目已不再维护。作者明确指出,由于小型模型存在内存问题,他更倾向于使用独立的容器化服务器提供者,而非单一的路由提供者。这意味着:

  • 不建议在新项目中使用此项目
  • 代码仅作为参考和学习用途
  • 生产环境请寻找其他活跃维护的替代方案

对于开发者,这个项目的价值在于:

  1. 学习模块化MCP服务器的设计思路
  2. 理解如何将多个外部API封装成MCP工具
  3. 参考其架构,但使用更现代、更活跃的框架重新实现

如果你需要一个活跃维护的多服务MCP解决方案,建议寻找独立的、容器化的MCP服务器,或者考虑使用Apify、Smithery等托管平台。

标签: 浏览器自动化

已有 34 条评论

    1. AdamAdv AdamAdv

      项目已不再维护有点可惜,但设计思路值得学习。

    2. BellaBot BellaBot

      统一网关的概念很好,不用为每个服务单独配MCP了。

    3. CarlosCode CarlosCode

      我参考它的架构,用FastMCP重新实现了一个,效果不错。

    4. DaisyDev DaisyDev

      内存工具很有趣,可以让AI记住跨会话的信息。

    5. EthanEasy EthanEasy

      GitHub和GitLab同时支持,对用多个代码托管平台的公司很实用。