使用说明

项目简介

本项目 'MCP' 仓库包含多个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供标准化的上下文信息和功能。仓库主要包含以下几个部分:

  • github-server: 一个 MCP 服务器,提供与 GitHub 交互的工具,例如创建 Issue、搜索仓库、查看仓库内容等。
  • search-server: 一个 MCP 服务器,提供在本地文件系统中搜索文件和代码定义的工具。
  • manager-server: 一个用于管理和配置多个 MCP 服务器的管理器,提供 API 和 Web 界面。

主要功能点

  • 资源 (Resources) 管理 (通过工具实现):
    • 'github-server' 允许 LLM 客户端访问和操作 GitHub 仓库资源,例如创建 Issue、搜索仓库等。
    • 'search-server' 允许 LLM 客户端访问本地文件系统资源,例如搜索文件内容、查找代码定义等。
  • 工具 (Tools) 注册和执行:
    • 'github-server' 注册了 'create_issue', 'search_repos', 'list_repo_contents' 等工具,用于操作 GitHub。
    • 'search-server' 注册了 'search_in_files', 'find_files', 'find_code_definitions' 等工具,用于本地文件搜索。
  • Prompt 模板 (Prompts): 虽然代码中没有明确的 Prompt 模板定义,但服务器的工具设计和返回结构化的 'content' 字段为 Prompt 工程提供了基础,可以结合客户端的 Prompt 模板来实现定制化的 LLM 交互。
  • 基于 Stdio 的传输协议: 'github-server' 和 'search-server' 均实现了基于标准输入输出 (stdio) 的传输协议,方便集成和部署。
  • 服务器管理 (manager-server): 'manager-server' 提供 API 和 Web 界面,用于集中管理和监控多个 MCP 服务器的配置和状态。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/SweetingTech/MCP.git
    cd MCP/multi-mcp-repo
  2. 安装依赖 (以 'github-server' 为例):

    cd github-server
    npm install
    cd ../search-server
    npm install
    cd ../manager-server/frontend
    npm install
    cd ../src
    npm install
    cd ../..

    对于 'search-server' 和 'manager-server' 也需要执行 'npm install' 安装依赖。

  3. 构建项目 (可选,如果需要运行构建后的代码):

    cd github-server
    npm run build
    cd ../search-server
    npm run build
    cd ../manager-server/frontend
    npm run build
    cd ../src
    npm run build
    cd ../..

    同样,对于 'search-server' 和 'manager-server' 也可以选择执行 'npm run build' 构建项目。

服务器配置

以下是 'github-server' 和 'search-server' 的 MCP 客户端配置信息示例。MCP 客户端需要配置这些信息才能连接到对应的 MCP 服务器。

github-server 配置:

{
  "serverName": "github-server",
  "command": "node",
  "args": [
    "path/to/MCP/multi-mcp-repo/github-server/build/index.js"
  ],
  "env": {
    "GITHUB_TOKEN": "YOUR_GITHUB_PERSONAL_ACCESS_TOKEN" // 请替换为你的 GitHub Personal Access Token
  }
}

search-server 配置:

{
  "serverName": "search-server",
  "command": "node",
  "args": [
    "path/to/MCP/multi-mcp-repo/search-server/build/index.js"
  ]
}

注意:

  • 'command': MCP 服务器的启动命令,例如 'node'。
  • 'args': 启动命令的参数,指向服务器入口文件。请根据实际文件路径修改。
  • 'env' (可选): 环境变量配置,例如 'github-server' 需要 'GITHUB_TOKEN' 环境变量。
  • 确保在运行 'github-server' 前设置 'GITHUB_TOKEN' 环境变量。

基本使用方法

  1. 启动 MCP 服务器:

    • 打开终端,进入 'github-server' 或 'search-server' 目录。
    • 运行命令 'npm run start' (或直接运行配置中 'command' 和 'args' 组合的命令)。
    • 服务器将通过 stdio 监听 MCP 客户端的请求。
  2. 配置 MCP 客户端:

    • 在 MCP 客户端中,根据上述 “服务器配置” 示例,配置 'github-server' 或 'search-server' 的连接信息。
  3. 使用 LLM 客户端与 MCP 服务器交互:

    • 在 LLM 客户端中,发送符合 MCP 协议的请求,例如列出工具或调用工具。
    • 服务器将处理请求,并返回 JSON-RPC 响应。

示例 (假设使用 MCP 客户端发送请求):

列出 'github-server' 工具:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "listTools",
  "params": {}
}

调用 'github-server' 的 'create_issue' 工具:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "callTool",
  "params": {
    "name": "create_issue",
    "arguments": {
      "owner": "your-org",
      "repo": "your-repo",
      "title": "Test Issue from MCP",
      "body": "This is a test issue created via MCP server."
    }
  }
}

注意: 实际使用时,需要根据 MCP 客户端的具体使用方式发送请求,并解析服务器的响应。

信息

分类

开发者工具