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-mcpcode. -
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.