项目简介

这是一个基于 .NET 构建的工具,它可以读取任何符合 OpenAPI (v2/v3) 规范的 API 定义文件(无论是本地文件还是远程 URL),然后作为一个 MCP (Model Context Protocol) 服务器运行。它的核心功能是将 OpenAPI 规范中定义的各个 API endpoint 转换为 LLM (大型语言模型) 客户端可以通过 MCP 调用的“工具”。

通过这个工具,您可以快速地将现有的 RESTful API 对接到支持 MCP 的 LLM 应用中,让 LLM 能够理解并调用这些 API 来完成任务。

主要功能点

  • OpenAPI 转 MCP 工具: 自动解析 OpenAPI 规范,将每个操作 (operation) 转换为一个 MCP 工具,包括工具名称、描述和输入参数的结构定义。
  • 支持多种 OpenAPI 格式: 可以读取 JSON 或 YAML 格式的 OpenAPI 2.0 或 3.0 规范。
  • 支持本地或远程规范: 可以加载本地文件或通过 URL 获取远程的 OpenAPI 规范。
  • Stdio 传输协议: 支持通过标准输入/输出流 (Stdio) 与 MCP 客户端通信。
  • 工具调用代理: 当 LLM 调用一个工具时,本服务器会解析调用参数,构建相应的 HTTP 请求(处理路径参数、查询参数、请求体),然后调用实际的后端 API,并将 API 的响应返回给 LLM。
  • API 认证支持: 支持为调用的后端 API 提供 Bearer Token 或配置 OAuth2 认证流程(如 client_credentials, password, refresh_token)。
  • 自定义工具信息: 支持使用 OpenAPI 扩展字段(如 'x-mcp-tool-name')来自定义生成的 MCP 工具的名称、描述等信息。

安装步骤

  1. 确保您的系统安装了 .NET 6.0 或更高版本的 SDK。

  2. 打开命令行终端。

  3. 运行以下命令全局安装此工具:

    dotnet tool install --global openapi-to-mcp
  4. 或者,您可以从项目的 GitHub Release 页面下载预编译的可执行文件直接使用。

服务器配置 (为MCP客户端提供)

MCP 服务器通常不是直接手动运行的,而是由支持 MCP 的 LLM 客户端根据配置文件启动和管理。以下是您需要在 MCP 客户端配置文件中添加的典型配置示例(使用 JSON 格式,实际配置方式取决于客户端具体实现):

{
  "mcpServers": {
    // 此 MCP 服务器实例的唯一标识名称,由客户端定义
    "my-backend-api": {
      // 用于启动 MCP 服务器进程的命令行指令
      "command": "openapi-to-mcp",
      // 传递给上面 command 指令的参数列表
      "args": [
        // **必要参数:** OpenAPI 规范文件的路径或 URL。
        // 示例: "https://petstore3.swagger.io/api/v3/openapi.json"
        // 或本地文件路径: "/path/to/your/api-spec.yaml"
        "在这里填入您的OpenAPI规范路径或URL",

        // **可选参数:** 覆盖 OpenAPI 规范中定义的服务基础 URL。
        // 如果 OpenAPI 规范中的服务器 URL 是相对路径,或者您需要指向不同的环境,可以使用此选项。
        // "--host-override", "在这里填入API的基础URL,例如 https://api.example.com",

        // **可选参数:** 为所有调用的后端 API 请求设置 Bearer Token 认证头。
        // "--bearer-token", "在这里填入您的Bearer token",

        // **可选参数:** 配置 OAuth2 认证,用于获取访问后端 API 所需的 token。
        // "--oauth-2-grant-type", "这里填入OAuth2授权类型,如 client_credentials, password 或 refresh_token",
        // "--oauth-2-token-url", "这里填入OAuth2 token endpoint 的 URL (如果需要覆盖规范中的定义)",
        // "--oauth-2-client-id", "这里填入客户端ID (client_credentials 需要)",
        // "--oauth-2-client-secret", "这里填入客户端密钥 (client_credentials 需要)",
        // "--oauth-2-username", "这里填入用户名 (password 需要)",
        // "--oauth-2-password", "这里填入密码 (password 需要)",
        // "--oauth-2-refresh-token", "这里填入刷新 token (refresh_token 需要)",

        // **可选参数:** 为 MCP 服务器提供额外的文本说明,客户端(如 LLM)可能在初始化时显示。
        // "--instructions", "在这里填入服务器的简要说明"
      ]
    }
    // 您可以添加更多 MCP 服务器配置...
  }
}

基本使用方法

  1. 安装工具: 按照上面的安装步骤全局安装 'openapi-to-mcp' 工具。
  2. 配置客户端: 将上面提供的 JSON 配置示例(根据您的实际情况填写 'args' 参数)添加到您的 MCP 客户端的配置文件中。
  3. 启动客户端: 运行您的 MCP 客户端应用。客户端会根据配置自动启动 'openapi-to-mcp' 进程,并通过 Stdio 协议与它通信。
  4. LLM 调用: 一旦 MCP 服务器启动并与客户端建立连接,LLM 客户端将能够通过 MCP 的 'listTools' 方法发现 OpenAPI 规范中暴露的 API endpoints 作为可用工具。当 LLM 决定调用某个 API 功能时,它会发送一个 'callTool' 请求给 'openapi-to-mcp' 服务器,服务器将代理完成对实际后端 API 的调用并将结果返回给 LLM。

用户无需直接与 'openapi-to-mcp' 进程交互,一切都由 MCP 客户端自动处理。

信息

分类

开发者工具