为了避免冲突,MCP 工具的命名空间为
mcp__{server_name}__{tool_name};被标注 readOnlyHint 的 MCP 工具会被权限系统识别为只读(在 EXPLORE 与 ACCEPT_EDITS 模式下自动放行;DEFAULT 模式下若没有 allow 规则命中,仍然会 ASK)。
注册 MCP 客户端
通过Toolkit(mcps=[...]) 接口可以注册多个 MCP 客户端,其中有状态的 MCP 客户端必须在构造 toolkit 之前完成连接。
筛选暴露的工具
如果希望只暴露 MCP 服务的部分工具,可以在客户端上配置enable_tools 或 disable_tools 参数:
运行时更新 HTTP header
mcp_config 中的 headers 在构造时就已固定。当鉴权令牌会在会话中途轮换时,对 Streamable HTTP 客户端调用 set_runtime_headers() 即可替换后续请求携带的 header,既不用重建客户端,也不用重新连接:
Docker 工作区中真正的 MCP 客户端跑在网关进程里,主机侧持有的是代理对象。对代理调用
set_runtime_headers() 会转发给网关,详见 MCP 网关。在 Toolkit 之外使用 MCP 工具
需要在Toolkit 之外直接调用 MCP 工具时,调用 await client.list_tools() 拿到 MCPTool 实例列表后,即可像普通 ToolBase 一样使用。