modelscope·@AdamPippert/multi-service-mcp-server
一个实现模型上下文协议标准的模块化服务器,提供通过统一网关与GitHub、GitLab、Google地图、内存存储和网络自动化交互的工具。
一个实现 Model Context Protocol 标准的模块化服务器,提供用于 GitHub、GitLab、Google Maps、内存存储和 Puppeteer 网页自动化的工具。
MCP 服务器采用模块化架构构建,每个工具都作为一个独立的模块实现。服务器提供了一个统一的网关,将请求路由到适当的工具。

克隆此仓库:
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 地图配置
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-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
对于基于 Red Hat 的系统(RHEL、CentOS、Fedora)使用 Podman:
构建容器镜像:
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
注意:在启用了 SELinux 的系统上,-v 参数后面的 :Z 后缀非常重要。
使用 Podman Compose(如果已安装):
# 如有需要,安装 podman-compose
pip install podman-compose
# 使用与上述相同的 docker-compose.yml 文件
podman-compose up -d
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 清单描述了所有可用工具及其功能。
端点: GET /mcp/manifest
响应格式:
{
"manifestVersion": "1.0",
"tools": {
"github": {
"actions": {
"listRepos": {
"description": "List repositories for a user or organization",
"parameters": {
"username": {
"type": "string",
"description": "GitHub username or organization name"
}
},
"returns": {
"type": "array",
"description": "List of repository objects"
}
},
...
}
},
...
}
}
每个工具也可以通过其自己的 API 端点直接访问:
/tool/github/.../tool/gitlab/.../tool/gmaps/.../tool/memory/.../tool/puppeteer/...有关每个工具的可用端点的详细信息,请参阅 API 文档。
GitHub 工具提供了对仓库、问题和搜索的 GitHub API 访问。
操作:
listRepos: 列出用户或组织的仓库getRepo: 获取特定仓库的详细信息searchRepos: 搜索仓库getIssues: 获取仓库的问题createIssue: 在仓库中创建新问题GitLab 工具提供了对项目、问题和流水线的 GitLab API 访问。
操作:
listProjects: 列出认证用户可访问的所有项目getProject: 获取特定项目的详细信息searchProjects: 在 GitLab 上搜索项目getIssues: 获取项目的问题createIssue: 在项目中创建新问题getPipelines: 获取项目的流水线Google 地图工具提供了对地理编码、路线和地点搜索的 Google 地图 API 访问。
操作:
geocode: 将地址转换为地理坐标reverseGeocode: 将地理坐标转换为地址getDirections: 获取两个地点之间的路线searchPlaces: 使用 Google Places API 搜索地点getPlaceDetails: 获取特定地点的详细信息内存工具提供了一个持久化的键值存储,用于存储和检索数据。
操作:
get: 通过键获取内存项set: 创建或更新内存项delete: 通过键删除内存项list: 列出所有内存项,可选过滤search: 按值搜索内存项Puppeteer 工具提供了网页自动化功能,包括截屏、生成 PDF 以及从网站中提取内容。
操作:
screenshot: 截取网页的屏幕截图pdf: 生成网页的 PDFextract: 从网页中提取内容欢迎贡献!以下是您可以扩展 MCP 服务器的方法:
tools 目录下创建一个新文件,例如 tools/newtool_tool.pyapp.py 中的清单里tools/__init__.py 中注册工具的蓝图本项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。
一个MCP服务器,它在本地git仓库上提供语义搜索功能,使用户能够克隆仓库、处理分支并通过矢量化代码块搜索代码。
一种模型上下文协议(MCP)服务器,可以帮助大型语言模型以最少的设置来索引、搜索和分析代码库。
一个功能齐全的编码代理,它使用符号操作(由语言服务器启用),即使在大型代码库中也能很好地工作。本质上是 Cursor 和 Windsurf Agents、Cline、Roo Code 等的免费替代品。
为虚幻引擎代码库提供深度源代码分析,使人工智能助手能够理解C++类结构、搜索代码和分析子系统。
一个通过分析你的编程项目、自动提取技能并生成专业描述来更新你的JSON简历,从而增强AI助手功能的服务器。
一种模型上下文协议服务器,使大型语言模型能够通过强大的API与Git仓库进行交互,支持仓库初始化、克隆、文件暂存、提交和分支管理等操作。