跳到主要内容

MCP 实用工具

DeepSeek V3 中英对照 MCP Utilities

MCP 工具为将 Model Context Protocol 与 Spring AI 应用程序集成提供了基础支持。这些工具使 Spring AI 的工具系统与 MCP 服务器之间的通信无缝衔接,支持同步和异步操作。它们通常用于编程式的 MCP 客户端和服务器配置及交互。为了获得更简化的配置,可以考虑使用 boot starters。

ToolCallback 工具

工具回调适配器

将 MCP 工具适配到 Spring AI 的工具接口,同时支持同步和异步执行。

McpSyncClient mcpClient = // obtain MCP client
Tool mcpTool = // obtain MCP tool definition
ToolCallback callback = new SyncMcpToolCallback(mcpClient, mcpTool);

// Use the tool through Spring AI's interfaces
ToolDefinition definition = callback.getToolDefinition();
String result = callback.call("{\"param\": \"value\"}");
java

工具回调提供者

从 MCP 客户端发现并提供 MCP 工具。

McpSyncClient mcpClient = // 获取 MCP 客户端
ToolCallbackProvider provider = new SyncMcpToolCallbackProvider(mcpClient);

// 获取所有可用的工具
ToolCallback[] tools = provider.getToolCallbacks();
java

对于多个客户端:

List<McpSyncClient> clients = // 获取客户端列表
List<ToolCallback> callbacks = SyncMcpToolCallbackProvider.syncToolCallbacks(clients);
java

McpToolUtils

从 ToolCallbacks 到 ToolRegistrations

将 Spring AI 工具回调转换为 MCP 工具注册:

List<ToolCallback> toolCallbacks = // 获取工具回调
List<SyncToolRegistration> syncToolRegs = McpToolUtils.toSyncToolRegistration(toolCallbacks);
java

然后你可以使用 McpServer.SyncSpec 来注册工具注册信息:

McpServer.SyncSpec syncSpec = ...
syncSpec.tools(syncToolRegs);
java

MCP 客户端到 ToolCallbacks

从 MCP 客户端获取工具回调

List<McpSyncClient> syncClients = // obtain sync clients
List<ToolCallback> syncCallbacks = McpToolUtils.getToolCallbacksFromSyncClients(syncClients);
java

原生镜像支持

McpHints 类为 MCP 模式类提供了 GraalVM 原生镜像提示。在构建原生镜像时,该类会自动注册所有必要的 MCP 模式类的反射提示。