OpenAPI → MCP Server

OpenAPI → MCP Server

site icon
2025.04.14 2
PythonAPI 代理开发工具开发效率
OpenAPI-to-MCP 是一个 Python CLI 工具,用于基于 OpenAPI v3 规范文件(JSON 或 YAML)生成基本的 Node.js/TypeScript MCP(Model Context Protocol)服务器。该工具将 OpenAPI 规范中的每个操作映射到生成的服务器中的相应 MCP 工具,生成的服务器充当代理,接收 MCP 工具调用并将其转换为 HTTP 请求以调用 OpenAPI 规范中定义的实际 API。
View on GitHub

Overview

✨ 核心功能

  • 解析来自本地文件或 URL 的 OpenAPI v3 JSON 或 YAML。
  • 验证 OpenAPI 规范结构。
  • 将 OpenAPI 操作(GET、POST、PUT、DELETE、PATCH)映射到 MCP 工具。
  • 基于 OpenAPI 参数和请求体生成 MCP 工具的 inputSchema(JSON Schema)。
  • 生成可运行的 Node.js/TypeScript MCP 服务器项目。
  • 集成了代码格式化(ruffblack)和单元测试(pytest)。
  • JSON 日志记录。

🚀 适用场景

  • 快速将现有的 OpenAPI 规范转换为 MCP 服务器。
  • 为 API 提供 MCP 兼容的代理服务。
  • 开发需要与 MCP 协议集成的应用程序。

🛠️ 工具列表

  • generate:生成 MCP 服务器代码。
  • test-server:向运行的 MCP 服务器发送基本的 JSON-RPC 请求(ListToolsCallTool)。

❓ 常见问题解答

  1. 如何安装依赖?

    • 确保已安装 Python 3.12 或更高版本、Poetry 和 Node.js 20 或更高版本。
    • 运行 poetry install --no-dev 安装核心依赖。
    • 运行 poetry install --with dev 安装开发依赖。
  2. 如何生成 MCP 服务器?

    • 使用 generate 命令,例如: bash poetry run openapi-to-mcp generate --openapi-json https://petstore3.swagger.io/api/v3/openapi.json --output-dir ./generated-petstore-mcp --mcp-server-name petstore-mcp --transport stdio
  3. 如何测试生成的服务器?

    • 使用 test-server 命令,例如: bash poetry run openapi-to-mcp test-server --transport sse --port 8080 --list-tools

📋 使用教程

使用依赖

Prerequisites:

  • Python: Version 3.12 or higher is required (assumed to be installed).
  • Poetry: This tool uses Poetry for dependency management (assumed to be installed).
  • MCP SDK: Version 1.5.0 (installed automatically via Poetry).
  • Node.js: Version 20 or higher is required for the generated server (assumed to be installed).

安装教程

  1. Navigate to Project Directory: Open your terminal in the directory containing this openapi-to-mcp code.

  2. Install Dependencies:

    • For running the tool: bash poetry install --no-dev
    • For development (including running tests, linting, formatting): bash poetry install --with dev # or simply: poetry install
  3. Activate Virtual Environment (Optional but Recommended): bash poetry shell

调试方式

  1. Run the server: bash npm start

  2. Test the server: bash poetry run openapi-to-mcp test-server --transport sse --port 8080 --list-tools

  3. Use MCP Inspector for graphical testing:

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。