一、MCP 客户端
上一篇我们开发了MCP Server,现在来开发MCP Client。
通过 MCP Client 向服务器请求工具列表,服务器返回所有工具的详细信息,客户端可直接用于 function calling。
步骤一:引入pom 依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>
步骤二:开发 McpClient
package org.devpotato.client;
import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.McpSyncClient;
import io.modelcontextprotocol.client.transport.HttpClientStreamableHttpTransport;
import io.modelcontextprotocol.spec.McpSchema;
import java.time.Duration;
import java.util.HashMap;
public class McpClient {
public static void main(String[] args) {
// 创建Streamable HTTP Client
McpSyncClient httpClient = createStreamableHttpClient();
McpSchema.ListToolsResult toolsResult = httpClient.listTools();
System.out.println("工具列表: " + toolsResult);
McpSchema.CallToolRequest request = McpSchema.CallToolRequest.builder()
.name("getWeather")
.arguments(new HashMap<>() {{
put("city", "西安");
}})
.build();
McpSchema.CallToolResult result = httpClient.callTool(request);
System.out.println("工具列表调用结果: " + result);
}
/**
* 创建Streamable HTTP类型的Client
*/
private static McpSyncClient createStreamableHttpClient() {
HttpClientStreamableHttpTransport transport = HttpClientStreamableHttpTransport
.builder("http://localhost:8080")
.endpoint("/mcp")
.build();
McpSyncClient client = McpClient.sync(transport)
.clientInfo(new McpSchema.Implementation("http-client", "1.0.0"))
.requestTimeout(Duration.ofSeconds(60))
.build();
client.initialize();
return client;
}
}
运行结果
工具列表调用结果: CallToolResult[content=[TextContent[annotations=null, text="城市: 西安, 温度: 25°C, 天气: 晴", meta=null]], isError=false, structuredContent=null, meta=null]
二、MCP SDK 与 OpenAI SDK 协作流程
MCP SDK 与 OpenAI SDK 协作流程:
- 客户端用 MCP SDK 连接服务器,获取工具列表。
- 客户端用 OpenAI SDK 把用户输入和工具列表发给大模型。
- 大模型(通过 OpenAI SDK)决定是否需要调用工具。
- 如果需要,客户端用 MCP SDK 远程调用服务端工具,拿到结果。
- 客户端再用 OpenAI SDK 把工具结果发给大模型,生成最终回复。
随着MCP协议的普及,越来越多的AI IDE和平台支持作为MCP客户端,极大提升了工具集成和用户体验。现代AI IDE如Cursor、Claude Desktop等为开发者和非开发者都带来了全新的交互体验。
除了Cursor,Claude Desktop、Windsurf、LibreChat、MCP Inspector等也都可以作为MCP客户端。它们支持自动发现和调用MCP服务器上的工具,适合不同的团队协作和AI工作流场景。未来还会有更多AI IDE和平台支持MCP协议,MCP工具生态将更加繁荣。