1. 学习主题
我要学习的内容: (例如:Transformer、Redis 持久化、JVM 垃圾回收、操作系统进程调度)
我为什么要学它: (写清楚用途、场景、目标,比如面试、项目、论文、考试)
我希望达到的程度:
了解基本概念
能向别人讲清楚
能用于面试回答
能写代码/做项目
能深入分析原理
2. 我当前的理解
在正式学习前,我认为它是什么: (先用自己的话写,不要查资料)
我已经知道的相关知识: 我目前不清楚的问题:
3. 第一轮学习记录
资料来源:
https://modelcontextprotocol.io/specification/2025-11-25
书籍 / 博客 / 视频 / 论文 / 官方文档
核心概念提炼:
- 整体架构
- Host 是总控层,负责创建和管理多个 Client,控制连接权限和生命周期,执行安全策略和用户授权决定
- Client 是连接层,每个 Client 由 Host 创建,和某个 Server 保持 1:1 的隔离状态会话
- MCP 是 host 管多个 client,每个 client 对应一个 server
- MCP 协议底座
- JSON-RPC 消息格式
- 有状态连接
- 客户端和服务端的能力协商
- 生命周期
- Initialization:初始化、能力协商、协议版本确认
- 是客户端和服务端的第一轮交互,双方要完成
- 协议版本兼容性确认
- 能力交换与协商
- 实现信息共享
- 客户端先发 Initialize 请求,包含:
- protocolVersion
- 客户端 capabilities
- 客户端实现信息
- initialized 通知
- 服务端成功响应 initialize 后,客户端发送一个 notification/initialized 通知,表示现在可以正常操作
- 是客户端和服务端的第一轮交互,双方要完成
- Operation:正常运行
- Shutdown:优雅关闭
- Initialization:初始化、能力协商、协议版本确认
- MCP 传输
- stdio
- 客户端把 MCP Server 作为子进程启动
- Server 从 stdin 读 JSON-RPC 消息
- Server 想 stdout 写 JSON-RPC 消息
- Streamable HTTP
- Server 是独立进程
- 可以处理多个客户端连接
- 使用 HTTP POST 和 GET
- 可以选用 SSE 来流式发送
- 服务端必须提供一个同时支持 GET 和 POST 的 MCP endpoint
- stdio
- 服务端能力
- Prompt:给模型的模板化输入
- Resource:给模型看的上下文数据
- Tool: 给模型执行的动作
关键术语:
术语 1:
术语 2:
术语 3:
4. 用“小白能听懂的话”解释
假设我要把这个知识讲给一个完全不懂的人听。
一句话解释它是什么: (尽量不用专业术语)
它解决了什么问题: (这个知识存在的原因是什么)
它是怎么工作的: (按步骤写,像讲流程一样)
举一个最简单的例子: (最好是生活化类比 + 技术例子)
如果让我口头讲 1 分钟,我会怎么讲: (直接写成可说出口的话)
5. 找出“讲不清楚”的地方
我在哪些地方卡住了: 哪些概念我一解释就变模糊: 哪些地方只是“背会了”,但没有真正理解:
6. 回炉补缺
针对卡点,我重新查到的内容:
问题 1:
重新理解:
问题 2:
重新理解:
问题 3:
重新理解:
新的理解和原来有什么不同: (写出修正点)
7. 压缩成自己的知识表达
最终版通俗解释: (要求自己能不用资料直接讲清楚)
最终版技术解释: (适合面试 / 写作 / 项目说明)
核心公式 / 关键流程 / 重点机制:
最容易被问到的问题: 1. 2. 3. 4. 5.
对应回答:
Q1:
Q2:
Q3:
Q4:
Q5:
8. 输出检验
我是否能做到以下几点:
不看资料讲 3 分钟
用大白话解释清楚
解释它为什么出现
解释它和相近概念的区别
举出一个实际应用场景
回答常见追问
写出简单代码 / 例子 / 流程图
如果还不能,卡在哪:
9. 一页总结
主题:
一句话本质:
核心作用:
关键原理: 1. 2. 3.
常见误区:
面试中怎么说最合适: (写成一段完整答题模板)