
mcp-openapi-proxy

2025.04.15
34
PythonAPI 代理OpenAPI 转换开发效率
mcp-openapi-proxy 是一个基于 Python 的 Model Context Protocol (MCP) 服务器实现,旨在通过 OpenAPI 规范动态地将 REST API 暴露为 MCP 工具,从而无缝集成到基于 MCP 的工作流中。
View on GitHub
Overview
基本能力
产品定位
mcp-openapi-proxy 是一个动态 API 代理工具,用于将 OpenAPI 规范的 REST API 转换为 MCP 工具,便于在 MCP 生态系统中使用。
核心功能
- 动态工具生成:自动从 OpenAPI 端点定义创建 MCP 工具。
- 简单模式选项:通过 FastMCP 模式提供静态配置替代方案。
- OpenAPI 规范支持:兼容 OpenAPI v3,可能支持 v2。
- 灵活的过滤:允许通过路径白名单或其他条件过滤端点。
- 负载认证:支持通过 JMESPath 表达式进行自定义认证。
- 头部认证:默认使用
Bearer
进行API_KEY
认证,可自定义。 - MCP 集成:无缝集成到 MCP 生态系统中,将 REST API 作为工具调用。
适用场景
- 将现有的 OpenAPI 规范的 REST API 集成到 MCP 工作流中。
- 快速测试和验证 API 功能。
- 在 MCP 生态系统中动态扩展工具集。
工具列表
- 动态生成的工具:根据 OpenAPI 规范自动生成的工具,如
chat_completions()
。 - FastMCP 模式工具:如
list_functions()
和call_function()
。
常见问题解答
- 如何启用 FastMCP 模式:设置环境变量
OPENAPI_SIMPLE_MODE=true
。 - 如何过滤端点:使用
TOOL_WHITELIST
环境变量指定白名单路径。 - 如何自定义认证头部:使用
API_AUTH_TYPE
环境变量覆盖默认的Bearer
。
使用教程
使用依赖
安装前需确保已安装 Python 和 uvx
工具。
安装教程
uvx mcp-openapi-proxy
MCP 生态系统集成
在 mcpServers
配置中添加以下内容:
{
"mcpServers": {
"mcp-openapi-proxy": {
"command": "uvx",
"args": ["mcp-openapi-proxy"],
"env": {
"OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
"API_KEY": "${API_OPENAPI_KEY}"
}
}
}
}
调试方式
启动服务后,可通过 JSON-RPC 消息进行测试:
{"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
预期响应:
{"jsonrpc": "2.0", "id": 0, "result": {"capabilities": {...}}}