该项目提供了一个强大的工具,用于自动将OpenAPI/Swagger规范转换为模型上下文协议(MCP)服务器,使LLMs能够通过标准化工具与任何REST API进行交互。
一个全面的工具,可以将任何OpenAPI/Swagger规范转换为完全功能的MCP服务器:
要从任何OpenAPI规范生成MCP服务器:
jbang SwaggerToMcpGenerator.java path/to/swagger.json GeneratedMcpServer [选项]
参数:
path/to/swagger.json:指向OpenAPI/Swagger规范文件的路径GeneratedMcpServer:输出Java文件的名称(不带.java扩展名)选项:
--server-index <索引>:从OpenAPI规范中使用的服务器索引(基于0)--server-url <URL>:使用的服务器URL(覆盖server-index)这将创建一个新的文件GeneratedMcpServer.java,该文件实现了具有每个API端点工具的MCP服务器。如果在OpenAPI规范中定义了多个服务器且未明确选择,则生成器会发出警告。
要运行生成的MCP服务器:
jbang GeneratedMcpServer.java
生成的MCP服务器包括所有在OpenAPI规范中定义的服务器常量,允许您在运行时选择要使用的服务器。默认情况下使用列表中的第一个服务器,但您可以使用环境变量选择特定服务器:
# 通过索引选择服务器(基于0)
export SERVER_INDEX=1
# 或通过URL选择服务器
export SERVER_URL="https://api-example.com/v2"
jbang GeneratedMcpServer.java
生成的MCP服务器通过环境变量支持多种身份验证方法:
API_KEY和API_KEY_HEADER环境变量BEARER_TOKEN环境变量API_USERNAME和API_PASSWORD环境变量示例:
export API_KEY="your-api-key"
export API_KEY_HEADER="X-API-Key"
jbang GeneratedMcpServer.java
项目包含一个位于examples/open-meteo目录下的Open-Meteo天气API的OpenAPI规范示例。
cd examples/open-meteo
jbang ../../SwaggerToMcpGenerator.java open-meteo-openapi.yml OpenMeteoMcpServer
这将生成OpenMeteoMcpServer.java,其中包含访问天气预报数据的MCP工具。
cd examples/open-meteo
jbang OpenMeteoMMcpServer.java
生成的MCP服务器提供了访问天气预报的工具。使用服务器时,请注意参数描述,其中包括有效值和默认值。例如:
wind_speed_unit参数,使用ms(而不是“m/s”)表示每秒米数wind_speed_unit的有效值是:kmh(默认)、ms、mph和kncelsius(默认)或fahrenheit西班牙塞维利亚天气查询示例:
latitude: 37.3891
longitude: -5.9845
current_weather: true
wind_speed_unit: ms
cd examples/clever-cloud
jbang ../../SwaggerToMcpGenerator.java clever-cloud-openapi.yml CleverCloudMcpServer --server-index 1
请注意,我们使用的是--server-index 1(列表中的第二个服务器),这是需要用于令牌身份验证的API桥接URL。这将生成CleverCloudMcpServer.java,其中包含管理Clever Cloud资源的MCP工具。
或者,您可以直接指定服务器URL:
cd examples/clever-cloud
jbang ../../SwaggerToMcpGenerator.java clever-cloud-openapi.yml CleverCloudMcpServer --server-url https://api-bridge.clever-cloud.com/v2
cd examples/clever-cloud
# 设置您的Clever Cloud API令牌
export BEARER_TOKEN=your_api_token
jbang CleverCloudMcpServer.java
要为Clever Cloud生成API令牌,您需要使用Clever Tools CLI:
# 安装Clever Tools(如果尚未安装)
npm install -g clever-tools
# 登录Clever Cloud
clever login
# 启用令牌功能
clever features enable tokens
# 创建令牌(可选过期时间)
clever tokens create "MCP Server Token"
clever tokens create "临时令牌" --expiration 24h
您还可以列出和撤销令牌:
# 列出现有令牌
clever tokens -F json
# 撤销令牌
clever tokens revoke api_tokens_xxx
生成的MCP服务器提供了与Clever Cloud API交互的工具。可用工具包括:
get_self:获取当前用户信息get_summary:获取用户摘要get_organisations__organisationId__applications:列出组织的应用程序get_organisations__organisationId__applications__applicationId_:获取应用程序详细信息查询组织应用程序的示例:
organisationId: your_organization_id
模型上下文协议(MCP)是一种标准化的方式,使工具和LLMs能够通信,允许:
生成器的工作方式如下:
@Tool注解的方法jbang-wrapper.sh脚本解决了在AI助手如Claude Desktop上运行时遇到的Mac环境问题,确保正确的PATH和环境变量可用。