【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. 规范服务市场审计流程
相关推荐
冬奇Lab3 小时前
Agent 系列(23):Web Agent——让 Agent 真正浏览网页
人工智能·llm·agent
冬奇Lab3 小时前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
candyTong3 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
IT_陈寒6 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
唐某人丶8 小时前
从画架构图开始:架构分析与进阶指南
架构
哥布林学者8 小时前
深度学习进阶(三十一)FlashAttention:IO 感知的精确注意力
机器学习·ai
jooloo10 小时前
Codex 间歇性 400 之谜:一条对话里,它为什么有时候用 chat/completions,有时候切到 responses?
人工智能
用户51914958484510 小时前
OpenSSL PKCS#12 PBMAC1 堆栈缓冲区溢出漏洞 (CVE-2025-11187) 分析与验证
人工智能·aigc