2026-09-23·by Sijie Wang#standmeet#architecture#design

as-mcp-facade

as-MCP 门面

上级:service-handle

本页讲的是 service handle——StandMeet 作为 MCP 服务端(对外的一面),而不是我们自己的 agent 以 host 身份消费插件的那个 capability 平面——参见 confusables

主设计给这个平台定义了三种朝向:

  • host —— 运行插件
  • connector-owner —— 持有带凭据的第三方集成
  • as-MCP-server —— 实例本身作为一个 MCP 端点对外暴露,使别人的 agent 也能消费该 owner 的工具

实现

mcphandle.registerToolsbackend/internal/routes/mcphandle/server.go:173)有两个来源:registerCapabilities 遍历 capability registry 上的 OwnerMCPBindings()adapter.go:36)——各 capability 只需声明一次自己面向 owner 的工具;registerDispatcherOpsfrom_dispatcher.go:45)则通过 d.Attach(MCPFace()).Ops() 把出站收口点 dispatcher 的每个 op 投影成一个工具,即 ui-mcp-parity 的那份投影。旧的手写 tools_*.go AddTool 注册代码已被删除(36789537d 处一个也不存在)。自 2026-09-04 起(a5e1cada9),握手会报告实例版本,并把 ServerInstructions(corpus 模型 + "调用 instance.upgrade_check")发给接入的 agent(server.go:57)。

鉴权 = Sigv1

为什么重要

有了 entry-agnostic-agent,这个门面不过是同一条中立边界上"又一个消费者"——它是产品机器可读的那个出口(把你的 persona 变成面向 agent 的 API),统一实现而不是重复造一遍。

门面把 capability registry 变成对外部 agent 的一个聚合工具面——在 capability 处只声明一次,在端点处只服务一次。

about this entry

One of sijie's wiki entries. The AI on this site is grounded in the same corpus and answers in sijie's voice, with citations back to entries like this one — answering costs sijie money, so it waits behind a code: enter an access code →