)
大家好我是Java1234_小锋老师最近更新《2027版本 Spring AI 2.0 开发Java Agent智能体 视频教程》专辑感谢大家支持。本课程主要介绍和讲解Spring AI 2.0简介Spring AI 2.0 HelloWorld搭建Advisors — 拦截器模式增强AI能力对话与提示词工程Prompt工具调用 (Function Calling / Tools) RAG (检索增强生成)MCP(模型 上下文协议)和多模态支持。等这个Spring AI2.0基础课程录制完成接下来要发布2个 企业级Java AI实战课程RAG 企业知识库系统和AI智能客服系统。大家可以点点关注后面更精彩。视频教程课件源码打包下载链接https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd1234提取码0000Spring AI 2.0 开发Java Agent智能体 - MCP(模型上下文协议)MCP的全称是Model Context Protocol模型上下文协议是由Anthropic公司于 2024 年 11 月开源的一个开放协议。你可以把它理解为AI 应用的“通用 USB 接口”。它的核心目标是解决一个实际问题让大模型LLM能够安全、标准、便捷地连接到各种外部数据源和工具。核心价值解决“数据孤岛”问题在没有 MCP 之前每个 AI 应用如果要访问数据库、文件、API 或浏览器需要为每个数据源编写定制的集成代码“写死”的代码连接器开发成本高、复用性差、维护困难。MCP 定义了一套统一的、标准化的 API 规范就像为 AI 生态制定了通用的“插座”标准。一套协议所有支持它的 AI 和工具都能即插即用。MCP 的工作方式三个角色MCP 主机 (Host)需要访问外部数据的 AI 应用例如 Claude 桌面版、IDE 插件等。MCP 客户端 (Client)内嵌于主机中负责与 MCP 服务器进行一一通信。MCP 服务器 (Server)轻量级的服务程序通过标准协议暴露特定功能如文件读写、数据库查询、API 调用。它充当“翻译器”将 AI 需求转化为具体系统或数据操作。Spring AI 2.0 中的 集成MCPSpring AI 并不是简单“包一层 SDK”而是把组装工作交给 Boot Starter把声明工作交给注解模块同时把一部分曾与 MCP Java SDK 同行的Spring 专用传输实现收回到org.springframework.ai体系。Spring AI 2.0 MCP具体示例 - 实时本地天气预报大模型是不知道当前的某个城市天气预报的这个功能实现可以让大模型调用MCP来实现。首先新建mcp-server项目。pom.xml引入依赖dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-mcp-server-webmvc/artifactId exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /exclusion /exclusions /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-webmvc/artifactId /dependencyapplication.yml配置下mcp# MCP 客户端SSE默认 GET /sse POST 消息 /mcp/message可通过下方属性覆盖 spring: application: name: mcp-server ai: mcp: server: name: mcp-server version: 1.0.0 type: SYNC instructions: 提供按城市名的模拟天气预报查询演示数据。 annotation-scanner: enabled: true # sse-endpoint: /sse # sse-message-endpoint: /mcp/message # base-url: server: port: 8888定义 WeatherMcpToolspackage com.java1234; import org.springframework.ai.mcp.annotation.McpTool; import org.springframework.ai.mcp.annotation.McpToolParam; import org.springframework.stereotype.Component; Component public class WeatherMcpTools { McpTool( name getWeatherForecast, description 根据城市名称查询模拟天气预报演示数据非真实气象来源, generateOutputSchema true) public String getWeatherForecast( McpToolParam(description 城市名称例如北京、上海, required true) String city) { System.out.println(执行到天气预报MCP-SERVER); return city 天气晴天 空气质量优。; } }然后我们直接启动mcp-server项目接下来就是mcp-client客户端开发了。pom.xml加下mcp-client客户端依赖!-- MCP 客户端通过 SSE 连接本机 mcp-server默认端口 8888 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-mcp-client/artifactId /dependencyapplication.yml里配置下mcpspring: application: name: helloWorld ai: model: embedding: openai mcp: client: enabled: true type: SYNC # 与 mcp-server 一致须先启动 mcp-server默认 http://localhost:8888 sse: connections: mcp-weather: url: http://localhost:8888新建MyMcpControllerpackage com.java1234.controller; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.mcp.SyncMcpToolCallbackProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 演示通过 Spring AI MCP 客户端连接本机 {code mcp-server}由大模型按需调用远端 MCP 工具如天气预报。 * p * 使用前请先启动 {code mcp-server}默认端口 8888。 */ RestController public class MyMcpController { Autowired private ChatClient chatClient; Autowired private SyncMcpToolCallbackProvider mcpToolCallbackProvider; RequestMapping(/ai/mcp) public String aiWithMcp() { String q 查一下上海天气; String result chatClient.prompt() .system(用户询问天气时你必须调用工具查询后再用简短中文回答。) .user(q) .toolCallbacks(mcpToolCallbackProvider) .call() .content(); System.out.println( result); return OK; } }浏览器调用http://localhost:8080/ai/mcp控制返回