项目简介
openapi-mcp-generator 是一个命令行工具,它能够根据 OpenAPI 规范自动生成一个完整的、可构建的 Model Context Protocol (MCP) 服务器项目。生成的服务器使用 Stdio 传输协议,作为大型语言模型 (LLM) 和您的 API 之间的桥梁,使得 LLM 可以通过 MCP 协议调用您 API 中定义的功能。
主要功能点
- 工具自动生成: 将 OpenAPI 规范中的每个 API 操作转换为 MCP 服务器中的一个工具。
- 完整项目设置: 生成包含 'package.json', 'tsconfig.json', 'src/index.ts', '.gitignore' 等完整 Node.js 项目结构。
- TypeScript 支持: 生成的服务器项目使用 TypeScript 开发,并配置了构建为 JavaScript 的流程。
- Stdio 传输: 生成的服务器默认使用标准输入/输出 (stdio) 与 MCP 客户端进行通信。
- 运行时参数验证: 集成 Zod 库,基于 OpenAPI schema 在运行时验证工具参数。
安装步骤
- 确保已安装 Node.js v18.0.0 或更高版本。
- 使用 npm, yarn 或 pnpm 全局安装 'openapi-mcp-generator':
或npm install -g openapi-mcp-generator
或yarn global add openapi-mcp-generatorpnpm add -g openapi-mcp-generator
服务器配置
生成的 MCP 服务器需要通过 MCP 客户端启动和调用。以下是一个 MCP 客户端配置示例,用于连接到由 'openapi-mcp-generator' 生成的服务器:
{ "serverName": "my-api-mcp-server", "command": "node", "args": ["build/index.js"] }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义,与生成服务器时指定的名称保持一致。
- 'command': 启动 MCP 服务器的命令,这里假设您已经构建了项目,并使用 'node' 命令直接运行构建后的 'index.js' 文件。
- 'args': 启动命令的参数,这里指定了构建后的 'index.js' 文件的路径。
请注意:
- 上述配置中的 'serverName' 仅为示例,请根据您生成服务器时指定的名称进行修改。
- 'command' 和 'args' 需要根据您的实际部署环境和启动脚本进行调整。例如,如果您使用 'npm start' 启动服务器,则 'command' 应为 '"npm"','args' 应为 '["start"]'。
- 如果您的 API 需要身份验证,您需要手动编辑生成的 'src/index.ts' 文件,在 'CallTool' 处理程序中添加身份验证逻辑 (例如,设置 'Authorization' 请求头)。
基本使用方法
- 生成 MCP 服务器项目:
使用 'openapi-mcp-generator' 命令,指定 OpenAPI 规范文件路径和输出目录:
例如,从本地 OpenAPI 文件生成项目到 './my-api-mcp-server' 目录:openapi-mcp-generator -i <OpenAPI规范文件路径或URL> -o <输出目录路径>openapi-mcp-generator -i ./specs/my-api.yaml -o ./my-api-mcp-server - 进入生成项目目录:
cd <输出目录路径> - 安装依赖:
npm install - 构建项目:
npm run build - 启动服务器:
服务器将在标准输入/输出 (stdio) 上监听 MCP 请求。npm start
信息
分类
开发者工具