Google 的 MCP Toolbox for Databases Java 客户端于 9 月 9 日达到 1.0.0 版。在 10 月 6 日的 公告中,该公司详细介绍了传输、身份验证和工具参数的变化,供将 Java 应用连接到单独运行的 Toolbox 服务器的团队参考。 版本记录 显示代码发布日期比该公告早了近一个月。

对于正在决定是否采用该客户端的 Java 团队来说,这一区别很重要。Google 将 1.0 称为稳定且向后兼容的基础,但同一版本记录也列出一项不兼容变更:面向代理公开的工具定义会删除绑定参数。现有集成应在升级前检查对这些定义的使用方式。Google 的 代码库 还指出,Java 功能支持仍在开发中,尚未达到 Python、JavaScript/TypeScript 和 Go SDK 的水平。

主要变化

1.0 客户端为 Java 应用提供了发现并调用 MCP Toolbox 所公开工具的明确方式。新加入的 HttpMcpTransport 位于传输接口之后,而 CredentialsProvider 与 AuthMethods 将凭据解析与客户端分离。Google 表示,每次请求都会异步解析凭据。该版本还新增默认参数值、关于凭据暴露的 HTTP 警告、版本选择、会话跟踪,以及自定义请求标头映射。这些是 SDK 文档记录的功能,并非 BIG CHANGE 进行的性能或安全测试。

Toolbox 本身是一个独立服务器。操作人员为其配置数据源和工具;Java 客户端连接到该服务器的 URL,加载工具定义并发送调用。仅添加 Java 依赖并不会配置数据库、授予权限或部署该服务器。 官方 Java 文档 介绍了客户端和服务器各自的角色,而 SDK 代码库 要求在配置客户端之前先运行服务器。

Java 团队可以评估什么

以下流程依据 Google 的文档和代码库整理。BIG CHANGE 未运行代码,也未连接数据库。

  1. 准备独立的 Toolbox 服务器和数据源。 Google 的 入门文档 涵盖服务器、工具定义和受支持的集成方式。首次评估时,请选择范围有限、只读的数据库工具,并检查服务器访问控制。SDK 代码库将 Java 17 或更高版本列为基础运行时。
  2. 固定 Java 依赖版本。 这份 1.0 版本发布公告 和 代码库 都列出了 Maven 坐标 com.google.cloud.mcp:mcp-toolbox-sdk-java:1.0.0;代码库还提供 Gradle 形式。通用 Java 文档仍使用 VERSION 占位符,因此本次评估应以具体版本发布产物为准。
  3. 连接服务器并检查一个工具。 将 McpToolboxClient 指向正在运行的服务器 URL /mcp ,然后使用 loadToolset、 listTools 或 loadTool 在调用工具前检查已发布的定义。代码库展示了使用 Java Map 进行调用并返回文本结果的示例。成功的检查应收到来自已命名且已配置工具的响应,而不只是客户端对象创建时没有报错。
  4. 审慎选择身份验证方式。 1.0 公告介绍了 CredentialsProvider 和 AuthMethods 客户端凭据方式,其中包括用于 OIDC 的 Google Application Default Credentials 路径。公告还说明,当凭据可能以明文传输时会出现 HTTP 警告。警告不能代替 HTTPS 端点或服务器端授权。尤其是从预览版升级时,应在服务器与客户端边界检查敏感参数的绑定值。

应关注工具定义和结果是否符合为代理设定的数据库权限。如果发现工具失败,先确认服务器 URL、可用工具名称和身份验证设置。如果调用失败,将工具要求的参数与发送的值进行比较,并检查服务器日志。这些诊断检查依据的是文档所述的组件分工,并不表示任何特定部署都能自动恢复。

限制与成本

Google 的 示例交通应用 展示了 Spring Boot 和 LangChain4j 调用由 AlloyDB 支持的 Toolbox 工具。10 月的文章称 Cymbal Transit 是虚构案例。它展示的是集成设计,并非经过测量的客户使用情况或可靠性结果。

Java SDK 代码库采用 Apache 2.0 许可证。这并不确定数据库、云端部署、模型调用或网络流量的价格;团队需要为实际选择的服务估算成本。代码库将 GraalVM native-image 用法标为实验性,并提醒 Java SDK 的功能支持相较其他 Toolbox 客户端尚不完整。在将 Google 关于企业适用性的说法视为已在生产系统中验证之前,请结合具体框架和数据源检查这些限制。

来源与延伸阅读