Spring AI 2.0 + MCP Apps:Java开发者终于能玩出花来了

张开发
2026/4/4 3:22:56 15 分钟阅读
Spring AI 2.0 + MCP Apps:Java开发者终于能玩出花来了
Spring AI 2.0 MCP AppsJava开发者终于能玩出花来了说实话之前用Spring AI的时候总觉得差点意思。虽然能调大模型API但做出来的东西跟Python那帮人的Agent比起来怎么看都像个玩具。直到最近看到Spring AI 2.0.0-M4和MCP Apps的支持我才意识到Java开发者也能做出真正酷炫的AI应用了。先说说MCP是个啥MCP全称Model Context Protocol是Anthropic搞的一个开放标准。简单来说它让AI助手能跟各种工具和服务对话。以前你想让ChatGPT查个数据库、调个API得写一堆胶水代码。现在有了MCP就像给AI装了个万能转接头想连什么服务都行。而且最近MCP Apps的出现让事情变得更有趣了——AI不仅能返回文字还能直接返回交互式界面。MCP Apps聊天界面里直接操作UI想象一下这个场景你跟AI说帮我看看最近一周的销售数据它不光给你文字总结而是直接在聊天窗口里弹出一个图表你可以点、可以筛选、可以下钻。这就是MCP Apps做的事。它解决了传统AI对话的一个痛点纯文字有时候真的不够用。比如看数据图表比文字直观多了选日期日历组件比请输入YYYY-MM-DD格式友好一百倍确认操作点个按钮比打字确认自然多了Spring AI 2.0的新能力Spring AI 2.0.0-M43月26日发布的正式支持MCP Apps了。几个关键更新1. MCP注解内置之前MCP功能在单独的项目里现在直接合并到Spring AI核心了。配置起来更简单McpServerpublicclassMyMcpServer{Tool(nameshowDashboard,description展示数据仪表盘)ToolMetadata(uiUiResource(uriui://dashboard))publicStringshowDashboard(){returnDashboard opened;}Resource(uriui://dashboard)publicStringgetDashboardHtml(){return !DOCTYPE html html head script srchttps://unpkg.com/anthropic-ai/mcp-appslatest/script /head body div idchart/div script // 直接调用MCP工具获取数据 mcp.callTool(getSalesData).then(data { renderChart(data); }); /script /body /html ;}}2. 动态结构化输出1.1.4版本加入的动态结构化输出控制让AI返回的数据格式更灵活。配合MCP Apps可以根据用户操作实时调整返回的界面。3. 安全加固这次更新修了几个CVE漏洞生产环境用起来更放心。一个实际的例子假设你在做一个电商后台的AI助手。以前用户问这周销量怎么样你只能返回一段文字描述。现在你可以这样Tool(nameweeklySales,description查看本周销售数据)ToolMetadata(uiUiResource(uriui://sales-chart))publicSalesDatagetWeeklySales(){returnsalesService.getThisWeekData();}Resource(uriui://sales-chart)publicStringsalesChartUI(){return !DOCTYPE html html head script srchttps://cdn.jsdelivr.net/npm/chart.js/script script srchttps://unpkg.com/anthropic-ai/mcp-appslatest/script /head body canvas idsalesChart/canvas div button onclickchangePeriod(day)按天/button button onclickchangePeriod(week)按周/button /div script async function loadData(period) { const data await mcp.callTool(weeklySales, { period }); new Chart(document.getElementById(salesChart), { type: line, data: data }); } loadData(day); /script /body /html ;}用户问完问题直接在聊天窗口里看到可交互的图表还能切换时间维度。这体验跟那些Python做的AI Agent比毫不逊色。踩坑记录坑1版本要对齐Spring AI 2.0.0-M3才开始支持MCP Apps的metadata。如果你用M2或更早版本注解会报错。升级到M4最稳。坑2CSP配置MCP Apps跑在sandboxed iframe里默认加载不了外部资源。需要在metadata里配置CSPToolMetadata(uiUiResource(uriui://dashboard,cspCsp(scriptSrc{self,https://cdn.jsdelivr.net,https://unpkg.com},styleSrc{self,unsafe-inline})))坑3资源路径MCP Apps的UI资源要用ui://协议别写成http://或者文件路径。写在最后Spring AI 2.0 MCP Apps的组合让我对Java在AI领域的未来又多了点信心。虽然Python的生态还是更成熟但至少我们现在有了跟它掰手腕的资本。如果你已经在用Spring Boot又想给项目加点AI能力不妨试试这套方案。有问题欢迎评论区交流相关链接Spring AI 2.0.0-M4 发布说明MCP Apps 官方文档Spring AI MCP 示例

更多文章