
OpenAPI → MCP Server

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 服务器项目。
- 集成了代码格式化(
ruff
和black
)和单元测试(pytest
)。 - JSON 日志记录。
🚀 适用场景
- 快速将现有的 OpenAPI 规范转换为 MCP 服务器。
- 为 API 提供 MCP 兼容的代理服务。
- 开发需要与 MCP 协议集成的应用程序。
🛠️ 工具列表
generate
:生成 MCP 服务器代码。test-server
:向运行的 MCP 服务器发送基本的 JSON-RPC 请求(ListTools
、CallTool
)。
❓ 常见问题解答
-
如何安装依赖?
- 确保已安装 Python 3.12 或更高版本、Poetry 和 Node.js 20 或更高版本。
- 运行
poetry install --no-dev
安装核心依赖。 - 运行
poetry install --with dev
安装开发依赖。
-
如何生成 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
- 使用
-
如何测试生成的服务器?
- 使用
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).
安装教程
-
Navigate to Project Directory: Open your terminal in the directory containing this
openapi-to-mcp
code. -
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
- For running the tool:
-
Activate Virtual Environment (Optional but Recommended):
bash poetry shell
调试方式
-
Run the server:
bash npm start
-
Test the server:
bash poetry run openapi-to-mcp test-server --transport sse --port 8080 --list-tools
-
Use MCP Inspector for graphical testing:
- Follow the installation instructions on the MCP Inspector documentation page.
- Launch the Inspector and configure a new connection.