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)
相关推荐
东莞市云毅网络有限公司7 分钟前
客服记录里的问句怎么变成知识库条目:意图聚类的 Python 实现
python·sqlite·自动化运维·geo·数据监测
虎鲸不是鱼31 分钟前
【虎鲸进化论 02】三阶跃迁:Tab 补全 → Vibe Coding → Agent,人在每一层退到哪里
大数据·人工智能·大模型·llm·自进化agent
严谨的麻辣烫35 分钟前
为什么 API 接口偶尔报错,重试一次又恢复了?从 HTTP 连接池到 Keep-Alive 排查
python·网络协议·tcp/ip·http·性能优化
学Linux的语莫38 分钟前
uv的使用
python·uv
asdzx6740 分钟前
使用 Python 按页或节拆分 Word 文档
python·word
得物技术41 分钟前
动态规则的 Agent 实践:用确定性工程驾驭 LLM 的资产智能验收
人工智能·后端·llm
技术人生0011 小时前
Selenium 工程化模板(日志+异常截图,可直接复制使用)
python·selenium·测试工具
我的xiaodoujiao1 小时前
Django 基础知识详细图文教程 15-Django 内置Admin系统
后端·python·django
夜晚回家1 小时前
Python 变量入门详解 | 用 BMI 案例串起赋值、乘方与取整
android·python
千木SilvaMux1 小时前
LoRA 微调原理:两个低秩矩阵改了模型的哪一层
llm·api