使用说明

项目简介

多服务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端点,方便直接调用。
  • 易于扩展: 模块化设计使得添加或移除工具变得简单。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/AdamPippert/multi-service-mcp-server.git
    cd multi-service-mcp-server
  2. 安装Python依赖:
    pip install -r requirements.txt
  3. 安装Node.js依赖:
    npm install
  4. 配置环境变量: 复制 '.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浏览器路径。
  5. 启动服务器:
    python app.py
    服务器默认在 'http://0.0.0.0:5000' 启动。

服务器配置 (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服务器运行在不同的主机或端口,请相应地调整客户端的连接配置(如果客户端需要配置服务器地址)。

基本使用方法

  1. 获取能力清单 (Manifest): 客户端可以向 '/mcp/manifest' 端点发送 'GET' 请求,获取服务器支持的工具和功能列表。

    curl http://localhost:5000/mcp/manifest
  2. 通过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
  3. 直接访问工具API: 可以直接访问特定工具的API端点,例如访问GitHub工具的 'listRepos' 接口:

    curl http://localhost:5000/tool/github/listRepos?username=octocat

    更多工具API端点请参考仓库的README文档。

信息

分类

网页与API