OpenAPI to Model Context Protocol (MCP)

OpenAPI to Model Context Protocol (MCP)

site icon
2025.03.26 19
PythonAPI代理OpenAPI转换AI集成开发效率
OpenAPI-MCP是一个代理服务器,用于将OpenAPI规范动态转换为标准化的MCP工具、资源和提示,从而简化AI代理与外部API的集成过程。它消除了对自定义API包装器的需求,支持OAuth2认证和JSON-RPC 2.0协议。
View on GitHub

Overview

基本能力

产品定位

OpenAPI-MCP是一个桥接AI代理与外部API的代理服务器,通过动态转换OpenAPI规范为MCP工具,简化集成过程。

核心功能

  • FastMCP Transport:优化为stdio,与流行的LLM编排器开箱即用。
  • OpenAPI集成:解析并注册OpenAPI操作为可调用工具。
  • 资源注册:自动将OpenAPI组件模式转换为资源对象。
  • 提示生成:基于API操作生成上下文提示,指导LLM使用API。
  • OAuth2支持:通过客户端凭证流处理机器认证。
  • JSON-RPC 2.0支持:完全兼容的请求/响应结构。
  • 自动元数据:从OpenAPI规范中派生工具名称、摘要和模式。
  • 灵活的参数解析:支持查询字符串和多种JSON变体。

适用场景

  • AI代理需要访问外部API的场景。
  • 需要快速集成OpenAPI规范的开发环境。
  • 需要自动化API调用的LLM编排器。

工具列表

  • OpenAPI解析器:解析OpenAPI规范。
  • MCP工具生成器:生成MCP兼容的工具。
  • 资源注册器:注册资源对象。
  • 提示生成器:生成API使用提示。

常见问题解答

  • 如何配置OAuth2认证?通过设置环境变量OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETOAUTH_TOKEN_URL
  • 如何调试工具调用?使用dry_run=true参数进行干运行。

使用教程

使用依赖

  • Python 3.12

安装教程

git clone https://github.com/gujord/OpenAPI-MCP.git
cd OpenAPI-MCP
pip install -r requirements.txt

调试方式

配置LLM编排器以使用OpenAPI-MCP代理,参考以下JSON配置:

{
  "mcpServers": {
    "petstore3": {
      "command": "full_path_to_openapi_mcp/venv/bin/python",
      "args": ["full_path_to_openapi_mcp/src/server.py"],
      "env": {
        "SERVER_NAME": "petstore3",
        "OPENAPI_URL": "https://petstore3.swagger.io/api/v3/openapi.json"
      },
      "transport": "stdio"
    }
  }
}

替换full_path_to_openapi_mcp为实际安装路径。

许可证

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