mcp学习笔记(一)-mcp核心概念梳理

作者:Shawn_Shawn日期:2026/2/9

Model Context Protocol (MCP) ,即模型上下文协议,是一个开放标准和开源框架,旨在为大型语言模型(LLMs)应用提供一个标准化的接口,使其能够无缝集成和交互外部数据源、工具和系统。

其主要作用为:

  1. 提供标准化接口,让LLMs(或基于LLMs构建的AI代理)能够连接到各种外部资源,如数据库,文件系统,Service Api,爬虫等资源,获取到数据。
  2. LLMs可以实时与mcp双向交互,及时更新LLM中的上下文信息并能够即时执行LLM发出的指令,完成任务。
  3. 解决碎片化:统一不同LLM和服务的交互方式,能够灵活切换不同的 LLM 提供商和厂商,简化了开发人员构建AI应用或将AI功能集成到现有系统中的复杂性。
  4. 数据安全:在你的基础设施内安全地处理数据

mcp架构

角色

MCP 核心采用客户端-服务器架构

  • MCP Hosts: 如 Claude Desktop、IDE 或 AI 工具,希望通过 MCP 访问数据的程序
  • MCP Clients: 维护与服务器一对一连接的协议客户端
  • MCP Servers: 轻量级程序,通过标准的 Model Context Protocol 提供特定能力为 clients 提供resources、tools 和 prompts

分层

数据层

数据层实现了一个基于 JSON-RPC 2.0 的交互协议,其主要作用是定义 MCP 客户端和 MCP 服务端之间的架构和语义。

  • 生命周期管理:处理客户端和服务端之间的连接初始化、能力协商和连接终止
  • 核心源语:定义了客户端和服务端可以相互提供的内容。这些原语指定了可以与 AI 应用共享的上下文信息类型以及可以执行的操作范围。
  • 实用特性:支持额外功能,如用于实时更新的“通知”和用于长时间运行操作的“进度跟踪”
生命周期管理

MCP 是一个有状态协议需要生命周期管理。生命周期管理的目的是协商客户端和服务端都支持的能力。

核心源语
Server层源语
  • 工具 (Tools) :AI 应用可以调用以执行操作的可执行函数(例如:文件操作、API 调用、数据库查询)
  • 资源 (Resources) :为 AI 应用提供上下文信息的数据源(例如:文件内容、数据库记录、API 响应)
  • 提示词 (Prompts) :帮助构建与语言模型交互的可重用模板(例如:系统提示词、少样本示例)

每种原语类型都有关联的发现 ( */list)、获取 ( */get) 以及在某些情况下的执行 (tools/call) 方法。MCP 客户端将使用 */list 方法来发现可用的原语。例如,客户端可以先列出所有可用工具 (tools/list) 然后执行它们。这种设计允许列表是动态的。

Client层源语
  • 采样 (Sampling) :允许服务端请求客户端 AI 应用进行语言模型补全。当服务端作者想要访问语言模型,但希望保持模型独立且不愿在 MCP 服务端中包含语言模型 SDK 时,这非常有用。他们可以使用 sampling/complete 方法请求客户端 AI 应用进行语言模型补全。
  • 引导 (Elicitation) :允许服务端向用户请求额外信息。当服务端作者想要从用户那里获取更多信息或请求对某项操作的确认时,这非常有用。他们可以使用 elicitation/request 方法向用户请求额外信息。
  • 日志记录 (Logging) :使服务端能够向客户端发送日志消息,用于调试和监控目的。
实时特性

该协议支持实时通知,以实现服务端和客户端之间的动态更新。例如,当服务端的可用工具发生变化时——比如新功能上线或现有工具被修改——服务端可以发送工具更新通知,以告知已连接的客户端这些变化。通知以 JSON-RPC 2.0 通知消息的形式发送(不期望响应),并使 MCP 服务端能够向已连接的客户端提供实时更新。

传输层

定义使客户端和服务器之间实现数据交换的通信机制和通道,包括特定于传输的连接建立、消息框架和授权。有两个主流的transport方式:Stdio和Streamable HTTP transport

  • Stdio transport:使用标准输入/输出流进行同一机器上本地进程之间的直接进程通信,提供最佳性能而没有网络开销。
  • Streamable HTTP transport:使用HTTP POST进行客户端与服务器之间的消息传输,并可选地使用服务器推送事件实现流媒体功能。该传输方式支持远程服务器通信,并支持包括持有者令牌、API密钥和自定义头在内的标准HTTP身份验证方法。MCP建议使用OAuth来获取身份验证令牌。
Stdio
  • 定义:使用标准输入/输出流进行同一机器上本地进程之间的直接进程通信,提供最佳性能而没有网络开销。
  • 适用场景:Local Mcp Server,例如Claude Code连接localfilesystme server
  • 核心优势
    • 零网络依赖:无需配置网络环境,适合本地开发调试。
    • 高安全性:数据仅在本地流转,避免远程泄露风险。
    • 低延迟:直接通过内存或管道传输,性能高效。
  • 局限性:
    • 单进程限制:无法同时处理多客户端请求,扩展性差。
    • 仅限本地:无法支持分布式或远程资源访问。
Streamable HTTP
  • 定义:使用HTTP POST进行客户端与服务器之间的消息传输,并可选地使用服务器推送事件实现流媒体功能。该传输方式支持远程服务器通信,并支持包括持有者令牌、API密钥和自定义头在内的标准HTTP身份验证方法。。
  • 适用场景:Remote Mcp Server,例如连接高德地图MCP Server,获取天气的MCP Server等等
  • 核心优势
    • 无状态支持:去中心化、无强制要求持续连接,服务器可完全无状态运行,降低运维复杂度。
    • 基础设施兼容:与CDN、API网关、负载均衡无缝集成。
    • 灵活流式处理:支持按需切换为流式传输(如长文本生成进度推送)。
  • 局限性:
    • 实现复杂度:需处理会话ID和状态管理(可选)。
SSE

实际上mcp之前还支持SSE,现在官网上已经没有说明了,但是实际还是可以使用。

  • 定义:通过HTTP长连接实现远程通信。服务器需提供两个端点:
    • /sse(GET请求):建立长连接,接收服务器推送的事件流。
    • /messages(POST请求):客户端发送请求至该端点。
  • 核心优势
    • 支持远程访问:突破本地限制,适用于分布式部署。
    • 实时性:服务器可主动推送事件。
  • 局限性
    • 高可用性要求:服务器必须一直保持一个稳定、不中断的 SSE 长连接,否则通信就中断,如果中断了,也没有断点续连的能力,只能重新开始新的连接,之前的上下文可能会丢失。
    • 单向性缺陷:客户端需通过额外HTTP请求发送数据,无法实现双向流式交互。
    • 即将废弃:实际上mcp之前还支持SSE,现在官网上已经没有说明了,但是实际还是可以使用。官方计划用Streamable HTTP替代SSE。

SSE与Streamable的区别

  • Streamable移除了 /sse端点,所有客户端 → 服务端的消息都通过 /message发送
  • Streamable的所有客户端 → 服务端的请求都可以被服务器升级为 SSE,以发送通知或请求
  • Streamable的服务器可以选择建立会话 ID 以维护状态

mcp学习笔记(一)-mcp核心概念梳理》 是转载文章,点击查看原文


相关推荐


Vue-Data 属性避坑指南
发现一只大呆瓜2026/1/31

前言 在 Vue 开发中,我们经常会遇到“明明修改了数据,视图却不更新”的尴尬场景。这通常与 Vue 的初始化顺序及响应式实现原理有关。本文将从 Data 属性的本质出发,解析响应式“丢失”的根本原因及解决方案。 一、 组件中的 Data 为什么必须是函数? 在 Vue 2 中,根实例的 data 可以是对象,但组件中的 data 必须是函数。 核心原因:数据隔离 对象形式:JavaScript 中的对象是引用类型。如果 data 是对象,所有组件实例将共享同一个内存地址。修改实例 A 的数据


一文读懂强化学习
不惑_2026/1/21

从一个小故事说起 你还记得小时候学骑自行车吗? 没有人一上来就会骑。刚开始的时候,你歪歪扭扭地扶着车把,脚踩上踏板,车子晃了两下——砰,摔了。膝盖破了皮,疼得龇牙咧嘴。 但你爬起来,又试了一次。这回你发现,身体稍微往左倾的时候,车把往右打一点,好像能稳住。于是你又骑了几米远,然后——又摔了。 就这样摔了无数次之后,突然有一天,你发现自己居然能骑着车满院子跑了。那种感觉特别神奇,你也说不清楚具体是怎么学会的,但就是会了。 这个过程,其实就藏着强化学习最核心的秘密。 那到底啥是强化学习? 咱们先别


华为eNSP模拟器综合实验之- HRP(华为冗余协议)双机热备
以太浮标2026/1/13

核心高可用技术汇总 实现网络高可用性,主要依赖于以下几项技术在不同网络层级的协同工作: 技术领域 关键技术 主要作用 解决的核心问题 网关冗余​ VRRP(虚拟路由冗余协议) 为终端提供虚拟网关,实现网关设备的主备切换。 单一网关设备故障导致网络中断。 链路冗余与防环​ MSTP(多生成树协议) 在存在物理环路的二层网络中,通过逻辑阻塞端口,构建


Rust:用 dyn trait 需要注意 object safety 哦
Pomelo_刘金2026/1/5

1)Rust 为什么会有 object safety 1.1 dyn Trait 到底是什么 dyn Trait 是类型擦除后的动态派发:编译期不关心具体类型是谁,运行时靠 vtable(虚表) 找到对应实现。 一个 &dyn Trait / Box<dyn Trait> 本质上是“胖指针”: data pointer:指向真实对象数据 vtable pointer:指向虚表(里面是一堆函数指针 + 一些元信息) 关键点:vtable 里的每个函数入口,必须是“确定的、统一的签名”。因为不管


基于深度学习的河道垃圾检测系统设计(YOLOv8)
我是杰尼2025/12/27

基于深度学习的河道垃圾检测系统设计(YOLOv8) 一、研究背景:AI 如何参与河道环境治理? 随着城市化进程加快,河道、湖泊、水库等水体中的塑料垃圾问题日益严峻。其中,塑料瓶因体积明显、数量庞大、难以自然降解,已成为水环境污染治理中的重点对象。 传统河道垃圾监测方式主要存在以下痛点: ❌ 人工巡查成本高、效率低 ❌ 监测结果主观性强,难以量化 ❌ 无法实现实时、连续监控 ❌ 难以形成数据闭环支撑决策 在此背景下,基于深度学习的目标检测技术为河道垃圾自动识别提供了新的解决方案。 本项目以


微服务常见八股(分布式seat, 网关,服务注册与发现、负载均衡、断路器、API 网关、分布式配置中心)
陈逸轩*^_^*2025/12/18

Spring Cloud 常规八股 关于微服务你是怎么理解的 微服务的核心思想是 "单一职责原则",即每个服务专注于完成一个特定的任务,确保服务的高内聚性和低耦合性。可以针对不同服务可以进行不同技术或者语言选型,这会使得开发、部署、维护更加灵活和高效。服务之间的通信一般使用 RPC(远程调用),相比单体应用会带来网络的开销。它的特点是:独立部署,减少了系统整体部署的复杂度,不同的微服务可以使用不同的技术栈,可以灵活扩展并且容错性高。 如何对微服务集群做监控和报警的 1)Prom


计算机网络-ISO/OSI 和TCP/IP
αSIM0V2025/12/10

OSI七层 服务、协议、接口 物理层 比特物理层接口标准/物理层协议: 数据链路层 data link layer 帧点到点的通讯:主机之间 任务 成帧、物理寻址差错控制:检测出现的差错,丢弃错误信息流量控制:协调两个节点的速率传输管理 协议 SDLCHDLCPPPSTP 网络层 network layer 数据报 把协议数据单元(分组)从源端到数据端 IP+IPX+… 无连接+有连接 任务 路由选择流量控制拥塞控制:缓解拥塞差错控制:奇偶校验码网际互连: 协议 IPIPXICMPIGMPARP


LangChain 深入
吴佳浩2025/12/1

LangChain 深入 这里需要装什么包什么依赖 我就不再一一赘述了 大家可以先看上一篇 《Langchain 浅出》 那么如果出现缺失的依赖怎么办 ?简单 缺什么装什么 目录 1、Python 依赖安装 2、词工程最佳实践 3、性能优化技巧 4、常见问题与解决方案 5、调试和错误处理 6、生产环境最佳实践 想了想还是给补一份基础的依赖吧 ,至于为什么,我也不知道 但是我还是补上了 另外 本章篇幅比较密的代码示例需要个人花点时间理解和消化有问题可以在评论区交流 Python 依


宝塔安装-Redis
吃不胖爹2026/2/17

一、安装 Redis 步骤:宝塔面板 ——> 应用搜索 ——> redis ——> 安装即可 二、配置 Redis 1.宝塔配置 IP 以及密码 方法1 方法2 配置修改,这个就是Redis的配置文件了,可以根据自己的业务需求,进行更改 配置文件 bind 127.0.0.1 改成 bind 0.0.0.0 再追加 requirepass yourPassword(密码) 保存 重启redis 2.放行 Redis 对应的端口 切记:宝塔面板 与 服务器控制台 6379 端口都要放开,


当 AI Agent 接管手机:移动端如何进行观测
阿里云云原生2026/2/26

作者:高玉龙(元泊) 背景介绍 最近,基于 AI Agent 的各种手机助手在社交媒体上爆火,它能够通过 AI 自动操作手机完成下单、比价、搜索等复杂任务。用户只需说一句“帮我找最便宜的 iPhone”,AI 就能自动打开购物 App、搜索商品、对比价格并完成下单。这种“AI 接管手机”的场景,让很多人看到了未来人机交互的新形态。 然而,当 AI 开始大规模操作手机时,传统的用户行为分析将会面临严重的数据污染问题,如: 转换率虚高:AI 自动下单会对转换率数据造成干扰,导致业务决策误判 用户路

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客