AI个人学习
和实操指南
讯飞绘镜

openapi-mcp-server:让AI直接调用开放API的MCP服务

综合介绍

openapi-mcp-server 是一个开源工具,旨在将符合 OpenAPI v3.1 标准的API转化为AI可用的资源。它由 janwilmake 维护,基于 Model Context Protocol(MCP)协议开发。项目的核心功能是充当API代理,让开发者通过 Claude Desktop 等工具直接与API交互。这个工具特别适合需要快速集成API的开发者和AI工程师。它的设计简单直接,开源在 GitHub 上,任何人都可以免费使用或贡献代码。

openapi-mcp-server:让AI直接调用开放API的MCP服务-1


 

功能列表

  • API转MCP代理:将 OpenAPI 规范的端点转为 Claude 可用的工具。
  • 支持多种格式:可以将API转换为 OpenAI、Anthropic 或 MCP 工具格式。
  • 命令行操作:提供 CLI 工具,方便程序化调用API。
  • 示例服务器:内置 Petstore API 示例,帮助用户快速上手。
  • 开源免费:代码公开,用户可自由修改和扩展。

 

使用帮助

openapi-mcp-server 不需要复杂安装,直接通过 GitHub 获取源码后运行。以下是详细步骤。

安装与运行

  1. 准备环境
    确保你的电脑安装了 Node.js 和 pnpm(推荐)。可以用命令检查:
node -v
pnpm -v

如果没有,访问 https://nodejs.org 和 https://pnpm.io 下载安装。
2. 克隆仓库
打开终端,输入:

git clone https://github.com/janwilmake/openapi-mcp-server.git
cd openapi-mcp-server
  1. 安装依赖
    在项目目录运行:
pnpm install
  1. 构建项目
    构建代码以确保正常运行:
pnpm build
  1. 链接全局命令
    让命令行工具可用:
npm link

配置 Claude Desktop

  1. 编辑配置文件
    找到 Claude Desktop 的配置文件,通常在:
  • Windows: %AppData%\Claude\claude_desktop_config.json
  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
    如果没有,创建一个新文件。
  1. 添加 MCP 服务器
    在配置文件中加入以下内容:
{
"mcpServers": {
"petstore-api": {
"command": "npx",
"args": ["openapi-mcp-server", "/path/to/petstore-openapi.json"]
}
}
}

将 /path/to/petstore-openapi.json 替换为你的 OpenAPI 文件路径,比如项目中的 examples/petstore-openapi.json
3. 启动 Claude Desktop
运行 Claude Desktop,它会自动加载此服务器。

使用 CLI 调用API

  1. 准备 OpenAPI 文件
    确保你有目标API的 OpenAPI v3.1 JSON 文件,比如 petstore-openapi.json
  2. 运行命令
    在终端输入:
npx openapi-mcp-server /path/to/your-openapi.json

这会启动一个代理服务器。
3. 测试 Petstore 示例
项目自带一个 Petstore API 示例。运行:

npx openapi-mcp-server examples/petstore-openapi.json

然后在 Claude Desktop 中与它交互,比如输入“get pet by ID”。

程序化转换API

  1. 导入模块
    在你的 Node.js 项目中,添加代码:
import { OpenAPIToMCPConverter } from 'openapi-mcp-server';
  1. 转换API
    使用以下代码将 OpenAPI 转为工具格式:
const converter = new OpenAPIToMCPConverter(openApiSpec); // openApiSpec 是你的 JSON 数据
const openAiTools = await converter.convertToOpenAITools(); // 转为 OpenAI 格式
const mcpTools = converter.convertToMCPTools(); // 转为 MCP 格式
  1. 调用API
    使用 HttpClient 执行请求:
import { HttpClient } from 'openapi-mcp-server';
const httpClient = new HttpClient({ baseUrl: 'https://api.example.com' }, openApiSpec);
const response = await httpClient.executeOperation(mcpTools.openApiLookup['getPetById'], { petId: 123 });

操作建议

  • 调试问题:如果 Claude 崩溃,检查 OpenAPI 文件是否规范,可用 https://editor.swagger.io 验证。
  • 更新代码:修改代码后,运行 pnpm build 并重启 Claude Desktop。
  • 学习示例:查看 examples/README.md,了解 Petstore 服务器的 CRUD 操作。

 

应用场景

  1. 快速API集成
    开发者想为项目添加宠物管理功能。他用 openapi-mcp-server 加载 Petstore API,在 Claude 中直接测试端点,省去手动编写代码的时间。
  2. AI辅助开发
    AI工程师需要生成API调用代码。他通过工具转换 OpenAPI 文件,用 Claude 生成完整请求代码。
  3. 教学演示
    老师用 Petstore 示例,向学生展示如何将API接入AI工具,学习API交互。

 

QA

  1. 需要付费吗?
    不需要,项目完全开源免费,托管在 GitHub 上。
  2. 支持哪些API?
    只要是 OpenAPI v3.1 规范的API都可以,比如 GitHub、Cloudflare 等。
  3. Claude 不识别怎么办?
    检查配置文件路径和 OpenAPI 文件是否正确,确保服务器已启动。
未经允许不得转载:首席AI分享圈 » openapi-mcp-server:让AI直接调用开放API的MCP服务
zh_CN简体中文