MCP 实用程序
MCP 实用程序为将模型上下文协议 (MCP) 与 Spring AI 应用程序集成提供了基础支持。这些实用程序支持 Spring AI 工具系统与 MCP 服务器之间的无缝通信,并支持同步和异步操作。它们通常用于以编程方式配置和交互 MCP 客户端和服务器。如需更精简的配置,请考虑使用启动器。
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\"}");
异步
McpAsyncClient mcpClient = // obtain MCP client
Tool mcpTool = // obtain MCP tool definition
ToolCallback callback = new AsyncMcpToolCallback(mcpClient, mcpTool);
// Use the tool through Spring AI's interfaces
ToolDefinition definition = callback.getToolDefinition();
String result = callback.call("{\"param\": \"value\"}");
工具回调提供程序
从 MCP 客户端发现并提供 MCP 工具。
同步
McpSyncClient mcpClient = // obtain MCP client
ToolCallbackProvider provider = new SyncMcpToolCallbackProvider(mcpClient);
// Get all available tools
ToolCallback[] tools = provider.getToolCallbacks();
异步
McpAsyncClient mcpClient = // obtain MCP client
Tool mcpTool = // obtain MCP tool definition
ToolCallback callback = new AsyncMcpToolCallback(mcpClient, mcpTool);
// Use the tool through Spring AI's interfaces
ToolDefinition definition = callback.getToolDefinition();
String result = callback.call("{\"param\": \"value\"}");
McpToolUtils
ToolCallbacks 到 ToolSpecifications
将 Spring AI 工具回调转换为 MCP 工具规范:
同步
List<ToolCallback> toolCallbacks = // obtain tool callbacks
List<SyncToolSpecifications> syncToolSpecs = McpToolUtils.toSyncToolSpecifications(toolCallbacks);
异步
List<ToolCallback> toolCallbacks = // obtain tool callbacks
List<AsyncToolSpecification> asyncToolSpecifications = McpToolUtils.toAsyncToolSpecifications(toolCallbacks);
然后您可以使用McpServer.AsyncSpecification来注册工具规格:
McpServer.AsyncSpecification asyncSpec = ...
asyncSpec.tools(asyncToolSpecifications);
MCP 客户端到 ToolCallbacks
从 MCP 客户端获取工具回调
同步
List<McpSyncClient> syncClients = // obtain sync clients
List<ToolCallback> syncCallbacks = McpToolUtils.getToolCallbacksFromSyncClients(syncClients);
异步
List<McpAsyncClient> asyncClients = // obtain async clients
List<ToolCallback> asyncCallbacks = McpToolUtils.getToolCallbacksFromAsyncClients(asyncClients);
原生图像支持
该类McpHints为 MCP 模式类提供 GraalVM 原生镜像提示。在构建原生镜像时,该类会自动为 MCP 模式类注册所有必要的反射提示。
作者:Jeebiz 创建时间:2025-08-03 19:45
最后编辑:Jeebiz 更新时间:2025-08-08 00:47
最后编辑:Jeebiz 更新时间:2025-08-08 00:47