| 此版本仍在开发中,尚未被视为稳定版本。最新的快照版本请使用 Spring AI 1.0.0-SNAPSHOT! | 
MCP 实用程序
MCP 实用程序为将模型上下文协议与 Spring AI 应用程序集成提供了基础支持。 这些实用程序实现了 Spring AI 的工具系统和 MCP 服务器之间的无缝通信,支持同步和异步作。 它们通常用于编程 MCP 客户端和服务器配置和交互。 要获得更简化的配置,请考虑使用 boot starters。
ToolCallback 实用程序
工具回调适配器
使 MCP 工具适应 Spring AI 的工具接口,同时支持同步和异步执行。
- 
Sync 
- 
Async 
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 工具。
- 
Sync 
- 
Async 
McpSyncClient mcpClient = // obtain MCP client
ToolCallbackProvider provider = new SyncMcpToolCallbackProvider(mcpClient);
// Get all available tools
ToolCallback[] tools = provider.getToolCallbacks();对于多个客户端:
List<McpSyncClient> clients = // obtain list of clients
List<ToolCallback> callbacks = SyncMcpToolCallbackProvider.syncToolCallbacks(clients);McpAsyncClient mcpClient = // obtain MCP client
ToolCallbackProvider provider = new AsyncMcpToolCallbackProvider(mcpClient);
// Get all available tools
ToolCallback[] tools = provider.getToolCallbacks();对于多个客户端:
List<McpAsyncClient> clients = // obtain list of clients
Flux<ToolCallback> callbacks = AsyncMcpToolCallbackProvider.asyncToolCallbacks(clients);McpToolUtils
ToolCallbacks 到 ToolRegistrations
将 Spring AI 工具回调转换为 MCP 工具注册:
- 
Sync 
- 
Async 
List<ToolCallback> toolCallbacks = // obtain tool callbacks
List<SyncToolRegistration> syncToolRegs = McpToolUtils.toSyncToolRegistration(toolCallbacks);然后,您可以使用McpServer.SyncSpec要注册工具注册:
McpServer.SyncSpec syncSpec = ...
syncSpec.tools(syncToolRegs);List<ToolCallback> toolCallbacks = // obtain tool callbacks
List<AsyncToolRegistration> asyncToolRegs = McpToolUtils.toAsyncToolRegistration(toolCallbacks);然后,您可以使用McpServer.AsyncSpec要注册工具注册:
McpServer.AsyncSpec asyncSpec = ...
asyncSpec.tools(asyncToolRegs);MCP 客户端到 ToolCallbacks
从 MCP 客户端获取工具回调
- 
Sync 
- 
Async 
List<McpSyncClient> syncClients = // obtain sync clients
List<ToolCallback> syncCallbacks = McpToolUtils.getToolCallbacksFromSyncClients(syncClients);List<McpAsyncClient> asyncClients = // obtain async clients
List<ToolCallback> asyncCallbacks = McpToolUtils.getToolCallbacksFromAsyncClients(asyncClients);