agentic-community MCP Gateway & Registry:AI asset control plane
agentic-community MCP Gateway & Registry:AI asset control plane
一句话结论
1.32.0/1.32.1 代理出站补证(2026-10-12): 固定发布说明、PR和FAQ揭示自定义transport下环境代理失效、代理重新解析使公网目标失去本机连接IP pin、HTTP代理×CA bundle组合缺口;发现/登录/调用及registry/auth-server均需独立验收,详见 mcp-gateway-132-forward-proxy-trust-boundaries。这是外部项目补读,非用户实例验证。
1.31.0 补证(2026-10-04): 新增无人发现凭据和逐工具屏蔽机制时,重点不是功能表,而是机器/借用人/应用凭据不得跨主体降级,以及 vault purpose 绑定 discovery 与 runtime egress。OBO audience/scope 必须在真正 write/vend 而非只在 model validator 检查。固定版证据、有效开关、明文兼容边界与测试范围集中见 mcp-gateway-discovery-purpose-and-live-vend-131;本页旧 1.30 路由结论不自动覆盖 1.31 默认配置或用户本机。
当前机制重点(2026-09-21):A2A原生与generic代理须分验。 /agent/ 的Card origin、RPC子路径、双凭据和SSE不自动适用于/gateway/a2a_agent/;授权成功不等于hop成功,更不等于stream完成。联邦目录不自动变成本地可执行路由;disabled/capacity和auth_unavailable/egress_blocked/upstream_error应分别告警。下文“逐路由验收”给出固定源码/测试证据与撤销窗口;未运行网关E2E。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
agentic-community 的 MCP Gateway & Registry 是一个把 MCP servers、A2A agents、skills 和 custom entities 放到同一治理面的开源项目:nginx gateway 做数据面,FastAPI registry 做控制面,auth server 接 OIDC/OAuth2,MongoDB/DocumentDB 保存配置、搜索、session 与审计。它的价值不是“又一个 MCP 网关”,而是把 AI asset catalog、语义发现、细粒度授权、A2A 反向代理、per-user egress credential、registration gate、安全扫描、rate limit/quarantine、audit 与 OTel/Prometheus observability 组合成可运营的 agent platform 控制面。^[raw/articles/agentic-community-mcp-gateway-registry-ai-asset-control-plane-2026-09-08.md]
初次入库未本地部署或审代码,2026-09-21 补读固定源码与测试断言,但仍未运行网关 E2E,因此不把实现质量标为 high。GitHub 2026-09-21 API 显示 934 stars;热度只作发现信号,不作为工程质量证据。新增机制细节见下节,旧功能概述不能替代各路由的有效配置。^[raw/articles/agentic-community-mcp-gateway-registry-ai-asset-control-plane-2026-09-08.md] ^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
命中的知识点轴
- MCP Gateway / federation control plane:统一登记 MCP server、agent、skill、custom entity;支持外部 registry federation;gateway/registry 分离。
- A2A / Agent Card / Agent Discovery:A2A agent 注册、discover、semantic search,并提供 registry-only 与 reverse-proxy 两种通信模式。
- harness-runtime:把 discovery、scopes、gateway routing、rate limiting、quarantine、audit、OTel metric 变成 runtime substrate。
- context management:工具、Agent Card、skill、custom entity 是 agent 可消费上下文;发现时按权限过滤,不把全量目录暴露给所有 agent。
- sandbox-security:per-user egress token vault、fail-closed SSRF/egress guard、registration gate、安全扫描、durable audit 与 kill switch 降低工具/agent 供应链风险。
- benchmark-evaluation:项目不是 benchmark,但它提供了可评测控制点:discover/list/invoke 是否按 scope 生效、A2A card rewrite 是否正确、audit 是否 durable、rate-limit/quarantine metric 是否可观测。
为什么对用户重要
用户的 Hermes / llm-wiki 已经在持续积累 tools、skills、MCP/A2A 概念、cron 和外部 agent 工作流。真正风险不是“有没有更多工具”,而是这些能力如何被发现、授权、挂载、调用、审计和下线。这个项目提供了一个可迁移的控制面蓝图:把能力当成 AI asset,而不是把 MCP server、A2A agent、skill、prompt template 分散在不同配置文件里。
对 Hermes 来说,最值得借鉴的是四个 receipt:1)asset registration receipt:谁注册、schema/card hash、扫描结果、生命周期状态;2)discovery receipt:某个 agent 在某个 scope 下看到了哪些资产;3)credential receipt:ingress token 与 egress token/target agent credential 不混用;4)runtime receipt:invoke/rate-limit/quarantine/audit/trace 可以回放。缺少这些 receipt 的 agentic workflow 很容易在“工具可用”与“工具可信”之间失焦。
机制 / 一阶原理
1. AI asset catalog 是 context,也是 control plane
README 和 AWS Open Source Blog 都把 MCP servers、A2A agents、skills、custom entities 放在一个 catalog 里;custom entities 可以覆盖 workflows、policies、prompt templates、models、n8n workflows 等组织资产。这个 catalog 不是只给人看的资产目录,而是 agent discovery 的输入。因而 catalog 中每条记录都需要 schema、owner、risk tier、auth、scope、scan/audit 状态,否则它会变成 prompt injection 与能力漂移的供应链入口。
2. A2A 有两种数据面:registry-only 与 reverse-proxy
A2A 文档明确区分两种模式:registry-only 下,registry 负责注册、发现、访问控制,agent 间随后直连;reverse-proxy 模式下,gateway 进入数据路径,/agent/{path} 同时代理 Agent Card fetch 与 JSON-RPC call,真实 backend 保存在 proxy_pass_url 且对非管理员读 redacted。调用方需要 invoke_agent grant,gateway token 放在 X-Authorization 并在 egress 前剥离,目标 agent 的 credential 放在 Authorization 原样转发。这补上了 A2A-Agent2Agent-Protocol 当前最需要的企业实践证据:Agent Card discovery 不等于安全委托,是否让 gateway 进入数据面是一个 explicit operating-mode decision。
3. Credential boundary 要区分 ingress、egress、target-agent credential
egress auth 文档把第三方 SaaS MCP 的 OAuth token 存在 vault 中,按 user/provider/server/path 等 key 绑定,并在每次工具调用时由 gateway/auth-server 向上游注入,coding assistant 只持有 ingress token。A2A reverse-proxy 又进一步区分 gateway credential 与目标 agent credential。这个机制与 MCP-Gateway-Runtime 的核心一致:凭据应由 runtime/gateway 按目的地与主体注入,不应裸露给 agent 上下文。
4. Admission、audit、metrics、quarantine 构成运维闭环
registration gate 在资产持久化前做同步 admission control;scan_complete webhook 报告异步安全扫描;audit logging 默认要求 durable sink,缺失时拒绝启动;rate limiting 支持 caller/target/caller-target 轴,并可把 user、agent、MCP server 或 A2A agent 放入 quarantine kill switch;observability 用 OTel/Prometheus 暴露 registry/auth/tool execution、target_kind、rate-limit/quarantine、peer sync 等指标。组合起来看,gateway 的价值不是“代理请求”,而是让 agent 能力变成可审计、可限流、可撤销、可告警的运行时对象。
和已有 wiki 概念的关系
| - 相比 [[ibm-contextforge-mcp-federation-control-plane | IBM ContextForge]],本页更强调 AI asset catalog、A2A reverse-proxy、per-user egress credential 与企业 identity/federation/deployment 的组合;ContextForge 更像协议联邦与路由平台。 |
| - 相比 [[toolhive-enterprise-mcp-runtime | ToolHive]],本页从企业 registry/gateway 进一步覆盖 A2A agent、skills、custom entities 和 AgentCore/ASOR federation。 |
| - 相比 [[a2a-samples-agent-card-discovery-interoperability | A2A Samples]],本页不只是演示跨框架调用,而是说明 Agent Card 进入企业 gateway 后如何被 scope、proxy、auth 和 audit 控制。 |
- 对 Context-Engineering 来说,asset catalog 的 selective disclosure 是高价值上下文治理:agent 看到什么能力,本身就是一项可审计决策。
- 对 Agent-Benchmarks 来说,后续评测 agent platform 时应记录 gateway/registry 版本、scope、card/tool hash、audit sink、rate-limit/quarantine 和 trace backend,而不是只报最终任务成功率。
对 Hermes / llm-wiki 的可执行启发
- 把 Hermes tools/skills/agents 统一成轻量 AI asset registry。 最小字段:asset_type、path/id、owner、source_url、schema_or_card_hash、risk_tier、allowed_jobs、credential_profile、last_verified_at、audit_path。
- 高风险能力默认走 gateway/permission profile。 数据库、SSH、文件发布、飞书/企微、浏览器、支付/招聘等工具不应被所有 cron 继承;应按 job identity 暴露最小可用资产。
- A2A 委托前先记录 operating mode。 远端 agent 是直连还是 gateway-proxied?Agent Card 是否重写?target credential 是否由用户另行授权?这些必须进入 task receipt。
- registration gate 比事后 lint 更靠前。 外部 skill、MCP server、Agent Card 入库前应做同步 admission:来源、hash、权限、scan verdict、是否允许无人调用。
- 把 quarantine 当成日常运维 primitive。 当某个工具/agent 发生错误或风险升高时,应该能按 asset_id 立即从无人 loop 的能力面下线,而不是只修改 prompt。
失败模式 / 边界条件
- Registry federation 会合并多个组织/供应商的 blast radius;如果 federation source、Agent Card 或 custom entity schema 被污染,gateway 会把污染扩大成统一上下文。
- A2A reverse-proxy 保护的是可见 URL、invoke gate 和 gateway token 剥离;它并不自动验证目标 agent 的自然语言结果是否真实,仍需 artifact/verifier receipt。
- Per-user egress credential 需要严格绑定目的地、provider 和 server path;否则 registry 记录被 repoint 后可能把用户 token 发给攻击者控制的 endpoint。
- Durable audit fail-closed 很好,但运行时 audit write failure 仍可能出现 dropped records;需要告警、retry/dead-letter 和外部 append-only store 才能接近合规级证据。
- 未运行 Helm/ECS/Compose 或认证/流式/撤销 E2E;2026-09-21 已补读选定源码及测试,但静态证据不提升为生产验证,因此
confidence: medium。
候选评分
| 维度 | 分数 | 理由 |
| relevance | 5/5 | 直接命中 MCP Gateway、A2A、harness-runtime、context、security 多轴。 |
| novelty | 4/5 | wiki 已有 ContextForge/ToolHive/Gate22,但本项目补上 AI asset catalog + A2A reverse-proxy + egress credential + quarantine 的完整组合。 |
| durability | 5/5 | 企业 agent 平台长期都需要 asset registry、selective disclosure、credential boundary 和 audit。 |
| actionability | 5/5 | 可迁移为 Hermes tool/skill/agent registry、risk tier、registration gate、quarantine 与 task receipt 字段。 |
| source-quality | 4/5 | 读取了上游 GitHub raw docs 与 AWS Open Source Blog;未本地运行,故不设 high。 |
| depth-potential | 5/5 | 能深化 MCP/A2A/control-plane/security/context 的共同边界。 |
深度判断
晋升为正式 source page,因为它满足“最高优先级 MCP Gateway / federation control plane”和“A2A 实践案例”的深度门槛:不是单纯新闻或单工具介绍,而是给出 control plane、data plane、Agent Card discovery/proxy、credential boundary、security gate、audit/OTel/quarantine 的可迁移工程机制。它同时提醒 llm-wiki:后续 gateway 类候选不能只问“是否支持 MCP/A2A”,要问是否能形成 asset-control-plane receipt。
逐路由验收:A2A 凭据边界与调用结果(2026-09-21)
命中轴:MCP Gateway / A2A / harness-runtime / sandbox-security;benchmark-evaluation 是验收设计关联,不是项目跑分。 本轮固定 ce931c4036b1d31fdee90442d08c73abbfbc8814 的 nginx 路由生成代码、generic-proxy 设计/运维文档和 vend/outcome 测试。release 1.30.0 发布于 2026-09-09,本次 current-main 快照不能整体归为该 release 的已发布能力。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
同一个 registry,不代表同一种 A2A 路由
- 原生
/agent/{path}/:代码从 backend 的 origin 取/.well-known/agent-card.json,而 JSON-RPC 可以位于 backend 子路径;两者错拼会出现健康检查正常、Card 路由 404。Card endpoint rewrite 令后续调用回到 gateway,SSE 路由单独关闭 buffering 并延长 timeout。 - 入口凭据和目标凭据分开:该原生路径的
X-Authorization用于 gateway 验证,向 backend 清空它及 Cookie;目标Authorization保留作端到端鉴权。不能把 generic hop 的凭据规则推到这一路径,也不能将本地 token 被复制到两个 header 的情况当安全透传;代码注释将拒绝重复 token 的责任放在/validate。 - 新增 generic
/gateway/a2a_agent/...:运维文档给出额外代理入口,但当前 agent API 不接收proxy_streaming与custom_headers;其示例 Card 路径还使用agent.json。原生路线的 streaming、Card rewrite、header 隔离不能因“同为 A2A”自动外推到 generic 路线,更不能据此声称 A2A v1 所有 binding 已支持。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
联邦目录不应自动变成本地可执行路由
generic hop 将 entity type/path、upstream URL、streaming 放入独立 audience 的签名内部 token,不信任客户端伪造的目标头;注册/渲染/连接时分别校验目标,连接层 pin IP。联邦同步导入/导出剥离代理字段,render 再跳过 federated 记录:这是把“对端宣告能力”与“本地授权出站”分开。MCP 的 methods:[""] 也不应默认获得 HTTP 写权限;generic 层使用显式动词或独立的 http:,防止跨协议通配符扩大权限。上述为固定设计/测试证据,非本地攻击实测。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
授权通过不等于调用成功
mcpgw_registry_auth_request_total{success="true"} 只表示 /validate 放行;后续凭据获取、并发池、SSRF 防护、后端或流中断仍可失败。项目另设 mcpgw_registry_generic_proxy_request_total{entity_type,outcome},把同为 503 的 disabled/capacity,同为 502 的 auth_unavailable/egress_blocked/upstream_error 分开。测试直接驱动被装饰的 handler 与 streaming 函数,防止遗漏退出分支时“没有报错,但指标沉默”。内部 token gate 在 handler 前拒绝,不能指望所有拒绝都进入这个 counter。流式还需区分 started、completed 和异常终结,HTTP 200 headers 不是完整交付证明。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
对 Hermes 的实际启发与边界
最小验收矩阵应按 route × credential model × operation × terminal outcome 固定:Card GET、send、stream 各自核 gateway/target 身份、URL rewrite、下游泄露与断流;失败告警记录权限判定和实际 hop 两份结果,避免把禁用当容量事故、把策略拒绝当后端宕机。
关闭代理是在下次 render 后移除 location,凭据 rotation 也有 reload 生效窗口;配置写成功不是撤销已传播,移除新请求路由也不证明旧长连接已撤权。 真正跨 gateway trust、在途 stream 终止及多 IdP 撤销仍需隔离部署与带时间线的 E2E,本轮没有执行。后续优先补这些负例,而不是再新增同功能工具介绍。关联 continuity-security-context-contracts-and-finality 的提交时验权与 A2A-Agent2Agent-Protocol 的逐跳合同。^[raw/articles/mcp-gateway-registry-route-auth-and-hop-outcomes-2026-09-21.md]
深度判断: 更新旧 source 而不建第二篇项目介绍,因为增量是可复用的路由分责、联邦信任边界、错误归因与撤销时间边界;不是 release 新闻。测试只阅读、未在本机跑 gateway 测试套件,保持 medium。
写入记录
- 2026-10-12 09:04 CST:在旧项目入口前置1.32代理出站机制的版本化互链;不重写1.30/1.31既有结论。
- 2026-10-04 09:04 CST:补 1.31.0 discovery/调用身份隔离及真实 OBO write/vend 路径短入口,详细增量拆到专门 source;不把外部发行版视作本机部署。
- 2026-09-08 09:01 CST:基于 GitHub raw 文档、项目站与 AWS Open Source Blog 新建 source 页,提炼 AI asset registry、A2A reverse-proxy、per-user egress credential、registration gate、durable audit、OTel metric、rate-limit/quarantine 对 Hermes 工具/agent 控制面的启发。
- 2026-09-21 09:13 CST:补固定源码/测试、原生与generic A2A路由、入口/目标凭据、联邦代理隔离、授权/实际hop结果分验及撤销生效窗口;不把current main归为1.30.0,不声称已部署。
- 2026-09-21 09:23 CST:语义smoke未将新增路由机制的source召回前三,将简短机制入口前置;详细证据仍留原节,不用重复建页解决旧长页检索。