Token导航 LogoToken导航

MCP Server · AI代理

MCP openapi bridge

一个通过读取OpenAPI规范动态暴露REST API端点作为MCP工具的模型上下文协议服务器。

stdio官方级别未说明来源级核验工具 0
API集成API转换Rust自动化Python

快速开始

作者 / 组织
digit1024
提供方
digit1024
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP openapi bridge 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

python3 test_flattening.py

客户端配置示例

{
  "mcpServers": {
    "mcp-openapi-bridge": {
      "command": "python3",
      "args": [
        "test_flattening.py"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

🚀 MCP OpenAPI变压器

一种模型上下文协议(MCP)服务器,通过读取OpenAPI规范动态地将REST API端点公开为MCP工具。

📋 特性

  • 动态工具生成:从OpenAPI规范端点自动创建MCP工具
  • 完全支持OpenAPI:解析路径、参数、请求正文和描述
  • HTTP方法支持:处理GET、POST、PUT、DELETE和PATCH操作
  • 扁平化参数:请求体属性被扁平化为顶级工具参数,以获得更好的用户体验
  • 架构引用解析:处理内联模式和 $ref 对组件模式的引用
  • 参数处理:支持路径参数、查询参数和扁平化请求正文字段
  • 错误处理:针对API调用的全面错误报告

🏗️ 建筑

┌─────────────┐
│   MCP       │
│   Client    │
└──────┬──────┘
       │ MCP Protocol
       ▼
┌─────────────────────────────┐
│  MCP OpenAPI Transformer    │
│  ┌───────────────────────┐  │
│  │  Fetch OpenAPI Spec   │  │
│  └───────────┬───────────┘  │
│              ▼              │
│  ┌───────────────────────┐  │
│  │  Generate MCP Tools   │  │
│  └───────────┬───────────┘  │
│              ▼              │
│  ┌───────────────────────┐  │
│  │  Execute API Calls    │  │
│  └───────────────────────┘  │
└──────────────┬──────────────┘
               │ HTTP Requests
               ▼
         ┌──────────┐
         │   API    │
         │  Server  │
         └──────────┘

🛠️ 配置

服务器需要两个环境变量:

  • BASE_URL:要调用的API的基本URL(例如。, https://api.example.com)
  • DOC_URL:OpenAPI规范JSON的URL(例如。, https://api.example.com/openapi.json)

🚀 用法

建筑

unset ARGV0 && cargo build --release

跑步

BASE_URL="https://api.example.com" \
DOC_URL="https://api.example.com/openapi.json" \
./target/release/mcp-openapi-transformer

公共API示例

以Petstore API为例:

BASE_URL="https://petstore3.swagger.io/api/v3" \
DOC_URL="https://petstore3.swagger.io/api/v3/openapi.json" \
./target/release/mcp-openapi-transformer

🔧 运作原理

  1. 初始化:服务器从以下位置获取并解析OpenAPI规范 DOC_URL
  2. 工具生成OpenAPI规范中的每个端点都成为MCP工具:

- 工具名称格式: {method}_{path} (例如。, get_users_id, post_orders) - 描述:摘自操作总结或描述 - 参数:由路径参数、查询参数和请求体生成

  1. 执行:当调用工具时:

- 路径参数被替换到URL中 - 查询参数已添加到请求中 - 请求正文(如果存在)以JSON格式发送 - 响应返回给MCP客户端

📝 示例工具

给定此OpenAPI端点:

{
  "paths": {
    "/users/{id}": {
      "get": {
        "summary": "Get user by ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": { "type": "string" }
          }
        ]
      }
    }
  }
}

服务器生成此MCP工具:

  • 名字: get_users_id
  • 描述:“按ID获取用户”
  • 参数:
  {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      }
    },
    "required": ["id"]
  }

🎯 参数展平

请求正文参数为 自动变平 将其转换为顶级工具参数,以获得更好的用户体验。

之前(包装)

{
  "properties": {
    "body": {
      "type": "object",
      "description": "Request body"
    }
  }
}

之后(压扁)✅

{
  "properties": {
    "name": { "type": "string" },
    "photoUrls": { "type": "array" },
    "status": { "type": "string" },
    "category": { "type": "string" }
  },
  "required": ["name", "photoUrls"]
}

益处

  • ✨ 必填字段清晰可见
  • ✨ 每个参数的类型信息
  • ✨ 更好的IDE自动补全支持
  • ✨ 改进了验证和文件编制

服务器自动执行以下操作:

  1. 解析架构引用($ref: "#/components/schemas/...")
  2. 从请求正文架构中提取所有属性
  3. 将它们添加为具有适当类型的单独参数
  4. 适当标记必填字段
  5. 在执行过程中自动重建请求正文

🧪 测试

运行参数压扁试验

使用公共Petstore API进行测试:

python3 test_flattening.py

这将:

  • ✅ 连接到Petstore API
  • ✅ 验证否 body POST端点中的参数
  • ✅ 确认参数已正确展平
  • ✅ 使用扁平化参数测试真实的API调用
  • ✅ 显示详细的测试结果

运行E2E测试

确保API正在上运行 localhost:5000那么:

python3 test.py

这将:

  • ✅ 启动MCP服务器
  • ✅ 初始化MCP会话(通过适当的握手)
  • ✅ 列出OpenAPI规范中的所有可用工具
  • ✅ 查找与用餐相关的工具
  • ✅ 调用工具从昨天开始吃饭
  • ✅ 以漂亮的格式显示结果

使用不同的API进行测试

编辑顶部的URL test.py:

BASE_URL = "http://your-api.com/v1"
DOC_URL = "http://your-api.com/openapi.json"

手动测试

手动启动服务器:

BASE_URL="http://localhost:5000/api/v1" \
DOC_URL="http://localhost:5000/api-docs.json" \
RUST_LOG="info" \
./target/release/mcp-openapi-transformer

然后通过stdin发送JSON-RPC消息:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/list"}
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_meals","arguments":{"date":"2025-11-21"}}}

🔍 日志记录

设置 RUST_LOG 用于控制日志记录的环境变量:

RUST_LOG=info BASE_URL="..." DOC_URL="..." ./target/release/mcp-openapi-transformer

水平: trace, debug, info, warn, error

📦 依赖项

  • mcp-sdk:Rust的模型上下文协议SDK
  • openapiv3:OpenAPI v3规范解析器
  • 请求:用于进行API调用的HTTP客户端
  • 东京:异步运行时
  • Serde/Serde JSON:JSON序列化
  • 无论如何:错误处理
  • 追踪:日志框架

🤝 贡献

欢迎投稿!这是一个可以扩展的起点:

  • \[\]支持身份验证(API密钥、OAuth等)
  • \[\]自定义标头配置
  • \[\]响应模式验证
  • \[\]OpenAPI v2(Swagger)支持
  • \[\]文件上传/下载支持
  • \[\]Webhook处理
  • \[\]速率限制

📄 许可证

MIT许可证-随意使用和修改!

🐛 已知限制

  • 目前仅支持JSON格式的OpenAPI v3.x规范
  • 参考分辨率($ref)有限
  • 复杂的参数模式被简化为基本类型
  • 还没有身份验证支持(如果需要,手动添加标头)

______________________________________________________________________

内置于🦀 Rust和MCP SDK

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

API转换Rust本地部署RESTAPIOpenAPIMCP协议自动化工具

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP openapi bridge

MCP World · 本页

0stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP openapi bridge 怎么安装?

公开资料给出的安装命令是 python3 test_flattening.py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP openapi bridge 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP openapi bridge 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP openapi bridge 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP openapi bridge 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP