OpenAPI转MCP工具

Iris是一款动态将OpenAPI规范转换为可执行MCP工具的服务,使AI代理能够与提供OpenAPI定义的REST API进行交互。

  • by ayotycoon
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ayotycoon/openapi_to_mcp_server

使用说明

鸢尾

Iris是一个模型上下文协议(MCP)服务器,它动态地将OpenAPI规范转换为可执行的MCP工具。这允许AI代理(如Claude或Gemini)与任何提供OpenAPI定义的REST API交互。

特性

  • OpenAPI到MCP:自动从指定的URL获取OpenAPI文档,并将端点转换为MCP工具。
  • 多种服务:支持同时连接多个OpenAPI服务。
  • 柔性运输:支持HTTP(流式传输)、SSE和Stdio传输。

入门指南

先决条件

  • 紫外线 (Python包管理器)安装在您的系统上。

安装

  1. 同步依赖关系:
    uv sync
    

用法

运行服务器

服务器需要 SERVERS_COUNT 和相应 SERVERS{i}_OPENAPI_URL 设置环境变量以指向一个或多个OpenAPI JSON定义。

快速启动(开发模式)

使用示例Petstore API(定义于 pyproject.toml):

uv run dev

手动执行

您可以指定自己的OpenAPI模式:

SERVERS_COUNT=1 SERVERS0_OPENAPI_URL=https://petstore3.swagger.io/api/v3/openapi.json uv run server.py

配置

您可以使用环境变量配置服务器:

  • SERVERS_COUNT:(必填)您要连接的OpenAPI服务器的数量(例如。, 2).
  • SERVERS{i}_OPENAPI_URL:(必填)索引的OpenAPI JSON定义的URL i,从 0 (例如。, SERVERS0_OPENAPI_URL=https://api.example.com/openapi.json).
  • URL_MATCH_FOR_NON_AUTH:(可选)路径段(例如。, /auth)如果适用,这应该绕过全局身份验证标头。
  • PORT:运行服务器的端口(默认值: 8000).
  • mcp.transport:运输方式。选项: streamable-http (默认), sse, stdio.

检查工具

您可以使用MCP检查器来测试这些工具。

使用便利脚本:

uv run inspector-streamable-http

或手动:

npx @modelcontextprotocol/inspector http://localhost:8000/mcp

项目结构

  • server.py:MCP服务器的入口点。
  • src/:包括OpenAPI处理逻辑的源代码。
  • pyproject.toml:项目依赖关系和脚本。