你是否曾经希望自己的AI助手能够同时操作GitHub、查询Google地图、执行网页自动化,还能持久化存储数据?如果为每一个服务都单独配置一个MCP服务器,不仅繁琐,还难以管理。今天要介绍的开源项目多服务协议中枢,正是为了解决这个痛点而诞生的。它是一个模块化的MCP服务器,通过统一的网关,将多种服务集成到了一个平台中。
需要特别说明的是,该项目已不再维护。作者AdamPippert明确表示,由于小型模型存在内存问题,他更倾向于使用独立的容器化服务器提供者。不过,代码仍然公开,可供有需要的人参考或尝试。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | 多服务协议中枢 |
| GitHub地址 | https://github.com/AdamPippert/mcp-server |
| 项目描述 | 一个实现模型上下文协议标准的模块化服务器,提供通过统一网关与GitHub、GitLab、Google地图、内存存储和网络自动化交互的工具。 |
| 作者 | AdamPippert |
| 开源协议 | MIT License |
| 开源状态 | 公开状态(已不再维护) |
| Languages | Python, 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.js | Puppeteer依赖 | [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-serverPodman部署(针对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协议在实际应用中的潜力。
然而,该项目已不再维护。作者明确指出,由于小型模型存在内存问题,他更倾向于使用独立的容器化服务器提供者,而非单一的路由提供者。这意味着:
- 不建议在新项目中使用此项目
- 代码仅作为参考和学习用途
- 生产环境请寻找其他活跃维护的替代方案
对于开发者,这个项目的价值在于:
- 学习模块化MCP服务器的设计思路
- 理解如何将多个外部API封装成MCP工具
- 参考其架构,但使用更现代、更活跃的框架重新实现
如果你需要一个活跃维护的多服务MCP解决方案,建议寻找独立的、容器化的MCP服务器,或者考虑使用Apify、Smithery等托管平台。
项目已不再维护有点可惜,但设计思路值得学习。
统一网关的概念很好,不用为每个服务单独配MCP了。
我参考它的架构,用FastMCP重新实现了一个,效果不错。
内存工具很有趣,可以让AI记住跨会话的信息。
GitHub和GitLab同时支持,对用多个代码托管平台的公司很实用。