ADK-Rust 中的模型上下文协议
模型上下文协议 (MCP) 是 AI 应用程序与独立拥有的能力之间的边界。MCP 服务器可以发布工具、可读资源、提示模板和参数补全。客户端发现该目录并通过协商的协议方法进行通信,而不是通过私有集成。
ADK-Rust 2 使用官方的 rmcp 2.2 SDK 和 MCP 2025-11-25 类型。
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 不将其解释为 authorization。OAuth2Config执行固定的客户端凭据令牌请求。它不是完整的 MCP authorization 发现和浏览器 authorization 流程。- 采样、根和日志记录通过 SEP-2577 在上游被弃用。
这些边界是公共契约的一部分,应在部署设计中体现。