项目简介
MCP生成器2.0是一个先进的代码生成工具,能将任何OpenAPI 3.x规范自动转换为基于FastMCP 2.x框架构建的生产级MCP服务器。它实现了REST API与AI代理之间的桥接,通过自动生成的MCP工具,使AI助手(如Claude、ChatGPT)能够与您的现有API进行交互。生成的服务器支持企业级认证、模块化架构、全面的中间件,并支持Stdio和HTTP/SSE等多种传输协议。
主要功能点
- OpenAPI转MCP服务器: 将您的API的OpenAPI规范(JSON/YAML格式)自动转换为一个功能完备的MCP服务器。
- 工具生成: 从OpenAPI规范中定义的API操作自动生成可供大型语言模型(LLM)调用的MCP工具。
- 认证支持: 内置对JWT令牌验证、JWKS(JSON Web Key Set)发现和OAuth2认证流(包括客户端凭据、授权码等)的支持。
- 模块化架构: 为API规范中的每个主要API类别生成独立的服务器模块,便于管理和扩展。
- 生产就绪: 包含自动生成的测试套件、详细的日志、错误处理中间件以及SSE(Server-Sent Events)事件存储,支持生产级部署。
- 多种传输: 支持Stdio(标准输入输出)和HTTP/SSE传输协议,兼容各种MCP客户端。
安装步骤
- 克隆仓库:
git clone https://github.com/quotentiroler/mcp-generator-2.0.git cd mcp-generator-2.0 - 安装Python依赖:
# 推荐使用 uv uv sync # 或者使用 pip pip install -e . - 安装OpenAPI Generator CLI:
# 使用 npm 安装 (推荐) npm install -g @openapitools/openapi-generator-cli
服务器配置(MCP客户端连接信息)
MCP客户端(如Claude Desktop、Cursor等)需要配置MCP服务器的启动命令。以下是一个通用的MCP客户端配置示例,请根据您的实际情况替换占位符。
{ "mcpServers": { "your_api_server_name": { "command": "python", "args": [ "/path/to/generated_mcp/your_api_server_name_mcp_generated.py", "--transport", "stdio" ], "env": { "BACKEND_API_TOKEN": "您的后端API令牌(如需认证,请在此提供)" } } } }
配置参数说明:
- '"your_api_server_name"': 这是您MCP服务器的唯一标识名称,通常根据您的OpenAPI API标题自动生成(例如,'swagger_petstore_openapi')。您可以通过运行 'uv run register-mcp list' 查看注册的服务器名称。
- '"command"': 启动MCP服务器所使用的执行命令。通常为 '"python"'。
- '"args"': 传递给 'command' 的参数列表。
- '/path/to/generated_mcp/your_api_server_name_mcp_generated.py': 这是您生成的MCP服务器主脚本的完整文件路径。您需要将其替换为实际的本地路径。
- '--transport': 指定MCP服务器的传输协议。
- '"stdio"': 适用于本地AI客户端(如Claude Desktop、Cursor),通过标准输入/输出进行通信。
- '"http"': 适用于远程AI客户端,通过HTTP协议进行通信。如果选择此项,可能还需要 '--host' 和 '--port' 参数。
- '--host': (仅HTTP模式) 指定服务器绑定的IP地址,例如 '"0.0.0.0"'。
- '--port': (仅HTTP模式) 指定服务器监听的端口,例如 '"8000"'。
- '--validate-tokens': (仅HTTP模式) 如果需要MCP服务器验证JWT令牌,请添加此参数。
- '"env"': 一个字典,用于设置MCP服务器运行时的环境变量。
- '"BACKEND_API_TOKEN"': 您的后端API认证所需的Bearer令牌。在STDIO模式下,MCP服务器会将此令牌转发给您的后端API。在HTTP模式下,客户端通常直接在'Authorization'头中提供令牌。
基本使用方法
-
生成MCP服务器:
- 使用本地OpenAPI规范文件(默认 './openapi.json'):
uv run generate-mcp - 使用自定义规范文件:
uv run generate-mcp --file ./my-api-spec.yaml - 从URL下载并生成:
uv run generate-mcp --url https://petstore3.swagger.io/api/v3/openapi.json
成功生成后,您的MCP服务器代码将输出到当前目录下的 'generated_mcp/' 目录中。
- 使用本地OpenAPI规范文件(默认 './openapi.json'):
-
运行MCP服务器:
- 通过注册表运行 (推荐):
- 将生成的服务器注册到本地:
uv run register-mcp ./generated_mcp - 以STDIO模式运行(适用于本地AI客户端):
export BACKEND_API_TOKEN="您的API令牌" # Windows 用户使用: set BACKEND_API_TOKEN="您的API令牌" uv run run-mcp your_api_server_name - 以HTTP模式运行(适用于远程AI客户端):
uv run run-mcp your_api_server_name --mode http --port 8000
- 将生成的服务器注册到本地:
- 直接Python运行:
- 进入生成的MCP服务器目录:
cd generated_mcp - 以STDIO模式运行:
python your_api_server_name_mcp_generated.py --transport stdio - 以HTTP模式运行:
python your_api_server_name_mcp_generated.py --transport http --port 8000 --validate-tokens
- 进入生成的MCP服务器目录:
- 通过注册表运行 (推荐):
-
与AI客户端集成: 根据AI客户端的要求,将上述MCP服务器的启动命令和相关参数添加到客户端的配置中。例如,对于Claude Desktop,您通常需要在 '~/.claude/claude_desktop_config.json' 文件中添加相应的 'mcpServers' 配置。
信息
分类
开发者工具