使用说明

项目简介

MCP API 是一个基于 Node.js 和 Express.js 构建的服务器,它充当 MCP 服务器的管理和聚合层。与直接实现 MCP 服务器不同,此项目连接到多个已存在的 MCP 服务器,并通过一个统一的 REST API 将这些服务器提供的工具暴露出来。这使得 LLM 应用可以通过标准的 HTTP 请求访问和调用来自不同 MCP 服务器的工具,简化了多服务器环境下的工具集成和管理。

主要功能点

  • 多 MCP 服务器管理: 可以配置和连接到多个独立的 MCP 服务器。
  • REST API 接口: 将 MCP 服务器的工具通过简洁的 RESTful API 暴露出来,易于集成到各种 LLM 应用中。
  • 工具发现: 提供 API 接口 '/tools/{toolType}' 用于检索所有已注册的工具,支持 MCP 和 OpenAI 两种工具格式。
  • 工具调用: 通过 '/callTool' 接口,可以方便地调用任何已注册的工具,并获取工具执行结果。
  • Swagger 文档: 集成 Swagger UI,提供清晰的 API 文档,方便开发者理解和使用。

安装步骤

  1. 克隆仓库
    git clone https://github.com/JoshuaRileyDev/mcp-api.git
    cd mcp-api
  2. 安装依赖并启动开发服务器
    npm install
    npm run dev
  3. 配置环境变量
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 修改 '.env' 文件中的 'MCP_CONFIG_PATH' 环境变量,设置为你的 'mcp_config.json' 配置文件的绝对路径

服务器配置

你需要创建一个 'mcp_config.json' 文件来配置要管理的 MCP 服务器。此文件应包含一个 'mcpServers' 字段,其中定义了每个 MCP 服务器的连接信息。

以下是一个 'mcp_config.json' 文件的示例:

{
  "mcpServers": {
    "server1": {
      "command": "/path/to/your/first/mcp-server",
      "args": ["--port", "8001"],
      "env": {
        "SERVER_SPECIFIC_VAR": "value1"
      }
    },
    "my-second-mcp-server": {
      "command": "/path/to/your/second/mcp-server",
      "args": [],
      "env": {
        "ANOTHER_VAR": "value2"
      }
    }
  }
}
  • 'mcpServers': 一个 JSON 对象,包含了所有要管理的 MCP 服务器的配置。
    • 每个键(例如 '"server1"', '"my-second-mcp-server"')是你为 MCP 服务器定义的名称,可以自定义。
    • 'command': MCP 服务器的可执行文件路径或启动命令。 这是客户端连接 MCP 服务器最关键的配置。请确保路径正确,并且 MCP 服务器能够通过此命令启动。
    • 'args': (可选) 启动 MCP 服务器时需要传递的命令行参数,以字符串数组形式提供。例如,'["--port", "8001"]' 表示设置 MCP 服务器监听端口为 8001。
    • 'env': (可选) 一个 JSON 对象,用于设置 MCP 服务器进程的环境变量。例如,可以用于传递服务器特定的配置信息。

注意: 'command' 和 'args' 的配置是用于启动和连接到 已存在 的 MCP 服务器。 你需要确保这些 MCP 服务器已经按照 MCP 协议实现并可独立运行。 本项目 'mcp-api' 本身不是一个独立的 MCP 服务器,而是 MCP 服务器的管理工具

基本使用方法

  1. 启动 mcp-api 服务器: 运行 'npm run dev' 命令启动 mcp-api 服务器。默认情况下,服务器将在 'http://localhost:3005' 启动。

  2. 查看 API 文档: 访问 'http://localhost:3005/api-docs' 查看 Swagger UI 提供的 API 文档,了解所有可用的 API 接口和使用方法。

  3. 获取工具列表:

    • 访问 'GET /tools/openai' 获取 OpenAI 格式的工具列表。
    • 访问 'GET /tools/mcp' 获取 MCP 格式的工具列表。
  4. 调用工具:

    • 发送 'POST' 请求到 '/callTool' 接口,请求体为 JSON 格式,包含 'toolName' 和 'arguments' 字段。
      • 'toolName': 要调用的工具的完整名称,格式为 '"服务器名称_工具名称"'。 例如,如果你的服务器名称为 '"server1"',要调用的工具名称为 '"tool_a"',则 'toolName' 应为 '"server1_tool_a"'。 服务器名称与你在 'mcp_config.json' 中定义的名称一致。
      • 'arguments': 传递给工具的参数,以 JSON 对象形式提供。

    请求示例:

    curl -X POST \
      -H "Content-Type: application/json" \
      -d '{
            "toolName": "server1_tool_a",
            "arguments": {"input": "example input"}
          }' \
      http://localhost:3005/callTool

    响应示例:

    {
      "result": "工具执行结果..."
    }

通过以上步骤,你可以使用 'mcp-api' 服务器来管理和调用多个 MCP 服务器提供的工具,从而构建更强大的 LLM 应用。

信息

分类

网页与API