mcpField
A
ACTIVE DEVELOPMENT - WORK IN PROGRESS

ACTIVE DEVELOPMENT - WORK IN PROGRESS

本地服务
github.com/agentic-communityAI 与智能体1.0k今天更新

关于 ACTIVE DEVELOPMENT - WORK IN PROGRESS

这是面向组织的开源 AI 资产注册表与 MCP 网关,为开发、平台和安全团队提供统一的发现、访问控制与审计。它将 MCP 服务、Agent、技能及自定义实体纳入同一治理平面。

主要功能

  1. 01统一注册 MCP 服务、Agent 与技能
  2. 02语义和词法搜索资产
  3. 03统一网关及细粒度访问控制
  4. 04OAuth 凭据代理与审计记录
  5. 05安全扫描和外部注册表联邦

适用场景

  1. 01集中管理组织中的 MCP 服务
  2. 02让 Agent 按自然语言查找工具
  3. 03接入需要 OAuth 的 SaaS MCP 服务
  4. 04审核资产并追踪访问事件

MCP 相关

该项目提供 MCP 原生接口,并通过单一认证网关注册、发现和治理 MCP 服务。客户端可通过网关访问聚合后的虚拟 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"gateway-registry": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AI 网关与注册表

统一的 Agent 与 MCP 服务注册表——AI 开发工具网关

GitHub stars GitHub forks License GitHub release

立即开始运行 | 文档 | 执行摘要 | 幻灯片 | 演示视频 | AWS 工作坊 | 社区


MCP Gateway & Registry 是一个统一的治理控制平面,管理组织中的所有 AI 资产,从 MCP 服务和 AI Agent,到技能以及团队构建的任何自定义资产。它采用 Apache 2.0 许可证开源,可运行于 Kubernetes(Amazon EKS)、全托管无服务器环境(Amazon ECS)或 Docker Compose(Amazon EC2)。

它最初是一个面向 Model Context Protocol (MCP) 的网关和注册表:通过一个安全入口访问多个 MCP 服务,并提供集中式发现与治理。随着团队开始将 Agent、技能和其他资产与服务一同注册,它逐渐发展为通用的 AI 资产注册表,并沿用最初的网关、访问控制和审计模型。

为什么要构建它

没有控制平面时,每个团队都要手动连接自己的 MCP 服务和 Agent:每个点文件中都有各自的凭据,没有共享的资产清单,没有审计记录,也无法发现或治理现有资产。Agent 无法找到其他 Agent;服务和 Agent 分别存放在无法共享策略的注册表中。

这个平台通过 为每种 AI 资产提供一个统一且受治理的入口 来解决这些问题。只需注册一次服务、Agent、技能或自定义实体,即可通过自然语言搜索发现它,并通过一个经过身份验证的网关访问它;该网关会强制执行访问控制并记录每次调用。所有资产类型共用一个控制平面、一套访问模型和一条审计记录。

没有网关时,每位开发者和 Agent 都要使用各自的凭据连接每个 MCP 服务。使用 MCP Gateway and Registry 后,每个客户端只需连接一次统一入口,由该入口授权、路由并审计对 MCP 服务、A2A Agent 和技能的调用。

以企业方式接入第三方 OAuth MCP 服务。 网关提供按用户进行的出站身份验证,因此你可以连接受 OAuth 保护的 SaaS MCP 服务,例如 Slack、Atlassian 和 GitHub,而无需每位用户分别配置这些服务的网络访问权限,或在笔记本电脑上存储凭据。每位用户只需连接一次自己的账户;网关会运行 OAuth(3LO)流程,将每位用户的令牌存入密钥管理器,并在出站时注入令牌。这样,接入流程就简化为一个可审计的统一控制点,团队无需为每台笔记本电脑单独配置网络连接,也无需分散存储长期有效的令牌,就能在整个企业中采用新的 SaaS MCP 服务。

工作原理

网关是数据平面(通用 nginx 反向代理:TLS、身份验证、路由到后端),注册中心是控制平面(负责管理资源清单、访问模型和审计跟踪的 FastAPI 服务,并决定网关可以路由到哪些目标)。身份验证服务器集成你的身份提供方(Keycloak、Entra ID、Okta、Auth0、Cognito、PingFederate),用于 OAuth2/OIDC;MongoDB / DocumentDB 用于存储配置、嵌入向量、会话和审计记录。

用户、AI Agent 和编码助手调用 nginx 网关。nginx 向身份验证服务器验证每个请求,后者将 MCP 调用代理到后端服务和 Agent,并使用每位用户各自的出口凭据。注册中心写入 nginx 配置,并在 MongoDB 或 DocumentDB 中存储资源清单、作用域和审计记录。身份验证服务器从数据库读取作用域,并通过身份提供方验证身份。

默认情况下,注册中心负责 A2A 发现、身份验证和访问控制,随后 Agent 直接(点对点)通信,而不是将每次调用都路由到网关。有关完整设计及其不变量,请阅读系统理论;分层示意图请参阅架构图。

查看实际演示

观看 MCP 服务、A2A Agent 和外部注册中心如何协同工作,实现动态工具发现:

https://github.com/user-attachments/assets/97c640db-f78b-4a6c-9662-894f975f66e2

更多演示请参阅演示视频。

根据你的身份,从这里开始……

你的身份……从这里开始
开发者从完整设置指南开始;也可以试试 macOS 设置技能,在 MacBook 上运行它。然后参阅 AI 编码助手集成指南,连接你的 AI 编码助手。有关编程方式的访问,请参阅 OpenAPI 规范、Python 注册客户端(registry_client.py)和 CLI([registry_management.py](api/registry_management.py))。
平台 / 安全 / 运维团队请参阅 Amazon EKS(Helm)、Amazon ECS(Terraform)和 Docker Compose部署指南;身份验证指南;配置参考;以及访问控制与作用域。
正在评估是否采用的决策者阅读执行摘要,观看演示视频,并试试 AWS Workshop。

快速开始

最快的方法是使用预构建的 Docker 镜像。克隆仓库、设置几个密钥,然后运行:

git clone https://github.com/agentic-community/mcp-gateway-registry.git
cd mcp-gateway-registry
cp .env.example .env

# Edit .env and set the required secrets (e.g. KEYCLOAK_ADMIN_PASSWORD, SECRET_KEY).
# See docs/configuration.md for the full list.
nano .env

# Deploy with pre-built images (pulled from Amazon ECR Public by default)
./build_and_run.sh --prebuilt

# Open the Registry UI (served by nginx on port 80)
open http://localhost        # macOS  (Linux: xdg-open http://localhost)

完整安装指南提供了 Amazon EC2 的完整操作流程(前置条件、MongoDB 和 Keycloak 初始化、创建首个用户和服务账号、注册服务,以及测试网关)。

要部署到其他环境?

包含内容

该注册表包含四种内置资产类型,以及由管理员定义的自定义资产类型,所有内容都由同一控制平面管理:

  • MCP 服务:注册、发现并管理对 MCP 服务的访问,这些服务由一个经过身份验证的网关统一接入。
  • Agent(A2A):注册 Agent,并让它们根据能力相互发现;默认情况下,Agent 之间的通信采用点对点方式。
  • 技能:注册、管理版本并发现可复用的 SKILL.md 技能,注册时还会进行安全扫描。
  • 自定义实体:管理员可定义由架构驱动的自定义实体类型(n8n 工作流、策略、提示词模板、模型卡等);请参阅自定义实体类型。

所有类型均支持语义 + 词法搜索、UI、REST 和 MCP 原生接口,并采用统一的治理方式。以下是值得关注的主要功能:

  • 将其用作适用于任何 HTTP 服务的 AI 网关:在模型推理(OpenAI、Amazon Bedrock,以及任何兼容 OpenAI 的端点)、MCP 服务、A2A Agent 和任何通用 REST 端点前提供一个经过身份验证的统一入口。调用方持有网关令牌;后端 URL 及其凭证保存在注册表中,静态加密,并在出口时注入;每个实体均支持流式传输,并与其他所有内容一样适用相同的范围、审计和速率限制。默认关闭。设计 · 常见问题:OpenAI 和 Bedrock
  • 单一身份验证网关:一个统一入口;通过你现有的 IdP(Keycloak、Entra ID、Okta、Auth0、Cognito、PingFederate)进行 OAuth 身份验证,并支持细粒度范围。
  • 动态工具发现:Agent 和编码助手可在运行时通过自然语言语义搜索查找工具,无需硬编码配置。
  • 虚拟 MCP 服务:将多个后端的工具聚合到一个端点后,并提供按工具设置的访问控制。
  • 按用户进行出口身份验证(3LO / OBO / PAT):网关代理第三方 SaaS 凭证,因此令牌不会保存在用户的笔记本电脑上。
  • 安全扫描 + 默认拒绝准入门:每个注册的服务、Agent 和技能都会经过扫描;不安全的项目将暂扣以供审核。
  • 外部注册表联邦:接入 Anthropic 的 MCP Registry、AWS Agent Registry 和对等注册表,构建统一界面。
  • 审计日志:完整且可追溯的访问和管理事件审计记录,并对凭证进行遮蔽,以满足合规要求并用于事件审查。
  • 可观测性:OpenTelemetry 指标和内置的运行状况监控。

最新动态

  • 无需 LiteLLM 的嵌入、额外请求标头,以及会被编入索引的长条目 - 远程嵌入不再通过 LiteLLM:注册表用自有的约 500 行代码调用 OpenAI 和任何 OpenAI 兼容端点、Azure OpenAI,以及 Amazon Bedrock 上的 Amazon Titan 和 Cohere,并发送相同的请求,以确保已存储的向量仍然有效;若启动时发现无法提供服务的模型名称,就会立即拒绝启动,而不是等到首次调用时才报错。运维人员最多可为每个嵌入请求添加五个标头,以访问位于 API 网关之后的端点,并可设置请求超时时间和重试次数。条目文本超出模型可接受的长度时(通常是拥有众多工具的服务),过去会被排除在语义搜索之外;现在注册表会在嵌入失败后重试一次,缩短最长的工具描述,同时保留所有名称。若 Entra 部署中的令牌未包含组成员资格信息,现在会从 Microsoft Graph 恢复这些信息。我们构建的每个镜像也都会移除两份于 2026-10-20 被判定为不可信的根 CA。请参阅嵌入和 1.34.0 发行说明,其中列出了现在会导致启动失败的三种模型名称形式。
  • 虚拟服务的凭据代理与根端点路由 - 虚拟 MCP 服务现在可以代理需要按用户提供凭据的后端服务:后端请求会经过与直接调用相同的凭据签发和注入步骤,并以解析后的后端路径为键,因此,一个虚拟服务可以代理凭据模式不同的两个后端服务,并分别为它们签发凭据。调用方必须同时拥有虚拟服务和后端服务的授权,且授权会针对重写后的确切请求进行检查;调用方自己的网关令牌绝不会转发给由注册者控制的后端。此项改动还让虚拟服务可以代理无状态的 Streamable HTTP 后端。此外,使用 append_mcp_path: false 注册的服务现在可以通过其公布的裸路径访问,而不再只能通过尾部带斜杠的路径访问;MCP 客户端不会跟随重定向到这种路径。1.33.0 发行说明
  • 无直接互联网访问的网络支持通过转发代理出站 - 如果注册表唯一的出站路径是企业转发代理,它就无法访问任何外部 MCP 服务;在 1.31.0 中,甚至无法完成浏览器登录。这两个问题源自同一原因:httpx 只会在自己的默认传输中启用环境代理支持,而受 SSRF 防护的客户端和池化登录客户端各自提供了自定义传输,因此 HTTP_PROXY 和 HTTPS_PROXY 会被静默忽略。现在,EGRESS_FORWARD_PROXY_ENABLED=true 会通过已配置的代理路由这两类请求,具体是否使用代理由 DNS 分类决定,而不是由运维人员维护的列表决定:只有当目标解析出的所有地址都是公网地址时,才会通过代理;因此,集群内服务无需配置就能保留 IP 固定。解析和分类仍会在任何 CONNECT 之前完整执行,因此针对云凭据、元数据、链路本地、保留地址和组播地址的拒绝规则仍会生效;携带密钥的请求只接受 https,确保凭据在隧道内传输。我们明确说明了代价,而非加以掩饰:对于通过代理的公网目标,会放弃 IP 重新绑定固定,因为 CONNECT 隧道会从请求 URL 获取 TLS 主机名。若代理会拦截 TLS,EGRESS_FORWARD_PROXY_CA_BUNDLE 可加载 CA 包;它会在默认根证书之上追加,而不是替换默认根证书。启用此标志时,如果 NO_PROXY 未排除云凭据端点,服务将拒绝启动,因为 HTTP_PROXY 也会重新指定 AWS SDK 的代理。默认关闭。1.32.0 发行说明 · 常见问题:配置转发代理 · 运维指南
  • 后端身份、工具级安全,以及更快的热路径 - 接入一个在响应 initialize 之前就要求 OAuth 的 MCP 服务,不再意味着要在记录中存放静态 bearer 令牌,让它同时用于健康检查、工具发现和安全扫描,且无法限定其仅用于发现。这些都是没有用户参与的无头调用,因此注册表此前没有其他凭据可用。一个解析器会从三个层级中最多选取一种凭据:机器的 client_credentials 授权、由所有者一次性同意且由注册表从保险库中借用的按用户 OAuth 2.1 身份,或适用于 obo_exchange 服务的网关仅应用令牌。个人自己的凭据和借用的身份共享同一主体、提供方和服务,因此 purpose 会成为保险库地址的一部分,编码器也会将其绑定到 AEAD 中,即使攻击者拥有写入权限,也能将两者区分开来。借用的身份只会列出工具,不会调用工具:tools/call 永远不会到达注册表的 Python 代码,因为 nginx 会使用调用方自己的标头代理该请求。现在,被扫描器标记的工具会单独携带封禁状态,因此一次误报不再会影响该服务上的其他工具。封禁优先于管理员授权和通配符授权;重新扫描时会进行同步,因此过时的封禁可以清除,并且该工具会从所有读取视图中隐藏。搜索现在会对相关性评分,而不再一律返回 1.0;应用内延迟从 641ms 降至 86ms。出站调用会复用以通过 SSRF 验证的 IP 为键的池化 HTTP 客户端,确保连接池不会削弱重新绑定防护。1.31.0 发行说明 · 身份验证 · OBO 令牌交换
  • 适用于任何资源的网关 — 一个 AI 网关,支持推理、MCP、A2A 和 REST - 网关现在可以代理任何 HTTP 后端,而不仅限于 MCP 服务,因此,一个经过身份验证的入口即可覆盖四类流量:模型推理(OpenAI、Amazon Bedrock 或任何 OpenAI 兼容端点)、MCP 服务、A2A Agent,以及注册为自定义实体的任意通用 REST 端点。调用方持有一个网关令牌,即可通过注册表 URL 访问所有资源;后端 URL 及其凭据保留在注册表中,并在静态存储时加密、出站时注入,因此提供方密钥不会落到笔记本电脑上。对于每条记录,各调用方都使用自己的密钥(调用方透传);这是默认设置,也是请求背后有真人用户时的正确选择:提供方会将每位用户视为独立客户端,因此配额和账单都能归属到对应用户。也可以选择共享的运维人员密钥,适用于没有终端用户可供归属的服务到服务流量。每个实体的响应流式传输会逐步传递 SSE 和 AWS event-stream 响应体,并设有并发数、字节数和持续时间上限;每次调用都经过与注册表其余部分相同的权限范围、审计跟踪和速率限制——旧式 methods: ["all"] 授权不会允许任何 HTTP 动词,因此不会意外扩大访问权限。默认关闭(GATEWAY_GENERIC_PROXY_ENABLED=false),需按实体选择启用,且无需迁移架构。设计文档 · 运维指南 · 常见问题:通过网关调用 OpenAI 或 Bedrock · 常见问题:升级会带来哪些变化 更早的亮点 → 功能与发行亮点 · 各版本的完整详情请参阅发行说明和 GitHub Releases 页面。

路线图

路线图最好通过 GitHub 里程碑页面跟踪。面向用户的出站身份验证(3LO 和 OBO)以及 A2A 流量路由已在 1.27.0 中发布,适用于任何 HTTP 资源的网关已在 1.30.0 中发布,后端 OAuth 身份以及按工具阻止访问已在 1.31.0 中发布。总体而言,我们接下来正在开发的主要功能包括:

  • 适用于 OBO 的 Keycloak RFC 8693 令牌交换(1.32.0):为 Keycloak 部署提供基于标准的代表用户交换。由于 Keycloak 通过服务器端映射器而非请求作用域绑定令牌受众,目前无法使用 OBO 出站路径或后端发现功能。
  • 面向编码助手的客户端 ID 元数据文档:截至 1.31.0,注册表已发布自己的 CIMD,目前默认禁用。下一步是支持身份提供商侧,让助手无需预先注册客户端 ID,即可尽可能轻松地连接不同提供商。
  • 注册表 Copilot:内嵌聊天和 Agent 构建体验,方便用户在注册表中发现资源并组合 Agent。进度见 #744;尚未安排到具体版本。

有功能请求?请提交 GitHub 问题,我们以开源方式开发。

文档

完整文档请访问文档网站,所有指南也都位于 docs/ 文件夹中。遇到问题或有疑问?请先查看 FAQ / 故障排除指南:其中涵盖最常见的设置、身份验证、部署和注册问题。

各类受众常用页面:

快速入门

平台与安全

架构与开发

设计决策

遥测

注册表会收集匿名、非敏感的使用遥测数据(版本、操作系统、云提供商、资源总数),以了解使用情况。遥测默认启用,可选择退出;不会发送任何个人身份信息、凭据、端点或模型名称。设置 MCP_TELEMETRY_DISABLED=1 即可禁用所有遥测。完整的架构和隐私保障说明请参阅:遥测文档。

社区

Star 历史

Stars Forks Contributors

在 star-history.com 查看完整的交互式 Star 增长图表。

许可证

本项目采用 Apache-2.0 许可证。详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。