ClaudeMap

Open MCP Gateway

把本地部署的 MCP server 暴露成严格对齐 OpenAPI 3.1.0 的 REST 路由,为 Open WebUI 生态而建。

MCP 服务器mcpopenapigatewayopen-webuibun

Open MCP Gateway(OMG)把多种形态的 MCP 服务节点——原生二进制 stdio、Node/Bun 脚本管道、SSE 或 HTTP 传输——聚合到按 OpenAPI 3.1.0 规范严格生成的 HTTP 路由之后:工具输入挂在 requestBody.content['application/json'].schema 下,生成的 operationId 与原工具名完全一致,没有 tool_*_post 这类命名污染。由 AsyncMutex 守护的蓝绿会话池让配置热更新不打断在途请求;生命周期自愈与热重载兜住进程崩溃与配置修改。基于 Bun 1.4 与 TypeScript 构建,可编译成无运行时依赖的单个原生可执行文件,状态遵循 XDG 分离的目录布局并支持环境变量插值,自动解析 X-Forwarded-* 头让 OpenAPI 的 servers.url 始终反映真实外部地址,外部 MCP 包用 bun 在数据目录统一管理。

它做什么

  • 一个网关覆盖全部传输:原生二进制 stdio、脚本 stdio、SSE 与 HTTP,统一做协议包裹、生命周期自愈与热重载
  • 严格的 OpenAPI 3.1.0 契约——operationId 与原工具名完全一致,工具挂在 requestBody.content['application/json'].schema 下
  • 蓝绿会话池:配置更新在 AsyncMutex 后面换会话,在途请求永不中断;config/data/state/cache 按 XDG 分离,支持 ${APP_DATA_DIR} 风格的插值
  • 单二进制部署(bun build --compile,无运行时依赖);自动解析 X-Forwarded-*,反代友好;每个服务的文档在 /<server>/openapi.json,可直接注册进 Open WebUI 管理面板

什么时候用

已经本地跑着一堆 MCP server、又想统一到 Open WebUI(或任何吃 OpenAPI 的客户端)的团队:网关指向你的 stdio/SSE/HTTP 服务一次,所有工具就都成了 REST 调用,服务本身一行不改。

如何上手

# 从源码运行(Bun 1.4+)
git clone https://github.com/TiancongLx/open-mcp-gateway.git
cd open-mcp-gateway && bun install && bun run dev

# 或编译成单个原生可执行文件
bun run build   # 产物:build/mcp-gateway

# 配置:$XDG_CONFIG_HOME/mcp-gateway/config.json5
# 外部 MCP 包:cd $XDG_DATA_HOME/mcp-gateway && bun add <pkg>

注意事项

为 Open WebUI 生态而建——任何 OpenAPI 客户端都能消费这些路由,但集成文档与端到端测试都以 Open WebUI 为准。运行时需要 Bun 1.4+(或用编译好的二进制);配置是 JSON5,注释与尾逗号在普通 JSON 工具里会出问题。社区项目,与 Open WebUI 团队无关。MIT。

代码仓库

TiancongLx/open-mcp-gateway

收录日期

地图上的相关资源

  • Blitz Strike

    MCP 服务器

    把渗透测试方法论装进一个 MCP server:BLITZ 摸清攻击面,EAGLE-EYE 追 source-to-sink,STRIKE 对每条发现先实测再上报。

    • mcp-server
    • security
    • pentest
    • methodology
  • Ripwire

    MCP 服务器

    Red Hat 出品的「AI 上下文版 ripgrep」——C++23 零依赖 CLI,同时讲 MCP。

    • mcp
    • code-context
    • cli
    • red-hat
  • Deja Vu

    MCP 服务器

    让 25+ 个编码 agent 共享同一份会话记忆——Claude Code、Codex、Cursor 终于记得同一个项目。

    • mcp
    • memory
    • cross-agent
    • context