Token导航 LogoToken导航TokenDH.com
LLM MCP Gateway Rs logo
搜索检索未说明官方级别未说明来源级核验

LLM MCP Gateway Rs

MCP Server

一个兼容OpenAI Responses API的大模型网关,集成本地文档/PDF知识库和数据库MCP示例,支持工具调用循环和多种模式选择。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
API网关RustClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

eztakesin

提供方

eztakesin

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP LLM Gateway / MCP 大模型网关

OpenAI Responses API兼容网关,集成MCP服务器(本地文档/PDF KB+数据库MCP示例),并与 big-agi.com. 一个 OpenAI Responses API 兼容的网关,集成 MCP servers(本地 docs/PDF 知识库 + 数据库 MCP 示例),并兼容 big-agi.com

\*\*与提供商无关的方向 今天网关说话 OpenAI型响应API 上游(OpenAI或任何兼容的端点)。 该设计旨在将来通过适配器扩展到其他上游提供商(例如Claude)。 当前网关上游使用 OpenAI 风格的 Responses API(OpenAI 或任何兼容 endpoint)。 设计上希望未来可通过适配层扩展更多上游(例如 Claude 等)。

______________________________________________________________________

Overview / 简介

本项目是一个 OpenAI API 风格的网关(重点支持 /v1/responses),并在本地通过 stdio 拉起一个或多个 MCP Server,在需要时执行 tool loop(工具调用循环)

  • Docs/PDF 知识库 MCP(内置)docs-kb-mcp-rs(Rust),用于检索本地索引(RAG / KB)。
  • 数据库 MCP(示例):以 Oracle MCP 为例演示数据库工具链(schema 查询 + 只读 SQL),但网关本身不绑定特定数据库,未来可扩展更多 MCP server。
  • 大AGI兼容:对 Responses streaming/事件结构做了更严格的兼容(尤其 function_call 模式)
  • OpenAI API 兼容:暴露 /v1/responses/v1/models 等端点,便于 OpenAI SDK / 兼容客户端对接。
注意:目前主要面向 响应API。如果你的客户端只调用 /v1/chat/completions,需要额外适配或改用支持 Responses 的客户端。

这个项目是一个 OpenAI风格的网关 (专注于 /v1/responses).它正在孕育 通过stdio连接一个或多个MCP服务器 并运行a 刀具回路 需要时:

  • 文档/PDF KB MCP(捆绑): docs-kb-mcp-rs (Rust)用于本地索引检索(RAG/KB)。
  • 数据库MCP(示例):Oracle MCP用作示例集成(模式检查+只读SQL),但网关不与任何单个数据库绑定;稍后可以添加更多的MCP服务器。
  • 大AGI兼容:更严格的响应流/事件兼容性(尤其是 function_call 模式)。
  • 兼容OpenAI API:暴露 /v1/responses, /v1/models等,用于OpenAI SDK和兼容客户端。
注意:此回购主要针对 响应API。如果您的客户只使用 /v1/chat/completions,您将需要额外的调整或使用支持响应的客户端。

______________________________________________________________________

Features / 功能特性

  • OpenAI 风格端点:

- POST /v1/responses - GET /v1/models - GET /health

  • 三种模式(环境变量默认 + 单请求覆盖):

- 代理:尽量“原样”透传上游 Responses(流式逐事件透传) - 兼容:启用 MCP tools + tool loop(流式为 buffered 兼容输出) - 自动:根据请求特征自动选择 proxy/compat(默认)

  • MCP 集成:

- 内置 docs KB MCP(stdio) - 数据库 MCP(以 Oracle 为例;可扩展更多 MCP server)

  • 安全护栏(以数据库 run_sql_query 工具为例):

- 只允许单条 SELECT/WITH - 自动包裹 ROWNUM 如果你只运行网关 + 已存在的索引文件,可能不会直接调用 pdftotext`;但为了完整能力(重新索引 PDF),建议安装。

索引器(kb-indexer-rs)依赖于外部 pdftotext 命令(通常来自Poppler工具)从PDF中提取文本。

如果只使用现有索引运行网关,则可能不直接需要 pdftotext。仍然建议使用完整的PDF索引功能。

______________________________________________________________________

Repository Layout / 仓库结构

这是一个 Cargo workspace,包含三个 crate:

  • crates/gateway-openai:网关服务(HTTP,OpenAI Responses API 兼容 + MCP tool loop)
  • crates/docs-kb-mcp-rs:本地 docs KB MCP server(stdio)
  • crates/kb-indexer-rs:索引器(把 docs/PDF 等生成索引目录)

这是一个有三个板条箱的Cargo工作区:

  • crates/gateway-openai:网关服务器(HTTP、OpenAI响应兼容性+MCP工具循环)
  • crates/docs-kb-mcp-rs:本地文档KB MCP服务器(stdio)
  • crates/kb-indexer-rs:索引生成器(构建磁盘上的索引目录)

______________________________________________________________________

Build / 编译

Build release binaries / 构建 release 二进制

cargo build --release

二进制文件通常位于:

  • target/release/gateway-openai
  • target/release/docs-kb-mcp-rs
  • target/release/kb-indexer-rs

______________________________________________________________________

Configuration / 配置

1) 复制 .env.example / 复制 .env.example

cp .env.example .env

2) Key environment variables / 关键环境变量

完整示例请看 .env.example。这里只强调最关键的几项。
  • OPENAI_API_KEY(必填 / required)
  • INDEX_DIR(必填 / required)
  • DOCS_MCP_COMMAND(必填 / required)
  • BIND_ADDR(建议本地配合 HTTPS 反代时用 127.0.0.1:8000 /建议使用本地HTTPS代理: 127.0.0.1:8000

______________________________________________________________________

HTTPS用于大AGI(凯迪拉克+mkcert)/大AGI使用 HTTPS(Caddy+mkcert)

本章节放在 Run / 运行 前面,方便你按顺序配置。\ 本节放在前面 因此,您可以按顺序执行设置步骤。

Why HTTPS is recommended / 为什么推荐 HTTPS

当你在浏览器里使用 big-agi.com(HTTPS 页面)去访问本地网关时,现代浏览器可能会触发以下限制:

  • 从 HTTPS 页面访问本地 http://127.0.0.1:8000 可能出现混合内容/安全上下文限制
  • Private Network Access(PNA)相关的预检与限制更严格

最稳妥的做法:网关仍然跑 HTTP(绑定 BIND_ADDR=127.0.0.1:8000),再用 Caddy 在本机提供 HTTPS 入口,并用 mkcert 生成并信任自签证书

使用时 big-agi.com (HTTPS页面)调用您的本地网关,现代浏览器可能会强制执行:

  • 调用时混合内容/安全上下文限制 http://127.0.0.1:8000 来自HTTPS页面
  • 更严格的专用网络接入(PNA)飞行前规则

最可靠的方法:保持网关打开 超文本传输协议 (绑定 BIND_ADDR=127.0.0.1:8000),然后使用 卡迪 揭露当地人 超文本传输安全协议 端点,带 证书制作工具 提供可信的本地证书。

______________________________________________________________________

步骤0:确保 .env matches the proxy plan / 第 0 步:确认 .env 配置与反代一致

确保你的 .env 包含(与 .env.example 建议):

BIND_ADDR=127.0.0.1:8000
CORS_ALLOW_ORIGINS=https://app.big-agi.com
中文:CORS origin 需要允许 Big-AGI 的网页来源。\ 中文:CORS必须允许Big AGI的网络来源。

______________________________________________________________________

Step 1: Install mkcert + Caddy / 第 1 步:安装 mkcert + Caddy(macOS 示例)

brew install mkcert caddy

(可选)如果您使用Firefox并希望它信任mkcert-certs:

brew install nss

______________________________________________________________________

Step 2: Install the local CA (trust it) / 第 2 步:安装并信任本地 CA

mkcert -install
  • 中文:这一步会把 mkcert 的本地 CA 安装到 macOS Keychain 并设为受信任。
  • 中文:这会将mkcert的本地CA安装到macOS Keychain中,并将其标记为受信任。

______________________________________________________________________

Step 3: Generate certificates / 第 3 步:生成证书

从您的项目根目录:

mkdir -p certs
cd certs
mkcert localhost 127.0.0.1 ::1
cd ..

您应该得到类似于以下内容的文件:

  • certs/localhost+2.pem
  • certs/localhost+2-key.pem
提醒 / Note mkcert 的输出文件名可能随 host 数量变化;如果你想固定文件名,可使用 -cert-file / -key-file 参数自行指定。

______________________________________________________________________

Step 4: Caddy reverse proxy / 第 4 步:Caddy 反代配置

创建一个 Caddyfile 在repo根目录:

# Listen on https://localhost:8787
https://localhost:8787 {
 tls certs/localhost+2.pem certs/localhost+2-key.pem
 # Reverse proxy to the Rust gateway
 reverse_proxy 127.0.0.1:8000
}

奔跑球童:

caddy run --config Caddyfile

验证(不应要求 -k 一旦信任):

curl -s https://localhost:8787/health

______________________________________________________________________

Security note / 安全说明

  • 中文:mkcert 只适合本机/内网开发环境,不建议用于公网生产环境。
  • 中文:mkcert适用于本地/dev环境,不适用于公共生产部署。

______________________________________________________________________

Run / 运行

1) Build (if not built) / 1) 编译(若未编译)

cargo build --release

2) 准备 .env / 2) 准备 .env

cp .env.example .env

编辑 .env 并且至少设置:

  • OPENAI_API_KEY
  • INDEX_DIR
  • DOCS_MCP_COMMAND

3) Start the gateway / 3) 启动网关

./target/release/gateway-openai

然后,您可以访问:

  • GET /health
  • GET /v1/models
  • POST /v1/responses

如果您如上所述启用了Caddy HTTPS代理,则您的浏览器友好端点为:

  • https://localhost:8787 (通过Caddy)
  • 网关保持打开状态 http://127.0.0.1:8000 (内部)

______________________________________________________________________

使用大AGI(big-agi.com) / 与 Big-AGI 对接(big-agi.com

在 Big-AGI 的 provider 设置里选择 OpenAI(或兼容 OpenAI 的 provider),然后:

  • Base URL:建议填 https://localhost:8787/v1(如果你启用了 Caddy HTTPS 反代)
  • API Key:可随意填写(网关默认不校验入站 key;上游访问使用 OPENAI_API_KEY
  • Model:选择 UPSTREAM_MODELUPSTREAM_MODELS 中的一个

在Big AGI中,选择一个OpenAI(或与OpenAI兼容的)提供者并设置:

  • 基本URL:推荐 https://localhost:8787/v1 (如果使用Caddy HTTPS代理)
  • API密钥:任意值(网关默认不验证入站密钥;上游使用 OPENAI_API_KEY)
  • 型号:从中选择一个 UPSTREAM_MODEL / UPSTREAM_MODELS

______________________________________________________________________

API Behavior Notes / API 行为说明

Supported endpoints / 支持的端点

  • POST /v1/responses
  • GET /v1/models
  • GET /health

流模式(自动/代理/兼容)

您可以通过两种方式进行设置:

  1. env默认值: GATEWAY_STREAM_MODE=auto|compat|proxy
  2. 按请求覆盖:包括 gateway_stream_mode 在JSON正文中

例子:

{
  "model": "gpt-5.2",
  "input": "hello",
  "stream": true,
  "gateway_stream_mode": "compat"
}
  • 代理模式:

- 不注入MCP工具 - 执行请求分配列表+输入净化+可选的web_search限制+强制 store=true - 流式传输:按原样传递SSE事件

  • compat模式:

- 注入MCP功能工具 - 运行工具循环(提取 function_call → 调用MCP工具→ send function_call_output 逆流而上) - 流媒体:缓冲兼容性事件序列(+keepalive)

______________________________________________________________________

Database MCP safety / 数据库 MCP 安全建议(泛化)

即使网关做了工具 allowlist、SQL 过滤等限制,仍强烈建议:

  • 数据库账号使用只读权限
  • 网关与 DB MCP 部署在受控网络(内网/防火墙)
  • 如果需要暴露给更多客户端,务必在 Caddy/Nginx 侧做鉴权(Basic Auth / Token / IP allowlist)

即使使用满配列表和SQL过滤,强烈建议:

  • 使用 只读 数据库凭据
  • 在受控网络(局域网/防火墙)中部署网关+DB MCP
  • 如果暴露,则在Caddy/Nginx上强制执行身份验证(基本身份验证/令牌/IP分配列表)

目录标签

目录标签

API网关RustClaude本地部署知识库检索数据库工具链OpenAI兼容RAG

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP