什么是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 地址:https://github.com/ahujasid/blender-mcp),包含服务器端与 Blender 插件.

Supabase MCP - 数据与数据库集成

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

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

最后

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

资源:

MCP 官方网站: https://modelcontextprotocol.io/introduction

MCP 内容规范: https://spec.modelcontextprotocol.io/specification/2024-11-05/

MCP Servers合集: https://github.com/modelcontextprotocol/servers

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

AI Agent爆火后,MCP协议为什么如此重要!的更多相关文章

  1. Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议

    Nacos是阿里巴巴开源的服务发现与配置管理项目,本次发布的1.1.4版本,主要带来的是与Istio的对接功能,使用的是Istio最新的MCP协议.本文将介绍包括这个功能在内的新版本发布的功能. 升级 ...

  2. 学习AI之NLP后对预训练语言模型——心得体会总结

    一.学习NLP背景介绍:      从2019年4月份开始跟着华为云ModelArts实战营同学们一起进行了6期关于图像深度学习的学习,初步了解了关于图像标注.图像分类.物体检测,图像都目标物体检测等 ...

  3. 游戏AI之初步介绍(0)

    目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...

  4. 花十分钟,让你变成AI产品经理

    花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品 ...

  5. puppet(5)-master/agent模式

    master/agent模式的工作流程 agent每隔固定时长会向master端发送nodename(自己的节点名,节点名至关重要)和 facts ,并且向服务器端请求自己的catalog. mast ...

  6. 08 Zabbix Item类型之Zabbix agent类型

    点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 08 Zabbix Item类型之Zabbix agent类型 Zabbix agent类型的item是使用部署在服务器端的age ...

  7. Raft算法和Gossip协议

    简单介绍下集群数据同步,集群监控用到的两种常见算法. Raft算法 raft 集群中的每个节点都可以根据集群运行的情况在三种状态间切换:follower, candidate 与 leader.lea ...

  8. 增强学习训练AI玩游戏

    1.游戏简介 符号A为 AI Agent. 符号@为金币,AI Agent需要尽可能的接取. 符号* 为炸弹,AI Agent需要尽可能的躲避. 游戏下方一组数字含义如下: Bomb hit: 代表目 ...

  9. Skywalking光会用可不行,必须的源码分析分析 - Skywalking Agent &插件解析

    3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本 ...

  10. 名校AI课推荐 | UC Berkeley《人工智能导论》

    深度学习具备强感知能力但缺乏一定的决策能力,强化学习具备决策能力但对感知问题束手无策,因此将两者结合起来可以达到优势互补的效果,为复杂系统的感知决策问题提供了解决思路. 今天我们推荐这样一门课程--U ...

随机推荐

  1. 对CGAL5.0及以后版本编译的说明

    CGAL5.0及以后版本只有头文件,没有库文件了.这意味着CGAL无需编译,只需安装好CGAL的依赖项即可.类似Eigen库.

  2. [转]CLion 2022.2.4破解教程详细图解mac,windows,linux均适用(2022.11.10亲测有效)

    前言 此教程为CLion 2022.2.4 破解教程,且此教程以及下面提供的破解补丁适用与2022.2以后的新版本.2022年11月10日亲测有效,mac与windows均测试完美破解 CLion   ...

  3. 企业微信的IM架构设计揭秘:消息模型、万人群、已读回执、消息撤回等

    本文作者潘唐磊,腾讯WXG(微信事业群)开发工程师,毕业于中山大学.内容有修订. 1.内容概述 本文总结了企业微信的IM消息系统架构设计,阐述了企业业务给IM架构设计带来的技术难点和挑战,以及技术方案 ...

  4. keycloak~巧用client-scope实现token字段和userinfo接口的授权

    keycloak中的client-scope允许你为每个客户端分配scope,而scope就是授权范围,它直接影响了token中的内容,及userinfo端点可以获取到的用户信息,这块我们可以通过自定 ...

  5. RocksDB-键值存储

    存储和访问数百PB的数据是一个非常大的挑战,开源的RocksDB就是FaceBook开放的一种嵌入式.持久化存储.KV型且非常适用于fast storage的存储引擎.   传统的数据访问都是RPC, ...

  6. w3cschool-网站建设

    W3C 简介 什么是 W3C? W3C 指万维网联盟(World Wide Web Consortium) W3C 创建于1994年10月 W3C 由 Tim Berners-Lee 创建 W3C 是 ...

  7. CP56Time2A时间转换

    * CP56Time2A时间格式 该时标格式使用7个字节来表示时间信息,上图的表中体现为--从最左侧8所在的行开始,到下面56所在的行,共7行.每一行表示一个字节,每行从右向左依次是该字节的第一位(最 ...

  8. 使用SOUI4的脚本模块

    SOUI4.1提供了全新的lua脚本模块支持,使用这个新版本的脚本模块,可以轻松将所有UI布局及业务逻辑全部使用XML+LUA实现,基本上就是一个超轻型浏览器. SOUI4.0相对于SOUI3最大的区 ...

  9. 数据存储“取经路”,HBlock轻松“渡”!

    近日,天翼云联合权威科技媒体InfoQ举办了以"新存储,更轻量"为主题的线上技术分享会.天翼云存储产品线总监武志民讲解了HBlock的创新设计和技术. 高性能·高可用·高可靠 自研 ...

  10. 效率起飞!天翼云并行文件服务HPFS高效应对AI时代大模型训练存储挑战!

    国内外AI大模型层出不穷,训练数据复杂程度更是呈指数级增加.如今,在万亿级参数时代,单个资源池已无法满足大模型训练场景中动辄PB级的数据存储量,对于企业来说,启用多个资源池构成的分布式存储势在必行. ...