项目简介
'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 规范。
- 交互式引导: 提供交互式命令行模式,无需记忆复杂命令参数。
安装步骤
-
克隆仓库:
git clone https://github.com/ashprabaker/openapi-to-mcp.git cd openapi-to-mcp -
安装依赖:
npm install -
构建项目:
npm run build -
全局链接 (可选): 为了更方便地在任何地方使用 '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' 字段中(如果不存在则创建)。
基本使用方法
-
运行 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' 查看帮助信息。
-
在 Claude Desktop 中连接:
- 启动 Claude Desktop 应用程序。
- 点击 Claude Desktop 界面中的 "Add Tool" (添加工具) 按钮 (通常位于侧边栏)。
- 选择 "Connect to local server" (连接到本地服务器) 选项。
- Claude Desktop 应该会自动检测到正在运行的 MCP 服务器 (如果服务器已成功启动)。
- 按照 Claude Desktop 的提示完成连接。
-
使用 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 的正常通信。
信息
分类
开发者工具