文章目录
- 前言
-
- 一、MCP核心概念总结
- 二、MCP作用与意义
- 三、MCP架构核心组件
- 四、MCP三种使用方式对比
- [五、Spring AI MCP开发流程](#五、Spring AI MCP开发流程)
-
- [5.1 服务端开发](#5.1 服务端开发)
- [5.2 客户端开发](#5.2 客户端开发)
- 六、MCP部署方案对比
- 七、MCP安全性分析
前言
若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力!有问题请私信或联系邮箱:funian.gm@gmail.com

一、MCP核心概念总结
核心概念 | 定义 | 核心作用 |
---|---|---|
Resources(资源) | 服务端提供的文本、文件、数据库记录等数据 | 为AI提供最新外部知识,丰富上下文 |
Prompts(提示词) | 服务端定义的可复用提示词模板和工作流 | 标准化AI交互模式,简化用户操作(如斜杠命令) |
Tools(工具) | 服务端提供的可调用函数 | 扩展AI能力(计算、查询、外部系统交互),是核心特性 |
Sampling(采样) | 服务端通过客户端向大模型发送生成请求(反向请求) | 实现复杂智能代理行为,保障用户控制和数据隐私 |
Roots(根目录) | 定义服务器可访问的文件系统位置 | 限制访问范围,提供安全边界,防止恶意文件访问 |
Transports(传输) | 定义客户端与服务器的通信方式(Stdio本地通信、SSE网络实时通信) | 确保不同环境下的可靠信息交换 |
二、MCP作用与意义
核心价值 | 具体说明 |
---|---|
增强AI能力 | 接入外部服务实现网页搜索、数据库查询、API调用等功能 |
标准化规范 | 类似HTTP协议,降低开发者理解成本,避免重复开发 |
构建生态体系 | 类比NPM、Maven仓库,形成服务市场,促进资源共享(如MCP.so、阿里云百炼) |
三、MCP架构核心组件
组件 | 核心职责 | 支持特性 |
---|---|---|
客户端(Client) | 与服务端建立连接、协议版本匹配、数据传输、工具/资源管理 | 根管理、采样控制、同步/异步操作;支持Stdio(本地)、SSE(远程)传输 |
服务端(Server) | 提供工具/资源、处理客户端请求、日志记录、多客户端连接支持 | 多传输方式(Stdio、Servlet/WebFlux/WebMVC SSE),与客户端完全解耦 |
四、MCP三种使用方式对比
使用方式 | 操作场景 | 关键步骤 | 优缺点 |
---|---|---|---|
云平台使用 | 快速集成现成服务(如阿里云百炼) | 登录平台→开通目标服务(如高德地图)→添加至智能体→测试验证 | 优点:操作简便;缺点:局限性大,难直接用于自定义代码 |
软件客户端使用 | 本地AI工具调用(如Cursor) | 市场获取服务→安装依赖→申请API Key→配置客户端→测试 | 优点:灵活度高;缺点:需本地部署服务,配置成本高 |
Spring AI程序使用 | 自定义Java项目集成 | 引入依赖→配置mcp-servers.json→编写客户端配置→开发测试代码→单元测试 | 优点:可定制化强,适配Spring生态;缺点:需具备后端开发能力 |
五、Spring AI MCP开发流程
5.1 服务端开发
步骤 | 核心操作 | 关键代码/依赖 |
---|---|---|
1. 依赖引入 | 选择对应SDK(WebMVC推荐) | spring-ai-mcp-server-webmvc-spring-boot-starter |
2. 配置文件 | 配置服务名称、版本、传输方式(Stdio/SSE) | 多环境配置(stdio/webmvc),指定端口 |
3. 服务开发 | 用@Tool注解标记工具方法,注册ToolCallbackProvider Bean | 实现图片搜索等具体功能,解析第三方API响应 |
4. 测试打包 | 单元测试验证功能,Maven打包为Jar包 | 测试工具方法可用性,生成可部署包 |
5.2 客户端开发
步骤 | 核心操作 | 关键配置/代码 |
---|---|---|
1. 依赖引入 | 引入客户端Starter依赖 | spring-ai-mcp-client-spring-boot-starter |
2. 配置方式 | 选择Stdio(本地Jar包)或SSE(远程服务地址) | 配置服务路径、参数、API Key |
3. 测试验证 | 注入ToolCallbackProvider,通过ChatClient调用工具 | 编写测试用例,验证服务调用结果 |
六、MCP部署方案对比
部署方式 | 适用场景 | 优缺点 |
---|---|---|
本地部署 | Stdio传输、小型项目 | 优点:配置简单;缺点:服务多了管理繁琐 |
远程部署 | SSE传输、企业级应用 | 优点:可共享访问;缺点:需运维服务器 |
Serverless部署 | 轻量服务、降本需求 | 优点:免服务器管理、弹性扩容、按使用付费;缺点:受平台限制 |
第三方平台提交 | 提升技术影响力、开源共享 | 优点:获取流量和曝光;缺点:需符合平台规范,存在安全审核风险 |
七、MCP安全性分析
类别 | 核心内容 |
---|---|
安全现状 | 协议安全性较弱,存在隐私泄露、权限泄露、恶意脚本执行等风险 |
问题成因 | 1. 信息不对称(用户无法知晓服务源码);2. 上下文隔离不足(类似SQL注入);3. 大模型缺乏恶意指令识别;4. 缺乏版本控制和更新通知 |
改进期望 | 1. 优化工具定义,区分功能描述与执行指令;2. 完善权限控制和用户授权;3. 建立恶意指令检测机制;4. 规范服务市场审计流程 |