MCP 介绍
在上篇文章中,我们已经了解什么是 Function Call,并在 Spring AI 项目中实践了一波,让 AI 大模型能够实时获取当前日期,以及天气情况。本小节中,我们再来了解一下更高级的 MCP 功能。
什么是 MCP?
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司于 2024 年提出的开放标准协议,旨在解决大语言模型(LLM)与外部工具和数据源的高效、安全交互问题。它通过标准化接口,让 AI 模型能像使用'USB 接口'一样,连接各类外部资源,如数据库、第三方 API、文件系统等等,从而突破静态训练数据的限制,实现动态任务执行。
其优势如下:
- 生态互操作性:任何支持 MCP 的大模型,均可接入现有工具生态圈,官方和社区现已提供超 1100 个 MCP 服务,覆盖 GitHub、Slack、AWS 等平台,避免'重复造轮子';
- 动态上下文管理:支持多轮对话状态保持。例如当用户要求'分析上周销售数据并对比去年同期'时,MCP 能自动关联历史查询上下文,无需重复说明时间范围;
- 企业级安全设计:通过会话加密和权限分级(如限制人事部门访问其他部门的数据),解决敏感数据暴露的风险;
- 降低开发成本:开发者只需开发一次 MCP 服务,即可让所有兼容模型调用,无需多次开发
应用场景
下面列举一些 MCP 的应用场景:

MCP 架构
MCP 采用经典的'客户端 - 服务端'架构,如下图所示:

- Host 主机:通常为 AI 应用,比如 Cursor,Trae 等代码编辑器或其他应用。主机负责接收用户的问题与指令,再调用 AI 大模型,当大模型觉得需要调用外部工具时,Host 主机会主动调用 MCP 客户端。
- MCP 客户端:客户端通常内置于主机中,负责与 MCP 服务端建立连接、发送请求和接收请求。我们可以把 MCP 客户端理解为公司'前台小姐姐',为外来人员提供服务,有啥事都可以咨询她,由她将任务转交给不同部门去处理。
- MCP 服务端:MCP 服务器可以看做是一个'工具箱'或'数据源',供 MCP 客户端来调用,例如访问文件系统、数据库查询、操作浏览器等等。MCP 服务器负责执行具体的操作,如调用工具或访问数据,再将结果返回给 MCP 客户端。
通过上图,Host 主机通过 MCP 客户端,可以分别同多个 MCP 服务端进行通信,每次连接都使用统一的 MCP 协议,由于统一了标准协议,当我们想让 AI 大模型接入一种新的'工具',只需再启动一个对应的 MCP 服务器并连接该'工具'提供的接口即可,非常方便,主机本身不需要做大的改动。另外,多个 MCP 服务器可以同时运行,当大模型觉得自己无法完成某项任务时,就可以让这些 MCP 服务器来协助。
举个栗子,我们向主机提问'我的 E:/ 盘下,有哪些文件?',比如 Cursor 编辑器,整体的处理流程大致如下:
- 我们向 Cursor 提问;
- Cursor 调用大模型来分析我们的问题,由大模型决定是否需要访问本地文件系统;
- 若需要,主机内置的 MCP 客户端被激活,与本地文件系统的 MCP 服务器建立连接;
- MCP 客户端向 MCP 服务端发送请求,想要获取 E:/ 盘下的文件列表;
- 本地文件系统 MCP 服务器执行访问操作,获取文件列表,并将结果返回给 MCP 客户端;
- MCP 客户端再将结果发送给 AI 大模型;
- AI 大模型再以自然语言的方式,告诉我们最终结果;
和 Function Call 的区别
你可能疑问,MCP 和 Function Call 有啥区别呢?它两属于不同的技术手段,区别大致如下:








