AI Agent爆火后,MCP协议为什么如此重要!

Hello, 大家好,我是程序员海军, 全栈开发 |AI爱好者独立开发

随着AI Agent 爆火,最近火出圈的MCP 到底是啥了,频繁出现在各大科技论坛和社交媒体上MCP,本来带你来了解一下什么是MCP,以及目前MCP 的应用案例,目前笔者,感受到了MCP 带来了魅力,简直效率爆表!

什么是MCP?

模型上下文协议 (Model Context Protocol, MCP)是一种专为 机器学习模型服务 设计的通信协议,旨在高效管理模型推理过程中的上下文信息(如会话状态、环境变量、动态配置等),解决传统协议在复杂AI场景下的局限性。

MCP本身并不处理复杂的逻辑;它只是协调AI模型与工具之间的数据和指令流动,MCP简化了AI模型与你的数据、工具和服务的交互方式。

MCP 具体可以干啥用

上下文感知推理

支持动态传递和持久化会话相关的上下文数据(例如用户历史行为、对话状态),使模型能够基于连续交互生成连贯结果。例如,在聊天机器人场景中,MCP会传递对话历史以确保回答的上下文相关性。

大白话: 比如客服机器人知道你之前退过货,不用每次都问你订单号

给每次对话分配一个"会话ID",存下聊天记录、用户偏好等

多模态数据兼容

统一处理文本、图像、传感器数据等多模态输入,通过 类型化数据通道 (Typed Data Channel)自动适配不同模型输入格式(如Tensor、JSON、Protobuf)。

比如你突然说:"用简单点的话解释",MCP会立刻告诉AI:"用户是小白,别用专业术语"

处理复杂任务 [辅助]

辅助自动化开发项目,自动化建模,自动化购物,自动化买票等等场景。

比如让AI帮你订机票,需要记住出发地、时间、航空公司偏好,一步步完成。

为什么需要MCP

随着 LLM的发展日益普及 ,一个规范的 模型上下文协议变的越来越重要 。 不同的开发者和组织可能会开发出不同的上下文管理方法, MCP 旨在提供一套通用的规则和格式,以确保不同系统之间的互操作性。

1️⃣ 目前模型训练数据的局限性

  • LLMs 虽然在大量数据上进行了训练,但它们无法预知所有特定场景的需求。
  • MCP 的目标是让 LLMs 能够动态地访问所需的上下文信息,从而执行更广泛的任务。

在处理特定行业或领域的任务时,模型需要访问该领域的专业知识和数据。MCP 能够提供一种标准化的方式,将这些信息传递给模型。

2️⃣ 提高模型的准确性和相关性

  • 上下文信息可以帮助模型更好地理解用户的意图,并生成更准确、更相关的回复。 \
  1. 在对话系统中,MCP 可以管理对话历史,确保模型能够记住之前的交互,并生成连贯的回复。
  2. 在处理文档时,MCP 可以将相关的文档内容作为上下文提供给模型,以便模型能够进行准确的问答或摘要。

3️⃣ 处理更复杂的应用场景

随着 LLM 的应用越来越广泛,它们需要处理更复杂的任务 :

  • 需要访问多个数据源的任务 (例如访问多个知识库)
  • 需要执行特定操作的任务
  • 需要与外部系统交互的任务 (例如最近的 Blender MCP 结合 Claude 对话生成3D模型)

MCP 可以提供一种标准化的方式,让模型能够处理这些复杂的任务。

MCP 的核心在于

  • 增强 LLM 的功能和应用范围
  • 提高 LLM 的性能和准确性。
  • 促进 LLM 的标准化和互操作性。

MCP协议讲解

MCP核心概念 :

主要目标:

能够让 LLM 能够更方便、更安全地与外部世界连接,获取它们需要的各种信息和能力。

核心功能:

  • 上下文管理: MCP 协议旨在标准化和优化模型上下文的管理和传递,从而提高模型的性能和应用范围。
  • 外部数据集成: 使 LLMs 能够安全地访问和操作本地及远程数据,为 LLMs 应用提供连接万物的接口。
  • 工具调用: MCP 协议能够为 LLMs 提供执行具体操作的能力,例如调用 API、访问数据库等。

架构:

** MCP 遵循客户端-服务器架构,包含以下核心组件:**

  • MCP 主机(MCP Hosts): 发起请求的 LLM 应用程序,例如聊天机器人、AI 工具等。
  • MCP 客户端(MCP Clients):* * 在主机程序内部,与 MCP 服务器保持连接。**
  • MCP 服务器(MCP Servers): 提供数据、工具和服务的外部系统。



20个关键词了解

关键词 价值 场景 应用
MCP 标准化LLM与数据源的整合,减少定制整合需求 需要访问外部数据的AI应用,如聊天机器人 AI助手、聊天机器人、AI驱动的IDE
LLM 提供自然语言处理能力,生成和理解文本 文本补全、问答、内容生成场景 文本补全工具、客户服务聊天机器人
主机(Host) 管理多个客户端实例,协调客户端与服务器交互 AI应用的集中管理,如桌面应用 Claude Desktop等AI桌面应用的协调中心
客户端(Client) 与服务器1:1连接,处理协议协商和消息路由 主机与特定服务器的通信桥梁 MCP架构中的通信组件,如Claude客户端
服务器(Server) 暴露资源、工具、提示等特定能力 为LLM提供数据或功能,如文件访问 Filesystem Server、GitHub Server等
资源(Resources) 可供LLM访问的只读数据,如文件、文档 访问本地文件、数据库或云存储内容 LLM查询文档、检索数据库信息
工具(Tools) LLM可调用的动作或函数,如运行SQL查询 需要执行特定任务,如API调用、数据处理 自动化任务,如财务数据分析、网页抓取
提示(Prompts) 指导LLM行为或提供上下文的预定义文本 定制LLM响应或提供特定指令 针对不同用例调整AI输出,如客户支持提示
采样(Sampling) 主机协调LLM与多个服务器的交互,聚合上下文 为复杂查询从多源数据收集信息 综合多源数据为LLM提供全面上下文
JSON-RPC 用于客户端与服务器消息交换的通信协议 分布式系统中的标准化消息传递 MCP中的消息交互,如请求和响应
能力(Capabilities) 客户端和服务器支持的声明功能,用于功能协商 确保会话中双方支持特定功能 MCP会话中的功能协商,如工具支持
会话(Sessions) 保持状态的客户端与服务器连接,允许持续交互 需要记忆先前交互的长期任务 对话式AI、连续多步骤任务
通知(Notifications) 用于事件或更新的单向消息,如资源变化 保持客户端了解服务器端实时更新 AI应用中的实时状态更新,如文件修改
安全(Security) 确保数据访问和操作的控制与安全机制 保护敏感数据,防止未经授权访问 MCP实现中的访问控制、数据加密
授权(Authorization) 验证并授予资源或操作的访问权限 确保只有授权用户或进程可执行操作 MCP服务器中的用户认证、角色访问控制
上下文(Context) 提供给LLM以告知其响应的数据 LLM需要额外信息以提供准确输出的交互 个性化响应、领域特定知识应用
有状态(Stateful) 在会话中保持状态以保留上下文 需要记住先前交换或数据的交互 对话式AI、多步骤过程,如任务跟踪
协议协商(Protocol Negotiation) 客户端和服务器初始商定功能和能力 建立具有已知能力的会话 确保交互开始时的兼容性和功能
消息类型(Message Types) 协议中的请求、响应、通知三种消息类型 区分协议中不同种类的通信 MCP实现中的消息管理和路由
设计原则(Design Principles) 指导MCP设计的原则,如易建服务器、高组合性 理解MCP架构和功能的理由 开发者和架构师设计或扩展MCP系统时使用

MCP 主要5个方面

下面 ,我们来从消息格式、生命周期、传输协议、版本和额外的工具类这几个方面来深入探讨 Model Context Protocol (MCP) 协议

消息格式

MCP 协议通常采用结构化的数据格式进行消息传递,例如 JSON。JSON 格式具有良好的可读性和易于解析的特点,非常适合在不同系统之间进行数据交换。

JSON-RPC 2.0是MCP协议普遍会使用的一种消息格式。它定义了统一的请求和响应格式,可以使不同系统之间的通信更加的标准化。


生命周期

MCP 协议的生命周期涉及到客户端和服务器之间的连接建立、数据交换和连接关闭等过程。

** 生命周期包括以下几个阶段 :**


传输协议

MCP 协议可以使用多种传输协议,常见的包括:

  • WebSocket:提供双向、实时的通信能力,适合需要实时数据交换的场景。
  • HTTP/HTTPS:适用于简单的请求-响应模式,但实时性相对较差。

版本

MCP 协议的版本管理非常重要,它可以确保不同版本的客户端和服务器之间能够兼容。

版本管理通常包括以下几个方面:

  • 版本号:为每个版本的协议分配唯一的版本号。
  • 兼容性:明确定义不同版本之间的兼容性规则,例如向前兼容、向后兼容等。
  • 版本协商:在连接建立时,客户端和服务器之间进行版本协商,以确定使用的协议版本。


额外的工具类

为了简化 MCP 协议的开发和使用,通常会提供一些额外的工具类 。

如何使用MCP

不同 <font style="color:rgb(31, 31, 31);">Client</font> 对 MCP 能力的支持是不一样,选择适合的自己的场景 <font style="color:rgb(31, 31, 31);">Client</font> 即可

下面是 <font style="color:rgb(31, 31, 31);">MCP</font>官网Client 集合各个表现:

为什么使用MCP而不是传统API ?

特性 传统 API MCP (Model Context Protocol)
设计目标 提供功能性数据访问 为 LLM 提供上下文和外部数据集成
应用场景 通用软件应用,Web 服务集成,移动应用开发等 大型语言模型 (LLM) 应用,对话系统,知识图谱应用等
交互方式 请求-响应 上下文感知、动态交互
核心功能 预定义功能,数据获取,功能调用等 上下文管理,外部数据集成,工具调用
主要使用者 软件开发者 AI 模型 (LLM)
上下文感知 通常不具备上下文感知能力 具备上下文感知能力,能够理解对话历史、用户意图等
动态性 功能和数据结构预先定义,静态 允许 LLM 动态访问外部数据和工具,动态
智能化 功能性,独立性强 智能化,能够更智能地与外部世界交互
实时性 实时性一般,取决于API的设计 可以支持实时双向通信,例如使用WebSockets
整合难度 每个API单独整合 一次标准化整合,能够连接多个服务
安全性与控制 每个API单独定义 所有工具统一标准,可以统一进行安全和权限控制
扩展性 需要额外开发 即插即用,随着AI生态系统的发展,可以轻松添加新功能

目前市场MCP应用

Blender MCP - 3D 建模

实现方式:使用开源项目 blender-mcp(GitHub 地址:github.com/ahujasid/bl...),包含服务器端与 Blender 插件.

Supabase MCP - 数据与数据库集成

通过MCP将Supabase数据库连接到Cursor,自动化创建管理数据库。

Figma MCP - Figma 设计稿转换为代码

最后

MCP 提供了将 AI 代理与模型同外部数据及工具相集成的统一且标准化之方式。其绝非仅仅是一个全新的 API ,实乃一个强大的连接框架,能够达成智能、动态且富有上下文的 AI 应用。

🔗资源:

MCP 官方网站: modelcontextprotocol.io/introductio...

MCP 内容规范: spec.modelcontextprotocol.io/specificati...

MCP Servers合集: github.com/modelcontex...

MCP Client 应用集合: modelcontextprotocol.io/clients

相关推荐
烂蜻蜓16 分钟前
深入理解 Vue 3 项目结构与运行机制
前端·javascript·vue.js
Landy_Jay18 分钟前
深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)
人工智能·深度学习
淘小欣22 分钟前
10分钟打造专属AI助手:用ms-swift实现自我认知微调
开发语言·人工智能·ai·swift·模型微调
han_hanker1 小时前
一个普通的vue权限管理方案-菜单权限控制
前端·javascript·vue.js
Y1nhl1 小时前
搜广推校招面经五十五
人工智能·python·深度学习·机器学习·广告算法·推荐算法·搜索算法
老大白菜2 小时前
lunar是一款无第三方依赖的公历 python调用
前端·python
liufangshun4 小时前
【DeepSeekR1】怎样清除mssql的日志文件?
数据库·人工智能·sqlserver
深圳市快瞳科技有限公司4 小时前
AI鸟类识别技术革新生态监测:快瞳科技如何用“智慧之眼”守护自然?
人工智能·科技
混血哲谈4 小时前
如何使用webpack预加载 CSS 中定义的资源和预加载 CSS 文件
前端·css·webpack
ModelWhale4 小时前
和鲸科技受邀赴中国气象局气象干部培训学院湖南分院开展 DeepSeek 趋势下的人工智能技术应用专题培训
人工智能·科技