返回 MCP 目录
public公开dns本地运行

OpenAPI-MCP

OpenAPI-MCP是一个代理服务器,能够动态将OpenAPI规范转换为标准化的MCP工具、资源和提示,简化AI代理与外部API的集成过程。

article

README

🚀 OpenAPI 到模型上下文协议 (MCP) 代理

OpenAPI 到模型上下文协议 (MCP) 代理可将 OpenAPI 规范转换为 MCP 工具,让 AI 代理无需自定义包装器就能访问外部 API,有效解决了 AI 代理与外部 API 交互的难题。

OpenAPI-MCP

🚀 快速开始

安装依赖

pip install openapi-mcp-proxy

初始化代理

from openapi_mcp_proxy import MCPProxy

proxy = MCPProxy(openapi_spec_path="path/to/spec.yaml")

获取工具信息

tools_info = proxy.list_tools()
print(tools_info)

✨ 主要特性

  • OpenAPI 到 MCP 转换:把 OpenAPI 规范转换为模型上下文协议 (MCP),供 AI 工具链(如 Claude、GPT)使用。
  • 工具支持:自动生成的工具具备 API 请求、响应处理和参数解析功能,简化与外部系统的交互。
  • 资源管理:从 OpenAPI 组件模式生成资源对象,注册为 URI(如 /resource/{name}),方便进行结构化数据处理。
  • 提示语集成:自动生成上下文提示语,帮助 AI 理解 API 功能和使用方法,提升交互体验。
  • OAuth2 支持:集成 OAuth2 客户端凭证流程,简化身份验证逻辑,增强安全性。

📦 安装指南

安装依赖

pip install openapi-mcp-proxy

初始化代理

from openapi_mcp_proxy import MCPProxy

proxy = MCPProxy(openapi_spec_path="path/to/spec.yaml")

💻 使用示例

基础用法

from openapi_mcp_proxy import MCPProxy

# 初始化代理
proxy = MCPProxy(openapi_spec_path="path/to/spec.yaml")

# 获取工具信息
tools_info = proxy.list_tools()
print(tools_info)

📚 详细文档

环境变量配置

以下是运行 OpenAPI-MCP 代理所需的环境变量: | 属性 | 详情 | |------|------| | OPENAPI_SPEC_PATH | 字符串类型,默认值为 ./openapi.yaml,用于指定 OpenAPI 规范文件路径 | | MCP_ENDPOINT | 字符串类型,默认值为 http://localhost:8080,用于定义 MCP 代理的监听地址 | | OAUTH2_CLIENT_ID | 字符串类型,无默认值,为 OAuth2 客户端标识符(如需要身份验证) | | OAUTH2_CLIENT_SECRET | 字符串类型,无默认值,为 OAuth2 客户端密钥(如需要身份验证) |

工作原理

sequenceDiagram
    参与者 LLM 作为 LLM (Claude/GPT)
    参与者 MCP 作为 OpenAPI-MCP 代理
    参与者 API 作为 外部 API

    注释 在 LLM 和 API 之间:通信流程

    LLM->>MCP: 1. 初始化 (initialize)
    MCP-->>LLM: 元数据、工具、资源和提示语

    LLM->>MCP: 2. 请求工具列表 (tools_list)
    MCP-->>LLM: 工具的详细列表,包括资源和提示语

    LLM->>MCP: 3. 调用工具 (tools_call)

    alt 使用 OAuth2
        MCP->>API: 请求 OAuth2 令牌
        API-->>MCP: 访问令牌
    end

    MCP->>API: 4. 执行 API 调用,格式正确
    API-->>MCP: 5. API 响应(JSON 格式)

    alt 类型转换
        MCP->>MCP: 6. 将参数转换为正确的数据类型
    end

    MCP-->>LLM: 7. 格式化的响应结果

    alt 干运行模式
        LLM->>MCP: 调用 dry_run=true
        MCP-->>LLM: 显示请求信息,不执行调用
    end

资源与提示语

除了工具之外,代理服务器还自动注册了以下内容:

  • 资源:从 OpenAPI 组件模式生成的资源对象,注册为定义的 URI(如 /resource/{name}),便于结构化数据处理。
  • 提示语:根据 API 操作自动生成上下文提示语,帮助 LLM 理解 API 的功能和使用方法。

这种扩展的元数据提升了集成体验,提供了全面的 API 上下文信息。 OpenAPI-MCP

贡献指南

  1. ** Fork 该仓库。
  2. 在你的分支中创建新的功能或修复问题。
  3. 提交 Pull Request,附上清晰的更改说明。

📄 许可证

MIT License

如果你觉得这个项目对你有帮助,请在 GitHub 上给我一个 ⭐!

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端