Multi-service MCP Server
一个模块化的服务器,实现了模型上下文协议标准,通过统一的网关提供与 GitHub、GitLab、Google 地图、内存存储和 Web 自动化交互的工具。
README
模型上下文协议 (MCP) 服务器
一个模块化的服务器,实现了 模型上下文协议 标准,提供 GitHub、GitLab、Google Maps、内存存储和 Puppeteer Web 自动化工具。
架构
MCP 服务器采用模块化架构构建,其中每个工具都作为一个独立的模块实现。服务器提供一个统一的网关,将请求路由到相应的工具。

功能
- MCP 网关: 遵循 MCP 标准的所有工具请求的统一端点
- MCP 清单: 描述所有可用工具及其功能的端点
- 直接工具访问: 每个工具都可以通过其自身的 API 端点直接访问
- 模块化设计: 可以根据需要轻松添加或删除工具
包含的工具
- GitHub 工具: 与 GitHub 存储库、问题和搜索进行交互
- GitLab 工具: 与 GitLab 项目、问题和管道进行交互
- Google Maps 工具: 地理编码、路线和地点搜索
- 内存工具: 持久存储和检索数据
- Puppeteer 工具: 截取屏幕截图、生成 PDF 以及从网站提取内容
快速入门
前提条件
- Python 3.8 或更高版本
- Node.js 14 或更高版本
- 基于 Red Hat 的 Linux 发行版(RHEL、CentOS、Fedora)或任何 Linux/macOS 系统
安装
-
克隆此存储库:
git clone https://github.com/yourusername/mcp-server.git cd mcp-server -
安装 Python 依赖项:
pip install -r requirements.txt -
安装 Node.js 依赖项:
npm install -
创建一个包含配置的
.env文件:SECRET_KEY=your-secret-key DEBUG=False # GitHub 配置 GITHUB_TOKEN=your-github-token # GitLab 配置 GITLAB_TOKEN=your-gitlab-token # Google Maps 配置 GMAPS_API_KEY=your-google-maps-api-key # 内存配置 MEMORY_DB_URI=sqlite:///memory.db # Puppeteer 配置 PUPPETEER_HEADLESS=true CHROME_PATH=/usr/bin/chromium-browser -
启动服务器:
python app.py
容器化部署
您可以使用 Docker 或 Podman(Red Hat 的容器引擎)运行服务器。
Docker 部署
如果您已经安装了 Docker 和 docker-compose:
-
构建 Docker 镜像:
docker build -t mcp-server . -
运行容器:
docker run -p 5000:5000 --env-file .env mcp-server -
或者,使用 docker-compose:
创建一个
docker-compose.yml文件:version: '3' services: mcp-server: build: . ports: - "5000:5000" volumes: - ./data:/app/data env_file: - .env restart: unless-stopped然后运行:
docker-compose up -d
Podman 部署
对于使用 Podman 的基于 Red Hat 的系统(RHEL、CentOS、Fedora):
-
构建容器镜像:
podman build -t mcp-server . -
运行容器:
podman run -p 5000:5000 --env-file .env mcp-server -
如果您需要持久存储:
mkdir -p ./data podman run -p 5000:5000 --env-file .env -v ./data:/app/data:Z mcp-server注意:
:Z后缀对于启用 SELinux 的系统非常重要。 -
使用 Podman Compose(如果已安装):
# 如果需要,安装 podman-compose pip install podman-compose # 使用与上面相同的 docker-compose.yml 文件 podman-compose up -d
使用 MCP 服务器
MCP 网关
MCP 网关是使用 MCP 标准访问所有工具的主要端点。
端点: POST /mcp/gateway
请求格式:
{
"tool": "github",
"action": "listRepos",
"parameters": {
"username": "octocat"
}
}
响应格式:
{
"tool": "github",
"action": "listRepos",
"status": "success",
"result": [
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"owner": {
"login": "octocat",
"id": 1
},
...
}
]
}
MCP 清单
MCP 清单描述了所有可用的工具及其功能。
端点: GET /mcp/manifest
响应格式:
{
"manifestVersion": "1.0",
"tools": {
"github": {
"actions": {
"listRepos": {
"description": "列出用户或组织的存储库",
"parameters": {
"username": {
"type": "string",
"description": "GitHub 用户名或组织名称"
}
},
"returns": {
"type": "array",
"description": "存储库对象列表"
}
},
...
}
},
...
}
}
直接工具访问
每个工具也可以通过其自身的 API 端点直接访问:
- GitHub:
/tool/github/... - GitLab:
/tool/gitlab/... - Google Maps:
/tool/gmaps/... - 内存:
/tool/memory/... - Puppeteer:
/tool/puppeteer/...
有关可用端点的详细信息,请参阅每个工具的 API 文档。
工具文档
GitHub 工具
GitHub 工具提供对 GitHub API 的访问,用于存储库、问题和搜索。
操作:
listRepos: 列出用户或组织的存储库getRepo: 获取特定存储库的详细信息searchRepos: 搜索存储库getIssues: 获取存储库的问题createIssue: 在存储库中创建一个新问题
GitLab 工具
GitLab 工具提供对 GitLab API 的访问,用于项目、问题和管道。
操作:
listProjects: 列出经过身份验证的用户可以访问的所有项目getProject: 获取特定项目的详细信息searchProjects: 在 GitLab 上搜索项目getIssues: 获取项目的问题createIssue: 在项目中创建一个新问题getPipelines: 获取项目的管道
Google Maps 工具
Google Maps 工具提供对 Google Maps API 的访问,用于地理编码、路线和地点搜索。
操作:
geocode: 将地址转换为地理坐标reverseGeocode: 将地理坐标转换为地址getDirections: 获取两个位置之间的路线searchPlaces: 使用 Google Places API 搜索地点getPlaceDetails: 获取特定地点的详细信息
内存工具
内存工具提供持久的键值存储,用于存储和检索数据。
操作:
get: 按键获取内存项set: 创建或更新内存项delete: 按键删除内存项list: 列出所有内存项,带有可选的过滤search: 按值搜索内存项
Puppeteer 工具
Puppeteer 工具提供 Web 自动化功能,用于截取屏幕截图、生成 PDF 以及从网站提取内容。
操作:
screenshot: 截取网页的屏幕截图pdf: 生成网页的 PDFextract: 从网页提取内容
贡献
欢迎贡献!以下是如何扩展 MCP 服务器:
添加新工具
- 在
tools目录中创建一个新文件,例如tools/newtool_tool.py - 按照与现有工具相同的模式实现带有操作的工具
- 将工具添加到
app.py中的清单 - 在
tools/__init__.py中注册工具的蓝图
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。