项目简介

本工具 'OpenAPI to MCP Server Generator' 旨在简化 MCP 服务器的创建过程。通过读取 OpenAPI 或 Swagger 规范文件,它可以自动生成实现了 Model Context Protocol (MCP) 的服务器代码。生成的服务器能够将 REST API 接口转换为 LLM 可以调用的工具 (Tools),从而使得 LLM 能够方便地与各种 RESTful 服务进行交互。

主要功能点

  • 自动化生成 MCP 服务器: 无需手动编写大量代码,即可将现有的 OpenAPI 规范快速转换为可用的 MCP 服务器。
  • REST API 到 MCP 工具的转换: 自动解析 OpenAPI 规范中的 API 接口,并将其转换为 MCP 服务器中的工具 (Tools),每个 API 接口对应一个工具方法。
  • 支持多种 HTTP 方法: 支持 OpenAPI 规范中常见的 GET, POST, PUT, DELETE, PATCH 等 HTTP 方法。
  • 参数处理: 自动处理 API 接口中的路径参数、查询参数和请求体,并将它们转换为工具方法的参数。
  • 认证支持: 支持 API 密钥、Bearer Token 和 Basic Auth 等多种 API 认证方式,可通过环境变量进行配置。
  • JSON 响应格式化: 自动格式化 JSON 响应,提高响应的可读性。
  • 错误处理: 提供基本的错误处理机制,当 API 调用失败时,能够返回错误信息。

安装步骤

本工具以 Java 编写,并使用 JBang 运行,无需传统 Java 项目的编译和打包过程。

  1. 安装 JBang: 如果您的机器上没有安装 JBang,请先安装 JBang。您可以参考 JBang 官网 获取安装指南。
  2. 下载 'SwaggerToMcpGenerator.java': 从仓库页面下载 'SwaggerToMcpGenerator.java' 文件到您的本地机器。
  3. 准备 OpenAPI 规范文件: 准备您想要转换为 MCP 服务器的 OpenAPI 或 Swagger 规范文件 (JSON 或 YAML 格式)。

服务器配置

生成的 MCP 服务器是一个 Java JBang 脚本,可以直接运行。MCP 客户端需要配置服务器的启动命令和参数才能连接。以下是 MCP 客户端的服务器配置示例 (JSON 格式):

{
  "serverName": "OpenAPI_MCP_Server",
  "command": "jbang",
  "args": [
    "OpenApiMcpServer.java"
  ],
  "description": "连接到基于 OpenAPI 生成的 MCP 服务器",
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,您可以自定义。
  • 'command': 启动服务器的命令,这里使用 'jbang'。
  • 'args': 启动命令的参数,这里假设您生成的 MCP 服务器 Java 文件名为 'OpenApiMcpServer.java'。请替换为您实际生成的文件名。
  • 'description': 服务器描述,用于在 MCP 客户端中显示。
  • 'transport': 传输协议,这里使用 'stdio' (标准输入输出)。

环境变量配置 (可选):

生成的 MCP 服务器支持通过环境变量进行配置,例如 API 认证信息和服务器 URL。您可以在运行服务器之前设置以下环境变量:

  • 'SERVER_URL': 指定服务器的基础 URL,会覆盖 OpenAPI 规范中定义的服务器 URL。
  • 'SERVER_INDEX': 当 OpenAPI 规范中定义了多个服务器时,可以使用此环境变量指定使用哪个服务器 (0-based 索引)。
  • 'API_KEY', 'API_KEY_HEADER': 用于 API Key 认证,需要同时设置 API Key 值和 Header 名称。
  • 'BEARER_TOKEN': 用于 Bearer Token 认证。
  • 'API_USERNAME', 'API_PASSWORD': 用于 Basic Auth 认证。

运行服务器:

在包含 'OpenApiMcpServer.java' 文件 (假设您生成的文件名为 'OpenApiMcpServer.java') 的目录下,打开终端并执行以下命令即可运行 MCP 服务器:

jbang OpenApiMcpServer.java

如果需要配置环境变量,请在运行命令之前设置,例如:

export API_KEY="your_api_key"
export API_KEY_HEADER="X-API-Key"
jbang OpenApiMcpServer.java

基本使用方法

  1. 生成 MCP 服务器代码: 使用 'SwaggerToMcpGenerator.java' 工具,输入 OpenAPI 规范文件路径和期望的服务器类名,生成 Java 代码文件。

    jbang SwaggerToMcpGenerator.java path/to/your-openapi.json YourMcpServer
  2. 运行生成的 MCP 服务器: 按照上述 “服务器配置” 和 “运行服务器” 步骤,启动生成的 MCP 服务器。

  3. 在 MCP 客户端中使用: 在您的 MCP 客户端中,配置上述 “服务器配置” 中的 JSON 信息,客户端即可连接到您生成的 MCP 服务器,并调用服务器提供的工具 (Tools) 来访问底层的 REST API。

    您可以通过 MCP 客户端提供的界面或指令,发现和调用服务器提供的工具。工具的描述和参数信息来源于 OpenAPI 规范,方便您理解工具的功能和使用方法。

示例: 如果您使用了 'examples/open-meteo' 目录下的 'open-meteo-openapi.yml' 文件生成了 'OpenMeteoMcpServer.java',并成功运行了服务器,您就可以在 MCP 客户端中找到类似 'get_forecast' 这样的工具,并根据工具的参数描述 (例如 'latitude', 'longitude', 'current_weather', 'wind_speed_unit' 等) 来调用 Open-Meteo Weather API 获取天气预报数据。

信息

分类

开发者工具