微信扫码
添加专属顾问
我要投稿
Model Context Protocol(MCP)简介
Cloud Native
Spring AI MCP 简介
Cloud Native
Spring AI 应用程序:使用 Spring AI 框架构建想要通过 MCP 访问数据的生成式 AI 应用程序
Spring MCP 客户端:MCP 协议的 Spring AI 实现,与服务器保持 1:1 连接
MCP 服务器:轻量级程序,每个程序都通过标准化的模型上下文协议公开特定的功能
本地数据源:MCP 服务器可以安全访问的计算机文件、数据库和服务
远程服务:MCP 服务器可以通过互联网(例如,通过 API)连接到的外部系统
通过一个示例快速体验 Spring AI MCP
Cloud Native
示例完整源码[3]:https://github.com/springaialibaba/spring-ai-alibaba-examples/spring-ai-alibaba-mcp-example
1. MCP Client,与 MCP 集成的关键,提供了与本地文件系统进行交互的能力。
2. Function Callbacks,Spring AI MCP 的 function calling 声明方式。
// List<McpFunctionCallback> functionCallbacks;var chatClient = chatClientBuilder.defaultFunctions(functionCallbacks).build();
和开发之前的 Spring AI 应用一样,我们先定义一个 ChatClient Bean,用于与大模型交互的代理。需要注意的是,我们为 ChatClient 注入的 functions 是通过 MCP 组件(McpFunctionCallback)创建的。
发现 MCP server 中可用的工具 tool(Spring AI 中叫做 function)列表。
依次将每个 tool 转换成 Spring AI function callback。
@Beanpublic List<McpFunctionCallback> functionCallbacks(McpSyncClient mcpClient) {return mcpClient.listTools(null).tools().stream().map(tool -> new McpFunctionCallback(mcpClient, tool)).toList();}可以看出,ChatClient 与模型交互的过程是没有变化的,模型在需要的时候告知 ChatClient 去做函数调用,只不过 Spring AI 通过 McpFunctionCallback 将实际的函数调用过程委托给了 MCP,通过标准的 MCP 协议与本地文件系统交互:
在与大模交互的过程中,ChatClient 处理相关的 function calls 请求
ChatClient 调用 MCP 工具(通过 McpClient)
@Bean(destroyMethod = "close")public McpSyncClient mcpClient() {var stdioParams = ServerParameters.builder("npx").args("-y", "@modelcontextprotocol/server-filesystem", "path)).build(); // 1var mcpClient = McpClient.sync(new StdioServerTransport(stdioParams),Duration.ofSeconds(10), new ObjectMapper()); //2var init = mcpClient.initialize(); // 3System.out.println("MCP Initialized: " + init);return mcpClient;}
在以上代码中:
1. 配置 MCP server 启动命令与参数。
2. 初始化 McpClient:关联 MCP server、指定超时时间等。
3. Spring AI 会使用 npx -y @modelcontextprotocol/server-filesystem "/path/to/file"在本地机器创建一个独立的子进程(代表本地 Mcp server),Spring AI 与 McpClient 通信,McpClient 进而通过与 Mcp server 的连接操作本地文件。
npm install -g npx
2. 下载示例源码
git clone https://github.com/springaialibaba/spring-ai-alibaba-examples.gitcd spring-ai-alibaba-examples/spring-ai-alibaba-mcp-example/filesystem
3. 设置环境变量
# 通义大模型 Dashscope API-KEYexport AI_DASHSCOPE_API_KEY=${your-api-key-here}4. 构建示例
./mvnw clean install
./mvnw spring-boot:run
总结
Cloud Native
在客户端,让 Spring AI 开发的智能体可以快速接入 MCP 生态中的各种 server 服务。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-05
普林斯顿大学RLAnything:AI学会一边学习一边给自己打分
2026-02-04
Agent 越用越聪明?AgentScope Java 在线训练插件来了!
2026-02-03
OpenClaw之后,我们离能规模化落地的Agent还差什么?
2026-01-30
Oxygen 9N-LLM生成式推荐训练框架
2026-01-29
自然·通讯:如何挖掘复杂系统中的三元交互
2026-01-29
微调已死?LoRA革新
2026-01-19
1GB 显存即可部署:腾讯 HY-MT1.5 的模型蒸馏与量化策略解析
2026-01-18
【GitHub高星】AI Research Skills:一键赋予AI“博士级”科研能力,74项硬核技能库开源!
2025-11-21
2025-12-04
2026-01-04
2026-01-02
2025-11-20
2025-11-22
2025-11-19
2026-01-01
2025-12-21
2025-11-23
2026-02-03
2026-01-02
2025-11-19
2025-09-25
2025-06-20
2025-06-17
2025-05-21
2025-05-17