ADK-Rust中的模型上下文协议

模型上下文协议(MCP)是 AI 应用与独立拥有的能力之间的边界。MCP服务器可以发布工具、可读取资源、提示模板和参数补全功能。客户端会发现该目录,并通过协商的协议方法进行通信,而不是使用私有集成。

ADK-Rust 2 使用官方的 rmcp 3.1 SDK。客户端默认协商 MCP 2025-11-25,并通过其旧版握手连接到 2026-07-28 服务器。请参阅 rmcp 兼容性

ADK-Rust的定位

Rendering architecture…

McpToolset 将一个已初始化的 MCP 客户端连接适配到 ADK-Rust。 McpServerManager 管理本地 stdio 子进程的动态注册表,并聚合它们的工具。发布能力的应用可以使用 adk_tool::mcp::rmcp 构建 MCP 服务器;这是框架所使用的确切 SDK 版本。

选择合适的接口

您需要使用所有权
连接一个已知的本地服务器McpToolset + TokioChildProcess应用程序启动子进程
连接一个远程 MCP 服务McpHttpClientBuilder远程部署负责可用性
在运行时更改本地服务器定义McpServerManager应用程序拥有本地注册表和子进程
发布 MCP 服务器adk_tool::mcp::rmcp您的服务拥有架构、授权和副作用
保持已弃用的采样集成正常工作mcp-sampling 功能仅在 SEP-2577 下提供兼容性

已实现的能力映射

能力ADK-Rust API行为
工具发现和调用McpToolsetToolset保留原始架构和多模态结果
工具筛选with_filterwith_tools模型只能看到选定的工具
资源和模板list_resources, list_resource_templates, read_resource通过稳定的 URIs 读取上下文
提示list_prompts, get_prompt解析可复用的服务器拥有的消息
补全complete_prompt_argument, complete_resource_argument向服务器请求参数建议
资源订阅subscribe_resource, unsubscribe_resource自定义处理程序接收更新通知
引导ElicitationHandler表单和 URL 模式
任务McpTaskConfig协商式工具调用任务的创建、轮询、结果获取和取消
可流式传输的 HTTPMcpHttpClientBuilder超时、标头、身份验证注入、过期会话恢复
动态本地注册表McpServerManager添加、更新、启用、禁用、移除、保存、监控和重启
高级 SDK 工作adk_tool::mcp::rmcp服务器处理程序、传输、通知和扩展类型

文档路径

重要边界

  • 动态管理目前针对本地 stdio 子进程。
  • 管理器运行状况监控会检测已关闭的 MCP 连接,但无法证明服务器的数据库或外部 API 运行状况良好。
  • autoApprove 会为兼容配置保留;ADK-Rust 不会将其解释为授权。
  • OAuth2Config 执行固定的客户端凭据令牌请求。它不是完整的 MCP 授权发现和浏览器授权流程。
  • 采样、根目录和日志记录已通过 SEP-2577 在上游弃用。

这些边界属于公共契约的一部分,应在部署设计中予以体现。

ADK-Rust中的模型上下文协议 - ADK-Rust 文档 | ADK-Rust