OpenAPI to MCP Generator

OpenAPI to MCP Generator

site icon
2025.04.02 8
JavaAPI 转换工具开发工具开发效率
OpenAPI to MCP Generator 是一个强大的工具,用于自动将 OpenAPI/Swagger 规范转换为 Model Context Protocol (MCP) 服务器,使 LLMs 能够通过标准化工具与任何 REST API 进行交互。
View on GitHub

Overview

基本能力

产品定位

OpenAPI to MCP Generator 是一个开发工具,旨在简化将现有 REST API 转换为 MCP 服务器的过程,从而为 LLMs 提供标准化的接口。

核心功能

  • 解析 OpenAPI 规范文件
  • 将 API 端点转换为 MCP 工具
  • 处理路径参数、查询参数和请求体
  • 支持多种 HTTP 方法(GET、POST、PUT、DELETE、PATCH)
  • 提供认证支持(API 密钥、Bearer 令牌、Basic 认证)
  • 格式化 JSON 响应以提高可读性
  • 生成健壮的错误处理
  • 包含参数文档,包括有效值和默认值

适用场景

  • 为现有 REST API 快速生成 MCP 服务器
  • 使 LLMs 能够通过标准化接口与各种 API 交互
  • 开发人员希望快速测试和集成不同的 API

工具列表

  • SwaggerToMcpGenerator.java:主工具,用于将 OpenAPI 规范转换为 MCP 服务器
  • 解析 OpenAPI 规范
  • 生成包含所有 API 端点的 MCP 服务器
  • 支持多种认证方式和参数处理

常见问题解答

  • 如何选择服务器? 可以通过环境变量 SERVER_INDEXSERVER_URL 选择特定的服务器。
  • 如何设置认证? 通过设置相应的环境变量(如 API_KEYBEARER_TOKEN 等)来配置认证。
  • 如何处理多个服务器? 生成器会警告如果 OpenAPI 规范中定义了多个服务器且未明确选择。

使用教程

使用依赖

需要安装 jbang 来运行生成器和生成的 MCP 服务器。

# 安装 jbang
curl -Ls https://sh.jbang.dev | bash -s - app setup

安装教程

  1. 从 OpenAPI 规范生成 MCP 服务器:
jbang SwaggerToMcpGenerator.java path/to/swagger.json GeneratedMcpServer [options]

参数: - path/to/swagger.json:OpenAPI/Swagger 规范文件的路径 - GeneratedMcpServer:输出 Java 文件的名称(不带 .java 扩展名)

选项: - --server-index <index>:使用 OpenAPI 规范中的服务器索引(基于 0) - --server-url <url>:使用的服务器 URL(覆盖 server-index)

  1. 运行生成的 MCP 服务器:
jbang GeneratedMcpServer.java

调试方式

  1. 选择特定的服务器:
# 通过索引选择服务器(基于 0)
export SERVER_INDEX=1

# 或通过 URL 选择服务器
export SERVER_URL="https://api-example.com/v2"

jbang GeneratedMcpServer.java
  1. 设置认证:
# API 密钥
export API_KEY="your-api-key"
export API_KEY_HEADER="X-API-Key"

# Bearer 令牌
export BEARER_TOKEN="your-bearer-token"

# Basic 认证
export API_USERNAME="your-username"
export API_PASSWORD="your-password"

jbang GeneratedMcpServer.java
  1. 示例:生成和运行 Open-Meteo Weather API 的 MCP 服务器:
cd examples/open-meteo
jbang ../../SwaggerToMcpGenerator.java open-meteo-openapi.yml OpenMeteoMcpServer
jbang OpenMeteoMcpServer.java
  1. 示例:生成和运行 Clever Cloud API 的 MCP 服务器:
cd examples/clever-cloud
jbang ../../SwaggerToMcpGenerator.java clever-cloud-openapi.yml CleverCloudMcpServer --server-index 1
export BEARER_TOKEN=your_api_token
jbang CleverCloudMcpServer.java

许可证

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