游乐游手机版
首页/AI教程/文章详情

人工智能第九篇 Spring AI MCP客户端开发从零到一实战

时间:2026-05-28 17:17
上一篇我们完成了 MCP Server 的开发,本篇将聚焦于 MCP Client 端的实现与集成。 MCP Client 的核心职责非常明确:连接服务器、获取工具列表,并将这些工具信息交付给大模型,以便执行 function calling。整个流程看似简单,却需要两个 SDK 的协同配合——MC

上一篇我们完成了 MCP Server 的开发,本篇将聚焦于 MCP Client 端的实现与集成。

人工智能(九)- Spring AI MCP客户端开发

MCP Client 的核心职责非常明确:连接服务器、获取工具列表,并将这些工具信息交付给大模型,以便执行 function calling。整个流程看似简单,却需要两个 SDK 的协同配合——MCP SDK 负责与服务器通信,OpenAI SDK 负责与大模型交互。接下来,我们将一步步拆解这一过程。

一、MCP 客户端

步骤一:引入 pom 依赖

首先,在 pom.xml 中添加 MCP 客户端的 starter 依赖,Spring AI 会自动完成底层连接的装配。


    org.springframework.ai
    spring-ai-starter-mcp-client
步骤二:开发 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 ja va.time.Duration;
import ja va.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("https://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 Client 价值有限,真正的价值在于将其与大模型深度结合。整个协作流程可拆解为五步:

  • 客户端通过 MCP SDK 连接服务器,获取工具列表。
  • 客户端将用户输入与工具列表一并提交给 OpenAI SDK,发送至大模型。
  • 大模型根据上下文判断是否需要调用工具。
  • 若需要,客户端通过 MCP SDK 远程调用服务器端工具,获取执行结果。
  • 最后将工具结果返回给大模型,生成最终回复。

如此一来,MCP 充当了工具层的统一协议,而 OpenAI SDK 则扮演大脑接口的角色,二者分工明确,协作顺畅。

随着 MCP 协议的普及,越来越多的 AI IDE 和平台原生支持作为 MCP 客户端。例如 Cursor、Claude Desktop、Windsurf、LibreChat、MCP Inspector 等,均能自动发现并调用 MCP 服务器上的工具。不同工具适用于不同的团队协作场景,但本质上都在降低工具集成的门槛。可以预见,未来支持 MCP 的 AI 平台将持续增加,工具生态也将日益繁荣。

来源:https://juejin.cn/post/7629254332879831103
上一篇巡察工作汇报撰写详尽范文与提示词轻松应对 下一篇AI测试用例自动生成脚本编写指南与技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
年最新JetBrains AI助手Windows本地详细安装配置教程(含下载与环境要求)
AI教程 · 2026-07-03

年最新JetBrains AI助手Windows本地详细安装配置教程(含下载与环境要求)

JetBrainsAIAssistant可在Windows上通过IDE内置市场或离线包安装,需匹配新版JetBrainsIDE、账号登录与稳定网络。配置时应关注版本兼容、隐私设置、项目索引、快捷键和代码提交前复核,避免上传密钥与敏感业务资料。

Amazon Q Developer新手安装指南:从下载到首次运行的保姆级教程
AI教程 · 2026-07-03

Amazon Q Developer新手安装指南:从下载到首次运行的保姆级教程

AmazonQDeveloper可为编码、调试、解释项目和生成测试提供辅助。安装前需确认账号、开发环境和插件来源,按IDE或命令行路径完成配置,并在首次运行时注意权限、数据与项目安全。

Amazon Q Developer安装失败怎么办?报错日志排查与升级回滚方案
AI教程 · 2026-07-03

Amazon Q Developer安装失败怎么办?报错日志排查与升级回滚方案

AmazonQDeveloper安装失败通常与版本兼容、网络连接、身份登录、插件残留或权限配置有关。排查时应先确认环境,再查看IDE与终端日志,必要时采用清理重装、固定版本升级或回滚方案。

Amazon Q Developer本地模型运行:下载、路径与性能优化
AI教程 · 2026-07-03

Amazon Q Developer本地模型运行:下载、路径与性能优化

AmazonQDeveloper以云端能力为主,本地模型方案更适合离线补充、代码检索和私有环境辅助。配置时需确认版本、模型来源、路径权限、硬件资源与IDE集成方式,并通过量化、上下文控制和缓存策略优化性能。

Amazon Q Developer插件安装全流程:浏览器编辑器扩展市场配置
AI教程 · 2026-07-03

Amazon Q Developer插件安装全流程:浏览器编辑器扩展市场配置

AmazonQDeveloper可在浏览器控制台、VSCode、JetBrains等环境中辅助写代码、解释项目和生成测试。安装前需确认账号权限、编辑器版本与网络环境,配置时重点关注登录授权、工作区信任、数据权限和团队使用规范。