Token导航 LogoToken导航

MCP Server · 开发工具

Openapi To

将OpenAPI/Swagger描述的HTTP API转换为MCP(Model Context Protocol)服务器的独立代理,适用于需要AI客户端通过MCP工具访问现有REST API的场景。

stdio官方来源来源级核验工具 0
API转换开发工具TypeScriptDocker

快速开始

作者 / 组织
EvilFreelancer
提供方
EvilFreelancer
运行时
Docker

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

16

仓库热度

收录来源

2 个

MCP World

选型结论

Openapi To 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

开发工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

docker run --rm -p 3100:3100 \

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

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

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

OpenAPI到MCP

独立代理,可转换任何 OpenAPI/Swagger-将HTTP API描述为 MCP(模型上下文协议) 服务器。它在启动时加载规范,通过包含/排除过滤操作,并为每个API操作注册一个MCP工具。工具调用作为对后端API的HTTP请求执行。

当你已经(或想要)一个带有OpenAPI/Swagger规范的REST API时很有用:相同的规范驱动人工智能客户端的人性化API文档和MCP工具。

运作原理

flowchart LR
  subgraph startup["Startup"]
    A[OpenAPI spec
URL or file] --> B[Load and filter
include or exclude]
    B --> C[N MCP tools
one per operation]
  end

  subgraph runtime["Runtime"]
    D[MCP client] |Streamable HTTP
POST/GET /mcp| E[openapi-to-mcp]
    E |HTTP| F[Backend API]
  end

  C -.->|registered in| E

日志记录和关联ID

服务器包括全面的日志记录,并支持请求跟踪的相关ID:

  • 关联ID:摘自 X-Correlation-ID 标头(不区分大小写)或为每个请求自动生成
  • 日志级别: DEBUG, INFO, WARN, ERROR (可通过以下方式配置 MCP_LOG_LEVEL 一个是默认值: INFO)
  • 日志格式: [correlation_id] LEVEL message 带有可选上下文数据
  • 请求跟踪:所有日志都包含用于通过系统跟踪请求的相关ID

对于E2E测试,通过 X-Correlation-ID 标头中包含您的请求,以便在所有日志中跟踪它。

  1. 加载OpenAPI规范 从 MCP_OPENAPI_SPEC (URL以开头 http:// 或 https://,或文件路径)。
  2. 收集操作 (方法+路径)。过滤器:如果 MCP_INCLUDE_ENDPOINTS 已设置,只保留那些;否则,请输入任何内容 MCP_EXCLUDE_ENDPOINTS。包含优先于排除。
  3. 对于每个操作 创建MCP工具:name= MCP_TOOL_PREFIX +路径段(例如。 api_ + messages = api_messages).路径参数包含在工具名称中(例如。 /channels/{username} 成为 channels_username).如果同一路径段被多个方法使用(例如GET和PUT on /pet/{id}),通过附加方法使工具名称唯一(例如。 pet_id_get, pet_id_put).从参数和requestBody(Zod)输入模式,handler=HTTP调用 MCP_API_BASE_URL.
  4. 加载MCP服务器指令:默认情况下使用 info.description 从OpenAPI规范。可选地,从加载自定义指令 MCP_INSTRUCTIONS_FILE 并根据以下内容与OpenAPI描述相结合 MCP_INSTRUCTIONS_MODE (默认/替换/附加/预置)。若文件加载失败,服务器将记录一条警告,并仅继续执行OpenAPI指令。

运输: 流式HTTP终结点: POST/mcp 和 GET/mcp.

环境变量(MCP_前缀)

环境变量从以下位置加载 .env 项目根目录中的文件(使用 dotenv).您还可以直接在shell环境中设置它们。看 .env.example 对于模板。

变量描述默认值
MCP_API_BASE_URLAPI请求的基本URLhttp://127.0.0.1:3000
MCP_API_BASIC_AUTHAPI请求的基本身份验证: username:password。当远程API受HTTP基本身份验证保护时使用。如果这和 MCP_API_BEARER_TOKEN 设置,使用Bearer。-
MCP_API_BEARER_TOKENAPI请求的承载令牌。当远程API期望时使用 Authorization: Bearer .优先于 MCP_API_BASIC_AUTH 当两者都设置时。-
MCP_OPENAPI_SPECOpenAPI规范源:URL(以开头 http:// 或 https://)或文件路径(例如。 http://api:3000/openapi.json 或 ./openapi.json).自动检测URL与文件。-
MCP_INCLUDE_ENDPOINTS逗号分隔 method:path (例如。 get:/messages,get:/channels).如果设置,只有这些成为工具。-
MCP_EXCLUDE_ENDPOINTS逗号分隔 method:path 排除。对于include中的终结点忽略。-
MCP_TOOL_PREFIX工具名称的前缀(例如。 api_ -> api_messages, api_channels)(空)
MCP_SERVER_NAME向MCP客户端报告的服务器名称openapi-to-mcp
MCP_PORT流式HTTP服务器的端口3100
MCP_HOST绑定主机0.0.0.0
MCP_LOG_LEVEL日志级别: DEBUG, INFO, WARN, ERROR 不区分大小写 INFO
MCP_INSTRUCTIONS_FILE自定义指令文件的路径(包含MCP服务器指令的文本文件)-
MCP_INSTRUCTIONS_MODE如何将自定义指令与OpenAPI规范描述相结合: default (仅使用OpenAPI描述,忽略自定义文件), replace (仅使用自定义文件,忽略OpenAPI), append (OpenAPI+自定义文件), prepend (自定义文件+OpenAPI)。不区分大小写default
MCP_CONVERT_HTML_TO_MARKDOWN将操作说明中的HTML标签转换为Markdown格式。设置为 false 禁用。true

MCP_OPENAPI_SPEC 必须设置。如果它以 http:// 或 https://,它被视为一个URL;否则,它将被视为文件路径。

向后兼容性: MCP_OPENAPI_SPEC_URL 和 MCP_OPENAPI_SPEC_FILE 仍受支持,但已弃用。 MCP_OPENAPI_SPEC 如果设置,则优先。

使用npm运行(本地)

  1. 复制 .env.example 到 .env 并且至少设置OpenAPI规范源和API基础URL:
   cp .env.example .env
   # Edit .env: MCP_OPENAPI_SPEC (URL or file path), MCP_API_BASE_URL
  1. 安装、构建和启动:
   npm ci
   npm run build
   npm run start
  1. 服务器正在监听 http://: (默认值 http://0.0.0.0:3100).将MCP客户端连接到 发布/获取 http://localhost:3100/mcp (流式HTTP)。

确保后端API可在访问 MCP_API_BASE_URL 并且OpenAPI规范URL(或文件)返回有效的OpenAPI 3.x JSON。

使用MCP检查器

使用以下命令测试服务器 MCP检查员:

  1. 启动MCP服务器(见上文)。
  2. 运行MCP检查器: npx @modelcontextprotocol/inspector
  3. 在检查器UI中,选择 “可流式传输http” 传输类型(非STDIO)。
  4. 输入服务器URL: http://localhost:3100/mcp
  5. 点击“连接”。

该服务器包括对基于浏览器的MCP客户端的CORS支持,并维护可流式HTTP传输的会话。

使用Docker运行

Docker Hub上的图片: evilfreelancer/openapi到mcp.使用标签 latest 或版本标签(例如。 v1.0.0).

  1. 使用env vars获取并运行(例如:来自URL的规范,主机上的API):
   docker run --rm -p 3100:3100 \
     -e MCP_OPENAPI_SPEC=http://host.docker.internal:3000/openapi.json \
     -e MCP_API_BASE_URL=http://host.docker.internal:3000 \
     evilfreelancer/openapi-to-mcp:latest

在Linux上,您可能需要 --add-host=host.docker.internal:host-gateway 或者使用主机网络。或者传递文件路径并挂载规范:

   docker run --rm -p 3100:3100 \
     -v $(pwd)/openapi.json:/app/openapi.json:ro \
     -e MCP_OPENAPI_SPEC=/app/openapi.json \
     -e MCP_API_BASE_URL=http://host.docker.internal:3000 \
     evilfreelancer/openapi-to-mcp:latest

要在本地构建映像,请执行以下操作: docker build -t openapi-to-mcp . 和使用 openapi-to-mcp 如上述命令中的图像名称。

使用Docker Compose运行

最低限度 docker-compose.yaml 包含,因此您可以运行MCP服务器,并可选择将其指向现有的API。它使用Docker Hub中的映像(evilfreelancer/openapi到mcp).

  1. 复制 .env.example 到 .env 并设置:

- MCP_OPENAPI_SPEC (URL like http://api:3000/openapi.jsonor file path like./openapi.json) - MCP_API_BASE_URL (例如。 http://api:3000 如果API在另一个容器中运行)

  1. 从项目根:
   docker compose up -d
  1. MCP服务器将在 http://localhost:3100/mcp (流式HTTP)。

要使用本地OpenAPI文件而不是URL,请设置 MCP_OPENAPI_SPEC 到文件路径并将文件装载到容器中(请参见 docker-compose.yaml 评论(如有)。

测试

npm test

测试包括:config(env vars,include/exclude,default)、OpenAPI加载器(URL和文件检测,未设置时出错)、指令加载器(文件加载和组合模式)和OpenAPI-tools(过滤、前缀、成功和错误调用API的处理程序)。HTTP被模拟(axios模拟适配器)。

Dockerfile

该项目包括 Dockerfile (Node 20 Alpine):安装deps,构建TypeScript,生产修剪,运行 node dist/index.js映像中没有开发依赖关系或测试。预构建图像发布到 .要在本地构建:

docker build -t openapi-to-mcp .

CI-Docker Hub上的Docker镜像

GitHub操作工作流(.github/workflows/docker-publish.yml)运行测试,然后构建镜像并将其推送到Docker Hub。

  • 触发器:手动(操作→ “Docker构建和推送”→ 运行工作流)或推送任何git标签。
  • 版本:在标签推送时,图像标签等于git标签(例如。 v1.0.0);在手动运行时,您可以设置版本(默认 latest).
  • 仅限Main:当被标记触发时,工作流会检查标记是否指向上的提交 main否则运行失败。

所需的存储库机密 (设置→ 秘密与变量→ 行动):

机密描述
DOCKERHUB_USERNAMEDocker Hub用户名(图像将为 DOCKERHUB_USERNAME/openapi-to-mcp)
DOCKERHUB_TOKENDocker Hub访问令牌(推荐)或密码

类似项目

  • mcp openapi代理 (Python)–MCP服务器,将OpenAPI规范中的REST API作为MCP工具公开。低级模式(每个端点一个工具)或FastMCP模式。身份验证和端点筛选。安装: uvx mcp-openapi-proxy.
  • openapi mcp代理 (TypeScript)–将OpenAPI服务转换为MCP服务器的CLI;OpenAPI和MCP客户端之间的中间件。
  • openapi mcp生成器 (TypeScript)-从OpenAPI 3.0+(stdio、SSE、Streamable HTTP)生成一个完整的MCP服务器项目,并进行Zod验证和认证。安装: npm install -g openapi-mcp-generator.
  • FastMCP+OpenAPI (Python)–FastMCP的OpenAPI集成:身份验证、路由映射、参数处理。
  • openapi mcp代码生成器 从OpenAPI到MCP服务器的代码生成器(Apache 2.0)。
  • Swagger MCP (Vizioz)–Swagger/OpenAPI的人工智能驱动MCP服务器生成;将规格存储在本地。
  • Liblab –云服务:从OpenAPI或Postman集合生成和部署MCP服务器。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

API转换TypeScript本地部署MCP协议HTTP代理开发工具AI集成

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

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

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

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

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

不太适合

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

同类对比

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

MCP World · 本页

0stdio有2 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

Openapi To 怎么安装?

公开资料给出的安装命令是 docker run --rm -p 3100:3100 \,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Openapi To 怎么在 Claude Desktop、Cursor 里配置?

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

Openapi To 收费吗?

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

Openapi To 需要 API Key 吗?

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

Openapi To 支持哪些客户端?

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

来源信息

继续浏览同类 MCP