MCP协议与实践

一、MCP协议是什么?

MCP(模型上下文协议)是一个开放协议,用于标准化应用程序向大语言模型(LLM)提供上下文的方式。MCP提供了一种将AI模型连接不同数据源和工具的标准化接口。

  • 应用程序:集成了LLM的县体应用。包括各家大模型的在线对话网站、集成了大模型的IDE(如IClaudedesktop)、各种Agent(比如 Cursor就是一个Agent)、以及其他接入了大模型的普通应用。
  • 上下文:指的是模型在决策时可访问的所有信息,如当前用户输入、历史对话信息、外部工具(tool)信息、外部数据源(resource)信息、提示词(prompt)信息等等.

MCP 中的「上下文」不是指 prompt,而是:

👉 模型在"做事"时,可以持续感知、访问、使用的外部世界状态与能力集合。

它解决的是:

"模型如何在多轮、多任务、多工具下,保持对外部世界的一致理解"。

MCP 中的「上下文」可以拆成 3 层:

  1. 能力上下文:描述模型当前"能做什么",即可被发现和调用的工具、API 与权限集合;
  2. 状态上下文:描述模型"正在什么状态下工作",如当前项目、文件系统、数据库连接或任务进度;
  3. 执行上下文:记录模型"刚刚做了什么",包括已调用的工具、返回结果及执行成功或失败信息。

MCP 负责搭建一个稳定、真实、可持续的执行环境,并把这个环境的能力和状态以模型可理解的方式暴露出来;模型只负责在这个环境中做决策。

如果没有 MCP,上下文是"模型记住的世界";有了 MCP,上下文是"模型正在运行的世界"。

MCP的组成部分

  • MCP Host:协调和管理个或多个的人工智能应用程序。
  • MCP Client:一个组件,用于维护与MCP服务器的连接,并从MCP服务器获取上下文,供MCP主机使用。
  • MCP Server:一个为MCP Client提供上下文的程序。

对比

  1. 在function calling中调用外部工具,执行外部工具的永远是本地后端程序。在存在繁琐的代码搬运,代码语言的鸿沟,甚至有工具代码没有开源。
  2. Function calling解决的是大模型与AI应用程序之间的对话问题。它的工作是传递给大模型一个工具清单,然后模型返回一个文本格式的调用指令。Function call只负责告诉大模型有哪些工具,不关心这些工具在哪里,怎么调用。
  3. MCP解决的是AI应用程序和MCP Server之间的连接问题。它关系的是AI应用程序怎么知道mcp server有什么函数,在拿到模型返回的指令后,怎么去具体执行这个调用。
  4. MCP 没有替代 Function Calling。
    MCP 不负责
    • 定义函数参数格式;
    • 决定模型是否要调用某个函数;
    • 生成 function_call / tool_call JSON。
    • 这些依然是 模型侧能力(OpenAI / DeepSeek / Claude 内部实现)
  5. MCP 解决的问题
    MCP 解决的是 "模型运行时环境" 的标准化问题:
    • 模型现在能看到哪些工具
    • 这些工具的 schema / 权限 / 作用范围
    • 工具执行后的 状态是否持续
    • 不同模型能否用 同一套工具上下文
      👉 它是一个 上下文与能力托管协议(Runtime Context Protocol)
相关推荐
二哈喇子!2 小时前
Python报错:SyntaxError: invalid character ‘,‘ (U+FF0C)
python
走遍西兰花.jpg2 小时前
hive如何使用python脚本
数据仓库·hive·hadoop·python
小镇学者2 小时前
【python】python有必要像go或者nodejs那样做多版本切换吗?
开发语言·python·golang
2501_919219042 小时前
画册设计尺寸在不同设备(手机/平板)显示差异如何处理?
python·智能手机·电脑
子午3 小时前
【2026原创】眼底眼疾识别系统~Python+深度学习+人工智能+CNN卷积神经网络算法+图像识别
人工智能·python·深度学习
ACERT3333 小时前
10.吴恩达机器学习——无监督学习01聚类与异常检测算法
python·算法·机器学习
小北方城市网3 小时前
Spring Security 认证授权实战(JWT 版):从基础配置到权限精细化控制
java·运维·python·微服务·排序算法·数据库架构
诗词在线3 小时前
从算法重构到场景复用:古诗词数字化的技术破局与落地实践
python·算法·重构
Vv1997_3 小时前
基于java.awt 绘制 自定义图片算式验证码
java·开发语言·python