一、MCP协议是什么?
MCP(模型上下文协议)是一个开放协议,用于标准化应用程序向大语言模型(LLM)提供上下文的方式。MCP提供了一种将AI模型连接不同数据源和工具的标准化接口。
- 应用程序:集成了LLM的县体应用。包括各家大模型的在线对话网站、集成了大模型的IDE(如IClaudedesktop)、各种Agent(比如 Cursor就是一个Agent)、以及其他接入了大模型的普通应用。
- 上下文:指的是模型在决策时可访问的所有信息,如当前用户输入、历史对话信息、外部工具(tool)信息、外部数据源(resource)信息、提示词(prompt)信息等等.
MCP 中的「上下文」不是指 prompt,而是:
👉 模型在"做事"时,可以持续感知、访问、使用的外部世界状态与能力集合。
它解决的是:
"模型如何在多轮、多任务、多工具下,保持对外部世界的一致理解"。
MCP 中的「上下文」可以拆成 3 层:
- 能力上下文:描述模型当前"能做什么",即可被发现和调用的工具、API 与权限集合;
- 状态上下文:描述模型"正在什么状态下工作",如当前项目、文件系统、数据库连接或任务进度;
- 执行上下文:记录模型"刚刚做了什么",包括已调用的工具、返回结果及执行成功或失败信息。
MCP 负责搭建一个稳定、真实、可持续的执行环境,并把这个环境的能力和状态以模型可理解的方式暴露出来;模型只负责在这个环境中做决策。
如果没有 MCP,上下文是"模型记住的世界";有了 MCP,上下文是"模型正在运行的世界"。
MCP的组成部分
- MCP Host:协调和管理个或多个的人工智能应用程序。
- MCP Client:一个组件,用于维护与MCP服务器的连接,并从MCP服务器获取上下文,供MCP主机使用。
- MCP Server:一个为MCP Client提供上下文的程序。

对比
- 在function calling中调用外部工具,执行外部工具的永远是本地后端程序。在存在繁琐的代码搬运,代码语言的鸿沟,甚至有工具代码没有开源。
- Function calling解决的是大模型与AI应用程序之间的对话问题。它的工作是传递给大模型一个工具清单,然后模型返回一个文本格式的调用指令。Function call只负责告诉大模型有哪些工具,不关心这些工具在哪里,怎么调用。
- MCP解决的是AI应用程序和MCP Server之间的连接问题。它关系的是AI应用程序怎么知道mcp server有什么函数,在拿到模型返回的指令后,怎么去具体执行这个调用。
- MCP 没有替代 Function Calling。
MCP 不负责 :- 定义函数参数格式;
- 决定模型是否要调用某个函数;
- 生成 function_call / tool_call JSON。
- 这些依然是 模型侧能力(OpenAI / DeepSeek / Claude 内部实现)
- MCP 解决的问题
MCP 解决的是 "模型运行时环境" 的标准化问题:- 模型现在能看到哪些工具
- 这些工具的 schema / 权限 / 作用范围
- 工具执行后的 状态是否持续
- 不同模型能否用 同一套工具上下文
👉 它是一个 上下文与能力托管协议(Runtime Context Protocol)
