mcp-openapi-proxy

mcp-openapi-proxy

site icon
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": {...}}}

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。