什么是 MCP?如何在 Spring Boot + LangChain4j 中落地实战?

如果说大模型是大脑,那么 MCP 就是它的神经末梢。它为 AI 提供了与外部工具、资源和服务交互的标准化方式,让 AI 能够访问最新数据、执行复杂操作,并与现有系统无缝集成。

你可以把 MCP 想象成 AI 应用的“USB 接口”。

就像 USB 为电脑连接鼠标、键盘、打印机提供了统一标准一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化的方法。

看下面这张图,一目了然:

图片

简单来说,通过 MCP 协议,你的 AI 应用可以轻松“插拔”别人提供的服务来实现更多功能,比如查询地理位置、操作数据库、部署网站,甚至是支付等等,而不需要为每个服务单独开发适配器。

在之前的文章中,我分享了如何利用 LangChain4j 通过自定义工具实现博客园文章搜索。今天,我们更进一步,利用MCP 实现全网搜索内容,这也是 MCP 最典型的应用场景之一。

寻找 MCP 服务

首先,我们需要在 MCP 服务市场找到一个 Web Search 服务。

这里推荐智谱的 Web Search 服务,因为它提供了SSE(Server-Sent Events)在线调用服务。这意味着我们不需要自己在本地安装和启动繁琐的环境,直接通过网络调用即可,非常方便。

图片

当然,使用第三方服务通常需要 API Key。你需要先去平台官方获取 API Key,稍后在代码中会用到:

图片

引入依赖与配置

比较遗憾的是,目前 LangChain4j 官方文档对 MCP 的支持描述还不够完善,甚至没有明确提到需要引入哪个依赖包。

经过一番探索,我从开源仓库中找到了对应的依赖。请在你的pom.xml中添加以下内容:

<!-- https://mvnrepository.com/artifact/dev.langchain4j/langchain4j-mcp --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-mcp</artifactId> <version>1.1.0-beta7</version> </dependency>

接着,在application.yaml配置文件中新增 API Key 的配置:

bigmodel: api-key: <Your Api Key>
编写 MCP 配置类

接下来是核心部分。我们需要新建一个配置类mcp.McpConfig,初始化与 MCP 服务的通讯,并创建McpToolProvider的 Bean。

代码如下:

/** * @author BNTang */ @Configuration public class McpConfig { @Value("${bigmodel.api-key}") private String apiKey; @Bean public McpToolProvider mcpToolProvider() { // 1. 配置与 MCP 服务的通讯方式 (SSE) McpTransport transport = new HttpMcpTransport.Builder() .sseUrl("https://open.bigmodel.cn/api/mcp/web_search/sse?Authorizatinotallow=" + apiKey) // 开启日志,方便调试查看交互细节 .logRequests(true) .logResponses(true) .build(); // 2. 创建 MCP 客户端 McpClient mcpClient = new DefaultMcpClient.Builder() .key("neoMcpClient") .transport(transport) .build(); // 3. 从 MCP 客户端获取工具提供者 return McpToolProvider.builder() .mcpClients(mcpClient) .build(); } }

注意:上面演示的是通过SSE (HTTP)的方式调用在线 MCP 服务。

如果你是通过npxuvx在本地启动 MCP 服务,则需要使用StdioMcpTransport来建立通讯,配置方式略有不同:

McpTransport transport = new StdioMcpTransport.Builder() .command(List.of("/usr/bin/npm", "exec", "@modelcontextprotocol/server-everything@0.6.2")) .logEvents(true) .build();
在 AI Service 中集成

有了McpToolProvider,我们就可以把它注入到 AI Service 中了。

@Resource private McpToolProvider mcpToolProvider; @Bean public AiCodeHelperService aiCodeHelperService() { // 设置聊天记忆,最多保留最近 10 条消息 ChatMemory chatMemory = MessageWindowChatMemory.withMaxMessages(10); // 构建 AI Service return AiServices.builder(AiCodeHelperService.class) .chatModel(qwenChatModel) .chatMemory(chatMemory) // RAG 检索增强生成 .contentRetriever(contentRetriever) // 注册本地自定义工具 .tools(new CnblogsArticleTool()) // 注册 MCP 工具集 .toolProvider(mcpToolProvider) .build(); }

至此,集成工作全部完成。

效果验证

让我们编写一个单元测试来验证效果:

@Test void chatWithMcp() { String result = aiCodeHelperService.chat("帮我搜索一下,2025 年最新的 AI 发展趋势有哪些?"); System.out.println(result); }

执行测试,观察控制台日志。我们可以清晰地看到 AI 自动调用了 MCP 提供的搜索工具:

图片

最终,AI 成功从网上检索到了最新内容,并整理成了答案返回给我们:

图片

目前,LangChain4j 文档中关于 MCP 的部分还比较空白,希望本文的实战代码能帮你少走弯路。

虽然目前不建议用 Java 去开发MCP 服务端(生态尚在完善中),但利用 Java消费现有的 MCP 服务已经非常顺畅。

MCP 作为一个开放标准,正在快速发展。未来会有越来越多的 AI 应用和工具支持它,就像 USB 接口一样普及。建议大家持续关注,尽早掌握这一连接万物的“AI 接口”。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!​

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示

​因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1163600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

60N02-ASEMI藏在电路里的“效率密码”

编辑&#xff1a;LL60N02-ASEMI藏在电路里的“效率密码”型号&#xff1a;60N02品牌&#xff1a;ASEMI沟道&#xff1a;NPN封装&#xff1a;TO-252漏源电流&#xff1a;60A漏源电压&#xff1a;20VRDS(on):6.0mΩ批号&#xff1a;最新引脚数量&#xff1a;8封装尺寸&#xff1a…

课程论文别再 “凑字数”!虎贲等考 AI:一键解锁高分学术答卷的秘密

选修课论文赶 DDL 熬到凌晨&#xff0c;专业课论文选题跑偏被导师打回&#xff0c;通识课论文文献堆砌得分惨淡…… 相信这是不少学生写课程论文时的真实写照。课程论文看似要求低于毕业论文&#xff0c;实则暗藏 “选题精准、逻辑严谨、格式规范” 三道门槛&#xff0c;稍不注…

顶刊级科研绘图不用愁!虎贲等考 AI 一键解锁论文 “视觉加分密码”

在学术发表内卷加剧的当下&#xff0c;一张规范、精准、美观的科研图表&#xff0c;早已成为论文投稿、项目申报的 “硬核竞争力”。但无数科研人都曾陷入绘图困境&#xff1a;精通实验却不懂设计&#xff0c;用 Origin 画半天的图表被审稿人批 “不专业”&#xff0c;花高价请…

全面解析 Agent Engineering 的十大工程维度:生产级 Agent 系统的炼成之路

技术层面的突破让AI智能体&#xff08;Agent&#xff09;成为当前绝对的AI热点。但随着Agent应用走向真实业务&#xff0c;也逐渐暴露出其工程瓶颈&#xff1a;不确定性、幻觉、不可观测、性能、安全、成本等多方面存在挑战......这些问题不会因为模型更强而自动消失。“打造一…

【Java毕设全套源码+文档】基于springboot的家校互联管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【Java毕设全套源码+文档】基于JavaWeb的毕业季旅游一站式定制服务平台的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

为什么有了 LangChain,还需要 Spring AI?

一位学员在最近AI Agent开发工程师岗位的面试中&#xff0c;面试官抛出了一个非常有意思的问题&#xff1a;“为什么有了 LangChain&#xff0c;还需要 Spring AI&#xff1f;”今天&#xff0c;我们就来深度拆解一下&#xff0c;为什么在 Java 开发者和企业级后端架构的视野里…

开题报告总被毙?虎贲等考 AI:三步搞定导师认可的学术蓝图

开题报告改了 N 版仍被导师打回&#xff0c;选题太泛没新意&#xff0c;文献综述像流水账&#xff0c;技术路线混乱看不懂…… 相信这是不少毕业生写开题报告时的崩溃瞬间。作为毕业论文的 “第一道门槛”&#xff0c;开题报告的质量直接决定后续研究能否顺利推进。虎贲等考 AI…

人工磨问卷 VS 虎贲等考 AI:3 天工作量压缩到 30 分钟的调研革命

还在为设计一份学术问卷熬秃脑袋&#xff1f;花费 3 天查文献、拆维度、编题项&#xff0c;结果被导师批 “逻辑混乱、信效度不足”&#xff1b;辛辛苦苦回收 200 份数据&#xff0c;却因问题歧义导致数据失真&#xff0c;只能推倒重来&#xff1f; 在学术调研领域&#xff0c…

【Java毕设全套源码+文档】基于Java Web的美容美发管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

数据不会说话?虎贲等考 AI 一键解锁 “学术数据翻译官” 模式

还在为论文里一堆杂乱数据愁到脱发&#xff1f;还在对着 SPSS、R 语言的教程欲哭无泪&#xff1f;还在担心图表做得太丑被导师打回重改&#xff1f;作为深耕论文写作科普的教育博主&#xff0c;今天必须给大家安利一款数据分析 “神器”—— 虎贲等考 AI 智能写作平台&#xff…

【Java毕设全套源码+文档】基于springboot的房屋租赁管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

计算机毕业设计Django+Vue.js新闻推荐系统 新闻可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 技术范围&#xff1a;Sprin…

吐血推荐10个AI论文软件,本科生搞定毕业论文!

吐血推荐10个AI论文软件&#xff0c;本科生搞定毕业论文&#xff01; AI 工具如何助力论文写作&#xff1f; 在当今学术写作的环境中&#xff0c;越来越多的学生开始借助 AI 工具来提升论文效率。尤其是在面对繁重的写作任务时&#xff0c;这些工具不仅能显著降低 AIGC&#xf…

(9-2-03)自动驾驶中基于概率采样的路径规划:基于Gazebo仿真的路径规划系统(3)

9.3.5 解析SDF 文件SDF 文件是指 Simulation Description Format 文件&#xff0c;是一种用于描述仿真环境、机器人、传感器和其他相关信息的文件格式。它通常用于机器人领域中的仿真和控制任务。SDF 文件使用 XML&#xff08;可扩展标记语言&#xff09;格式&#xff0c;因此…

【Java毕设全套源码+文档】基于springboot的郑州旅游景点智能推荐系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

HMC349AMS8GETR,高线性度与高功率处理的射频开关

型号介绍今天我要向大家介绍的是 Analog Devices 的一款射频开关——HMC349AMS8GETR。 它拥有极低的插入损耗&#xff0c;仅为 0.9 dB 至 2 GHz&#xff0c;这意味着它能够以极高的效率传输信号&#xff0c;就像一条高速公路&#xff0c;让信号畅通无阻。同时&#xff0c;它还拥…

在CentOS上快速安装NVM和Node.js 14:完整指南与优化方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务) &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1;个人微信&a…

【Java毕设全套源码+文档】基于springboot的智慧农业专家远程指导系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【Java毕设全套源码+文档】基于springboot的智慧物业服务系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…