Token导航 LogoToken导航TokenDH.com
Swagger To MCP Generator logo
开发工具未说明官方级别未说明来源级核验

Swagger To MCP Generator

MCP Server

A Java program that generates a Quarkus MCP server form an Open API Swagger file

工具数

0

提示词数

0

GitHub Stars

22

资源数

0
API转换代码生成JavaClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

LostInBrittany

提供方

LostInBrittany

最后核验

2026/5/18 02:17

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

OpenAPI到MCP生成器

该项目提供了一个强大的工具,用于自动将OpenAPI/Swagger规范转换为模型上下文协议(MCP)服务器,允许LLM通过标准化工具与任何RESTneneneba API交互。

组件

SwaggerToMcpGenerator.java

一个全面的实用程序,可以将任何OpenAPI/Swagger规范转换为功能齐全的MCP服务器:

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

从OpenAPI生成MCP服务器

要从任何OpenAPI规范生成MCP服务器:

jbang SwaggerToMcpGenerator.java path/to/swagger.json GeneratedMcpServer [options]

参数:

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

选项:

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

这将创建一个新文件 GeneratedMcpServer.java 其实现MCP服务器,该MCP服务器具有在swagger文件中定义的每个API端点的工具。如果OpenAPI规范中定义了多个服务器,并且没有明确选择任何服务器,生成器将发出警告。

运行生成的MCP服务器

要运行生成的MCP服务器:

jbang GeneratedMcpServer.java

服务器选择

生成的MCP服务器包括OpenAPI规范中定义的所有服务器的常量,允许您选择在运行时使用哪个服务器。默认情况下,使用列表中的第一个服务器,但您可以使用环境变量选择特定的服务器:

# Select server by index (0-based)
export SERVER_INDEX=1

# Or select server by URL
export SERVER_URL="https://api-example.com/v2"

jbang GeneratedMcpServer.java

认证

生成的MCP服务器通过环境变量支持多种身份验证方法:

  • API密钥:设置 API_KEYAPI_KEY_HEADER 环境变量
  • 承载令牌:设置 BEARER_TOKEN 环境变量
  • 基本认证:设置 API_USERNAMEAPI_PASSWORD 环境变量

例子:

export API_KEY="your-api-key"
export API_KEY_HEADER="X-API-Key"
jbang GeneratedMcpServer.java

例子

开放气象API

该项目包含一个Open-Meteo Weather API的示例OpenAPI规范,位于 examples/open-meteo 目录。

生成开放Meteo MCP服务器

cd examples/open-meteo
jbang ../../SwaggerToMcpGenerator.java open-meteo-openapi.yml OpenMeteoMcpServer

这将产生 OpenMeteoMcpServer.java 使用MCP工具访问天气预报数据。

运行开放Meteo MCP服务器

cd examples/open-meteo
jbang OpenMeteoMcpServer.java

使用开放式Meteo MCP服务器

生成的MCP服务器提供用于访问天气预报的工具。使用服务器时,请注意包含有效值和默认值的参数描述。例如:

  • 对于 wind_speed_unit 参数,使用 ms (不是“m/s”)表示米每秒
  • 的有效值 wind_speed_unit 是: kmh (默认), ms, mph,以及 kn
  • 对于温度单位,使用 celsius (默认)或 fahrenheit

西班牙塞维利亚天气查询示例:

latitude: 37.3891
longitude: -5.9845
current_weather: true
wind_speed_unit: ms

生成Clever Cloud MCP服务器

cd examples/clever-cloud
jbang ../../SwaggerToMcpGenerator.java clever-cloud-openapi.yml CleverCloudMcpServer --server-index 1

请注意,我们正在使用 --server-index 1 (列表中的第二个服务器),其是令牌认证所需的API桥URL。这将产生 CleverCloudMcpServer.java 使用MCP工具管理Clever Cloud资源。

或者,您可以直接指定服务器URL:

cd examples/clever-cloud
jbang ../../SwaggerToMcpGenerator.java clever-cloud-openapi.yml CleverCloudMcpServer --server-url https://api-bridge.clever-cloud.com/v2

运行Clever Cloud MCP服务器

cd examples/clever-cloud
# Set your Clever Cloud API token
export BEARER_TOKEN=your_api_token
jbang CleverCloudMcpServer.java

生成Clever Cloud API令牌

要为Clever Cloud生成API令牌,您需要使用 Clever Tools命令行界面:

# Install Clever Tools (if not already installed)
npm install -g clever-tools

# Login to Clever Cloud
clever login

# Enable the tokens feature
clever features enable tokens

# Create a token (with optional expiration)
clever tokens create "MCP Server Token"
clever tokens create "Temporary Token" --expiration 24h

您还可以列出和撤销令牌:

# List existing tokens
clever tokens -F json

# Revoke a token
clever tokens revoke api_tokens_xxx

使用Clever Cloud MCP服务器

生成的MCP服务器提供了与Clever Cloud API交互的工具。可用工具包括:

  • get_self:获取当前用户信息
  • get_summary:获取用户摘要
  • get_organisations__organisationId__applications:列出组织的应用程序
  • get_organisations__organisationId__applications__applicationId_:获取应用程序详细信息

列出组织应用程序的示例查询:

organisationId: your_organization_id

运作原理

MCP协议

模型上下文协议(MCP)是工具和LLM通信的标准化方式,允许:

  1. 将其功能暴露给任何兼容MCP的LLM的工具
  2. LLM发现和使用工具,而不受特定实现的约束
  3. 工具规范和调用的一致接口

OpenAPI到MCP的转换

发电机的工作原理如下:

  1. 解析OpenAPI规范 使用Swagger解析器
  2. 转换每个API终结点 到a @Tool 注释方法
  3. 映射参数:

- 路径参数被合并到URL中 - 查询参数被添加到URL生成器中 - 请求正文格式正确,并附加到请求中

  1. 正在生成HTTP客户端代码 通过适当的错误处理
  2. 格式化响应 基于内容类型(漂亮的打印JSON)
  3. 添加身份验证 基于环境变量

高级功能

  • 多种HTTP方法:支持GET、POST、PUT、DELETE和PATCH
  • 内容类型处理:正确处理不同的内容类型
  • 错误处理:详细的错误报告,包括状态代码和响应机构
  • 认证:支持API密钥、承载令牌和基本身份验证
  • 超时:可配置的连接、读取和写入超时
  • 多个服务器:支持从OpenAPI规范中定义的多个服务器URL中进行选择

环境说明

jbang-wrapper.sh 该脚本解决了从AI助手运行时的环境问题,例如 克劳德桌面 在Mac上,确保正确的PATH和环境变量可用。

后续步骤

  • 添加对表单数据和多部分请求的支持
  • 实现OAuth 2.0身份验证流程
  • 添加对自定义响应转换的支持
  • 创建用于上传OpenAPI规范和生成服务器的web UI
  • 添加对WebSocket端点的支持

目录标签

目录标签

API转换代码生成JavaClaudedeveloper-tools本地部署LLM工具集成RESTAPI交互自动化开发

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP