使用说明

项目简介

OpenAPI MCP Proxy 是一个命令行工具,可以将任何符合 OpenAPI 规范的 RESTful API 转换为 Model Context Protocol (MCP) 服务器。它充当桥梁,让支持 MCP 协议的 AI 智能体(如 VS Code Copilot Agent Mode)能够直接调用和利用现有的 REST API,无需修改原有 API 服务。

主要功能点

  • OpenAPI 到 MCP 转换: 自动读取 OpenAPI 规范文件,并将其转换为 MCP 服务器。
  • REST API 代理: 接收 MCP 客户端的请求,并将其代理到实际的 REST API 服务。
  • 协议转换: 在 MCP 协议和 REST 协议之间进行转换,使得 AI 智能体可以使用标准的 MCP 方式调用 REST API。
  • 工具注册: 将 OpenAPI 规范中定义的 API 操作注册为 MCP 工具,供 AI 智能体发现和调用。
  • 会话管理: 支持 SSE 长连接,实现 MCP 服务器与客户端之间的会话管理。

安装步骤

  1. 确保已安装 Node.js 和 npm。
  2. 全局安装 'openapi-mcp-proxy':
    npm install -g openapi-mcp-proxy

服务器配置

MCP 客户端需要配置以下服务器信息以连接到 OpenAPI MCP Proxy 服务器。以下是一个 JSON 格式的配置示例,您可以根据实际情况进行调整。

{
  "serverName": "OpenAPI MCP Proxy",
  "command": "openapi-mcp-proxy",
  "args": [
    "--spec",  "./path/to/openapi.yml",  // OpenAPI 规范文件路径,请替换为实际文件路径,例如 resources/petstore.openapi.yml
    "--target", "http://your-api.com",   // 目标 REST API 服务的根 URL,请替换为实际 API 地址,例如 https://petstore.swagger.io/v2
    "--port", "3000"                     // MCP 服务器监听的端口号,默认为 3000,可根据需要修改
  ]
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令,固定为 'openapi-mcp-proxy'。
  • 'args': 传递给 'openapi-mcp-proxy' 命令的参数数组,包括:
    • '--spec': 指定 OpenAPI 规范文件路径。可以使用相对路径(相对于 MCP 客户端的当前工作目录)或绝对路径。
    • '--target': 指定目标 REST API 服务的根 URL。
    • '--port': 指定 MCP 服务器监听的端口号。如果省略,则默认为 '3000'。

注意:

  • 请将 '"./path/to/openapi.yml"' 替换为您的 OpenAPI 规范文件的实际路径。
  • 请将 '"http://your-api.com"' 替换为您的目标 REST API 服务的实际根 URL。
  • 确保 MCP 客户端能够访问到运行 OpenAPI MCP Proxy 服务器的机器和端口。

基本使用方法

  1. 准备 OpenAPI 规范文件: 确保您有一个有效的 OpenAPI 规范文件 (YAML 或 JSON 格式) 描述了您想要代理的 REST API。
  2. 启动 MCP 服务器: 在命令行中使用 'openapi-mcp-proxy' 命令启动服务器,并指定必要的参数,例如:
    npx openapi-mcp-proxy --spec resources/petstore.openapi.yml --target https://petstore.swagger.io/v2
    这将启动一个 MCP 服务器,监听 3000 端口,并将请求代理到 'https://petstore.swagger.io/v2' 提供的 Petstore API。
  3. 配置 MCP 客户端: 在您的 MCP 客户端(例如 VS Code Copilot Agent Mode)中,添加一个新的 MCP 服务器连接,并使用上面 服务器配置 中生成的 JSON 配置信息。确保服务器 URL 设置为 'http://localhost:3000/mcp' (如果使用默认端口 3000)。
  4. 使用 AI 智能体: 现在,您的 AI 智能体应该能够发现并调用通过 OpenAPI MCP Proxy 暴露的 REST API 工具了。例如,在 VS Code Copilot Chat 中,您可以尝试询问类似 "how many pets are available right now?" 的问题,如果 Petstore API 提供了相关接口,Copilot 应该能够调用并返回结果。

测试

可以使用 MCP Inspector 或 VS Code Copilot Agent Mode 进行测试。

  • MCP Inspector: 安装并运行 MCP Inspector,然后在 Inspector UI 中输入您的 MCP 服务器地址(例如 'http://localhost:3000/mcp')进行连接和测试。
  • VS Code Copilot Agent Mode: 启用 VS Code Agent Mode,并按照提示添加 MCP 服务器,然后通过 Copilot Chat 与您的 MCP 服务器进行交互。

信息

分类

网页与API