项目简介

'OpenAPI to MCP Server' 是一个命令行工具,可以将任何符合 OpenAPI 规范的 API 快速转换为 MCP (Model Context Protocol) 服务器。转换后的服务器可以无缝集成到 Claude Desktop 等 MCP 客户端,让 Claude 能够直接调用 API,扩展其功能边界。无需复杂的配置和编码,只需一个命令,即可为 Claude Desktop 添加强大的 API 访问能力。

主要功能点

  • 快速集成 Claude Desktop: 通过简单的命令,即可将任何 OpenAPI API 注册到 Claude Desktop,立即扩展 Claude 的能力。
  • 自动化配置: 自动更新 Claude Desktop 的配置文件,简化配置流程。
  • 自动重启 Claude Desktop: 可选自动重启 Claude Desktop,配置更改即时生效。
  • 支持多种认证方式: 支持 API 密钥、Bearer Token 等多种 API 认证方式。
  • 跨平台: 支持 macOS, Windows, Linux 操作系统。
  • 全面兼容 OpenAPI: 支持 OpenAPI 3.0 规范。
  • 交互式引导: 提供交互式命令行模式,无需记忆复杂命令参数。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/ashprabaker/openapi-to-mcp.git
    cd openapi-to-mcp
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build
  4. 全局链接 (可选): 为了更方便地在任何地方使用 'openapi-to-mcp' 命令,您可以将其链接到全局:

    npm link

服务器配置

MCP 服务器是为 MCP 客户端(如 Claude Desktop)设计的。要将此 OpenAPI to MCP Server 集成到 Claude Desktop,您需要在 Claude Desktop 的配置中添加以下服务器信息。以下是一个配置示例 (JSON 格式),您需要根据实际情况调整 'command' 和 'args' 字段:

{
  "mcpServers": {
    "your_api_server_name": {  //  服务器名称,在 Claude Desktop 中显示,您可以自定义
      "command": "openapi-to-mcp", //  MCP 服务器的启动命令,这里假设您已全局安装 openapi-to-mcp,否则需要使用项目路径,如:/path/to/openapi-to-mcp/dist/cli/index.js
      "args": [
        "https://petstore3.swagger.io/api/v3/openapi.yaml", //  OpenAPI 规范的 URL 或本地文件路径,请替换为您要集成的 API 规范
        "--no-ui" //  重要参数,禁用 UI 元素,确保与 MCP 客户端的 JSON 通信
        //  您还可以根据需要添加其他参数,例如 API 密钥、自定义服务器名称等,具体参数请参考 "基本使用方法" 章节
      ]
    }
  }
  //  ... Claude Desktop 其他配置 ...
}

配置参数说明:

  • 'your_api_server_name': 您为该 API 服务器自定义的名称,将显示在 Claude Desktop 的工具列表中。
  • 'command': 运行 MCP 服务器的命令。如果已全局安装 'openapi-to-mcp',则直接使用 'openapi-to-mcp'。否则,需要指定 'openapi-to-mcp' 可执行文件的完整路径 (例如:'/path/to/openapi-to-mcp/dist/cli/index.js')。
  • 'args': 传递给 'command' 的命令行参数,用于配置和启动 MCP 服务器。
    • 第一个参数是 OpenAPI 规范的路径或 URL,请替换为您要集成的 API 规范文件路径或 URL。
    • '--no-ui' 参数至关重要,它禁用命令行工具的 UI 元素(如 ASCII 艺术和彩色输出),确保输出纯 JSON 格式,以便 MCP 客户端正确解析。
    • 其他可选参数,例如 '-k <API 密钥>'、'-n <服务器名称>'、'-u <API 基础 URL>' 等,可以根据您的 API 需求添加到 'args' 数组中。详细参数说明请参考下面的 "基本使用方法" 章节。

查找 Claude Desktop 配置文件:

Claude Desktop 的配置文件通常位于以下位置:

  • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
  • Linux: '~/.config/Claude/claude_desktop_config.json' 或 '~/.claude/claude_desktop_config.json'

请根据您的操作系统,找到 'claude_desktop_config.json' 文件,并将上述 JSON 配置片段添加到 'mcpServers' 字段中(如果不存在则创建)。

基本使用方法

  1. 运行 MCP 服务器: 打开终端,使用以下命令运行 'openapi-to-mcp',并指定 OpenAPI 规范的路径或 URL:

    openapi-to-mcp <OpenAPI 规范路径或 URL> --no-ui

    例如,使用 Petstore OpenAPI 规范:

    openapi-to-mcp https://petstore3.swagger.io/api/v3/openapi.yaml --no-ui

    如果 API 需要 API 密钥,可以使用 '-k' 参数指定:

    openapi-to-mcp https://your-api-spec-url.json -k your-api-key --no-ui

    更多参数选项,请参考仓库 README 文档或运行 'openapi-to-mcp --help' 查看帮助信息。

  2. 在 Claude Desktop 中连接:

    • 启动 Claude Desktop 应用程序。
    • 点击 Claude Desktop 界面中的 "Add Tool" (添加工具) 按钮 (通常位于侧边栏)。
    • 选择 "Connect to local server" (连接到本地服务器) 选项。
    • Claude Desktop 应该会自动检测到正在运行的 MCP 服务器 (如果服务器已成功启动)。
    • 按照 Claude Desktop 的提示完成连接。
  3. 使用 API 工具: 连接成功后,您将在 Claude Desktop 的工具列表中看到您添加的 API 工具 (名称为您在配置中 'your_api_server_name' 或 OpenAPI 规范中指定的名称)。现在,您可以在 Claude 中通过 '@工具名称' 的方式调用这些 API 工具,例如 '@petstore'。

常用命令参数:

  • '<OpenAPI 规范路径或 URL>': 必需参数,指定 OpenAPI 规范的本地文件路径或 URL。
  • '-k, --api-key <key>': 可选参数,API 密钥,如果您的 API 需要 API 密钥认证,请使用此参数指定。
  • '-n, --name <n>': 可选参数,自定义 MCP 服务器名称,默认为 OpenAPI 规范中的标题。
  • '-u, --base-url <url>': 可选参数,自定义 API 基础 URL,默认为 OpenAPI 规范中定义的第一个服务器 URL。
  • '-H, --header <header>': 可选参数,自定义 HTTP 请求头,格式为 "Name: Value"。
  • '--no-ui': 必需参数,禁用 UI 元素,确保输出纯 JSON 格式,以便 MCP 客户端解析。

交互式模式:

如果您不熟悉命令行参数,可以使用交互式模式进行配置,运行以下命令:

openapi-to-mcp -i --no-ui

或 (如果全局安装):

openapi-to-mcp --interactive --no-ui

按照交互式提示操作即可完成配置。

注意: 请确保在 Claude Desktop 配置文件中以及命令行启动 'openapi-to-mcp' 时都添加 '--no-ui' 参数,以保证 MCP 服务器与 Claude Desktop 的正常通信。

信息

分类

开发者工具