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 | 行为 |
|---|---|---|
| 工具发现和调用 | McpToolset、Toolset | 保留原始架构和多模态结果 |
| 工具筛选 | with_filter、with_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 | 协商式工具调用任务的创建、轮询、结果获取和取消 |
| 可流式传输的 HTTP | McpHttpClientBuilder | 超时、标头、身份验证注入、过期会话恢复 |
| 动态本地注册表 | McpServerManager | 添加、更新、启用、禁用、移除、保存、监控和重启 |
| 高级 SDK 工作 | adk_tool::mcp::rmcp | 服务器处理程序、传输、通知和扩展类型 |
文档路径
重要边界
- 动态管理目前针对本地 stdio 子进程。
- 管理器运行状况监控会检测已关闭的 MCP 连接,但无法证明服务器的数据库或外部 API 运行状况良好。
autoApprove会为兼容配置保留;ADK-Rust 不会将其解释为授权。OAuth2Config执行固定的客户端凭据令牌请求。它不是完整的 MCP 授权发现和浏览器授权流程。- 采样、根目录和日志记录已通过 SEP-2577 在上游弃用。
这些边界属于公共契约的一部分,应在部署设计中予以体现。