什么是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驱动的IDELLM提供自然语言处理能力,生成和理解文本文本补全、问答、内容生成场景文本补全工具、客户服务聊天机器人主机(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 协议可以使用多种传输协议,常见的包括:

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

版本

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

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

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

额外的工具类

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

如何使用MCP

<font style="color:rgb(31, 31, 31);">Client</font><font style="color:rgb(31, 31, 31);">Client</font> <font style="color:rgb(31, 31, 31);">MCP</font>

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

特性传统 APIMCP (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