使用说明
项目简介
多服务MCP服务器是一个基于 Model Context Protocol (MCP) 标准构建的后端应用,旨在为大型语言模型(LLM)客户端提供丰富的上下文信息和功能。它通过模块化架构集成多种实用工具,如代码仓库管理、地理信息查询、数据存储和网页内容抓取等,以标准化的方式响应LLM客户端的请求,扩展LLM的应用能力。
主要功能点
- 统一MCP网关: 提供符合MCP标准的统一入口 '/mcp/gateway',处理所有工具的请求。
- 能力清单 (MCP Manifest): 通过 '/mcp/manifest' 端点声明服务器提供的所有工具及其功能,方便客户端了解和调用。
- 模块化工具: 内置多种工具模块,包括:
- GitHub 工具: 访问和操作 GitHub 仓库、Issue、搜索等。
- GitLab 工具: 访问和操作 GitLab 项目、Issue、流水线等。
- Google 地图工具: 提供地理编码、反向地理编码、路线规划和地点搜索等功能。
- 内存工具: 提供持久化的键值存储服务,用于数据存储和检索。
- Puppeteer 网页自动化工具: 实现网页截图、生成PDF和内容提取等功能。
- 直接工具访问: 除了通过MCP网关,每个工具也提供独立的API端点,方便直接调用。
- 易于扩展: 模块化设计使得添加或移除工具变得简单。
安装步骤
- 克隆仓库:
git clone https://github.com/AdamPippert/multi-service-mcp-server.git cd multi-service-mcp-server - 安装Python依赖:
pip install -r requirements.txt - 安装Node.js依赖:
npm install - 配置环境变量:
复制 '.env' 文件模版并根据需要修改配置,例如设置API密钥、Token等。
请务必配置以下信息:cp .env.example .env # 编辑 .env 文件 nano .env- 'SECRET_KEY': 用于Flask应用的安全密钥。
- 各个工具所需的API密钥或Token,例如 'GITHUB_TOKEN', 'GITLAB_TOKEN', 'GMAPS_API_KEY'。
- 'MEMORY_DB_URI': 内存工具的数据库连接URI,默认为 SQLite 数据库文件。
- 'PUPPETEER_HEADLESS' 和 'CHROME_PATH': Puppeteer 工具配置,指定是否无头模式运行以及Chrome浏览器路径。
- 启动服务器:
服务器默认在 'http://0.0.0.0:5000' 启动。python app.py
服务器配置 (MCP客户端)
MCP客户端需要配置以下JSON格式信息以连接到此MCP服务器。
{ "serverName": "my-mcp-server", "command": "python", "args": ["app.py"] }
配置参数说明:
- 'serverName': MCP服务器的名称,可以自定义,用于在客户端标识不同的服务器连接。
- 'command': 启动MCP服务器的命令,这里使用 'python' 命令来运行 'app.py' 文件。
- 'args': 启动命令的参数,这里使用 '["app.py"]' 指定要运行的Python脚本。
注意:
- 请确保MCP客户端能够访问到运行 MCP服务器的环境。
- 如果你的MCP服务器运行在不同的主机或端口,请相应地调整客户端的连接配置(如果客户端需要配置服务器地址)。
基本使用方法
-
获取能力清单 (Manifest): 客户端可以向 '/mcp/manifest' 端点发送 'GET' 请求,获取服务器支持的工具和功能列表。
curl http://localhost:5000/mcp/manifest -
通过MCP网关调用工具: 客户端可以向 '/mcp/gateway' 端点发送 'POST' 请求,调用特定工具的功能。请求体为JSON格式,包含 'tool' (工具名称), 'action' (工具动作) 和 'parameters' (动作参数)。
例如,使用GitHub工具的 'listRepos' 动作,列出用户 'octocat' 的仓库:
curl -X POST -H "Content-Type: application/json" -d '{ "tool": "github", "action": "listRepos", "parameters": { "username": "octocat" } }' http://localhost:5000/mcp/gateway -
直接访问工具API: 可以直接访问特定工具的API端点,例如访问GitHub工具的 'listRepos' 接口:
curl http://localhost:5000/tool/github/listRepos?username=octocat更多工具API端点请参考仓库的README文档。
信息
分类
网页与API