适合谁
- 需要将 OpenAPI 规范描述的现有 REST API 集成到 MCP 生态系统的开发者和团队。
- 希望快速将 API 转化为 MCP 工具,并利用动态工具生成功能的场景。
mcp-openapi-proxy 是一个实用的通用代理,能够将 OpenAPI 定义的 REST API 动态转换为 MCP 工具,简化集成。它支持多种认证方式和过滤选项,提供了丰富的示例和客户端兼容性验证。不过,工具列表是动态的,无法预先枚举;某些客户端对 prompts/resources 的支持有限。总体而言,对于希望快速接入大量 REST API 的用户来说,这是一个强大的工具。
mcp-openapi-proxy 是一个 Python 包,实现了一个模型上下文协议(MCP)服务器,旨在将 OpenAPI 规范描述的 REST API 动态暴露为 MCP 工具,从而无缝地将 OpenAPI 描述的 API 集成到基于 MCP 的工作流中。支持两种模式:低层模式(默认)根据规范为每个有效端点注册工具;FastMCP 模式(简单模式)暴露预定义的工具集(list_functions 和 call_function)。它支持 OpenAPI v3(可能支持 v2),提供端点白名单过滤、多种认证方式(Authorization 头中的 Bearer、自定义 scheme、api-key 头),以及通过 JMESPath 表达式剥离负载中的 token 参数。还支持额外的 MCP 资源(如自定义用例文档)和提示(如 summarize_spec 和 whimsical_blog)。
通过 PyPI 安装:\n\n``bash\nuvx mcp-openapi-proxy\n`\n\n在 MCP 生态系统的 mcpServers 配置中引入,例如:\n\n`json\n{\n "mcpServers": {\n "mcp-openapi-proxy": {\n "command": "uvx",\n "args": ["mcp-openapi-proxy"],\n "env": {\n "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",\n "API_KEY": "${API_OPENAPI_KEY}"\n }\n }\n }\n}\n``\n\n设置环境变量 OPENAPI_SPEC_URL(必填)和其他可选变量,如 API_KEY、TOOL_WHITELIST 等。
{
"mcpServers": {
"mcp-openapi-proxy": {
"command": "uvx",
"args": [
"mcp-openapi-proxy"
],
"env": {
"OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
"API_KEY": "${API_OPENAPI_KEY}"
}
}
}
}