OpenAPI转MCP服务器生成器

一个将OpenAPI规范转换为功能完整的MCP服务器的Python工具,支持Docker部署、多种认证方法和SSE/IO通信协议。

  • by abutbul
  • Python
  • 本地部署
  • 28 星标
  • 更新于
在 GitHub 查看 abutbul/openapi-mcp-generator

使用说明

OpenAPI到MCP服务器生成器

一个Python工具,可以自动将OpenAPI规范转换为功能齐全的模型上下文协议(MCP)服务器。生成支持SSE/IO通信协议、身份验证和全面错误处理的Docker就绪实现。

主要特点:

  • 🔄 OpenAPI到MCP工具/资源转换
  • 🐳 Docker支持多阶段构建
  • 🔐 多种身份验证方法
  • ⚡ 异步操作和速率限制
  • 📡 SSE/IO通信协议

概述

该生成器创建了一个功能完整的MCP服务器实现,该实现将OpenAPI规范中定义的API操作公开为MCP工具和资源。生成的服务器与Docker打包在一起,便于部署,并支持SSE和IO通信协议。

特性

  • 将OpenAPI规范转换为MCP服务器
  • 具有多阶段构建的Docker就绪实现
  • 支持多种身份验证方法
  • 选择SSE或IO通信协议
  • 全面的错误处理和记录
  • 内置速率限制和安全功能
  • 异步操作实现最佳性能
  • 具有覆盖率报告的广泛测试套件

先决条件

  • Python 3.10+
  • Docker(用于运行生成的服务器)
  • uv(Python包管理器)

安装

# Clone the repository
git clone https://github.com/abutbul/openapi-mcp-generator.git
cd openapi-mcp-generator

# Install dependencies using uv
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt

用法

python generator.py openapi.yaml --output-dir ./output --api-url https://api.example.com

命令行选项

  • openapi_file:OpenAPI YAML文件的路径(必需)
  • --output-dir:生成项目的输出目录(默认:“.”)
  • --api-url:API的基本URL
  • --auth-type:身份验证类型(承载、令牌、基本)
  • --api-token:用于身份验证的API令牌
  • --api-username:基本身份验证的用户名
  • --api-password:基本身份验证密码

运行生成的服务器

生成服务器后,您可以使用Docker构建并运行它:

cd output/openapi-mcp-*
./docker.sh build
./docker.sh start --transport=sse --port=8000

Docker脚本选项

生成的 docker.sh 脚本支持以下命令:

  • build:构建Docker镜像
  • start:启动容器
    • --port=PORT:设置端口(默认值:8000)
    • --transport=TYPE:设置传输类型:“sse”或“io”(默认值:sse)
    • --log-level=LEVEL:设置日志记录级别(默认值:info)
  • stop:停止容器
  • clean:删除容器和映像
  • test:运行测试套件(待定)
  • logs:查看容器日志

文档

有关更多详细信息,请参阅:

待定

示例实现

查看我们的示例实现,了解生成器的实际应用:

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试套件
  5. 提交拉取请求

许可证

此项目在MIT许可证下获得许可-有关详细信息,请参阅(./License)文件。