目录
[一、什么是 MCP?](#一、什么是 MCP?)
[二、MCP 核心角色](#二、MCP 核心角色)
[三、MCP Server 三大能力](#三、MCP Server 三大能力)
[1. Tools(工具)------ 可执行动作](#1. Tools(工具)—— 可执行动作)
[2. Resources(资源)------ 只读数据](#2. Resources(资源)—— 只读数据)
[3. Prompts(提示模板)------ 复用提示词](#3. Prompts(提示模板)—— 复用提示词)
[四、MCP 工作流程](#四、MCP 工作流程)
[七、MCP 的核心优势](#七、MCP 的核心优势)
[✅ 一次开发,多端复用](#✅ 一次开发,多端复用)
[✅ 隔离安全](#✅ 隔离安全)
[✅ 轻量化](#✅ 轻量化)
[八、MCP 的局限](#八、MCP 的局限)
[九、和普通 Function‑Calling 的区别](#九、和普通 Function‑Calling 的区别)
前言
如果你正在开发 AI 应用,或者使用 Claude、Cursor 等 AI 工具,你一定遇到过这样的烦恼:
-
Claude 想读取你电脑上的文件,你需要手动复制粘贴;
-
Cursor 想执行代码,你需要切换到终端;
-
换了一个大模型,之前写的工具调用代码全部作废;
这些问题,MCP 协议正是为了解决它们而生。
一、什么是 MCP?
MCP(Model Context Protocol) 是由 Anthropic 在 2024 年底开源的一套开放协议,基于 JSON‑RPC 2.0。
简单理解:MCP 就是 AI 生态的 USB‑C 通用接口。
它标准化了大模型访问本地文件、数据库、第三方 API 的方式,彻底解决了不同大模型工具调用接口碎片化的问题。
一次开发 MCP Server,所有兼容 MCP 的 AI 客户端(Claude、Cursor 等)都能直接使用。
二、MCP 核心角色
MCP 采用经典的 C/S 架构,包含三个角色:
| 角色 | 说明 | 示例 |
|---|---|---|
| MCP Host | AI 宿主应用,内置大模型,负责业务交互 | Claude Desktop、Cursor |
| MCP Client | 内嵌在 Host 内部的通信连接器 | 转发请求、接收结果 |
| MCP Server | 轻量服务程序,封装真实能力,不包含 AI 推理 | 文件读写、数据库查询、API 调用 |
💡 MCP Server 本身不做推理,只负责执行具体操作并返回数据。
三、MCP Server 三大能力
MCP Server 对外提供三种能力:
1. Tools(工具)------ 可执行动作
可以执行写文件、调用 API、发送邮件、爬虫等有副作用的操作。
python
python
@mcp.tool()
def write_file(path: str, content: str) -> str:
with open(path, 'w') as f:
f.write(content)
return f"已写入 {path}"
2. Resources(资源)------ 只读数据
提供文档、代码仓库、数据库记录等只读上下文,供模型读取。
python
python
@mcp.resource("file://docs/readme.md")
def get_readme() -> str:
return open("README.md").read()
3. Prompts(提示模板)------ 复用提示词
预定义常用提示模板,客户端直接复用。
python
python
@mcp.prompt()
def code_review(code: str) -> str:
return f"请对以下代码进行审查:\n{code}"
四、MCP 工作流程
一张图看懂 MCP 的完整调用链路:
text
python
用户提问 → Host(Claude) → LLM 决策 → MCP Client → MCP Server → 执行操作 → 返回结果 → LLM 整理 → 输出回答
具体步骤:
-
MCP Server 启动时,向 Client 上报 Tools、Resources、Prompts 清单;
-
用户提问,Host 将问题 + 可用工具列表传给大模型;
-
LLM 判断需要调用外部能力,生成调用指令;
-
Client 按 MCP 协议请求对应的 MCP Server;
-
Server 执行操作(读写文件、查数据库、调 API 等);
-
原始结果回传给 Client,LLM 整理后输出最终回答。
五、三种传输方式
| 传输方式 | 适用场景 |
|---|---|
| Stdio(标准输入输出) | 本地进程通信,最常用,本地 MCP Server 首选 |
| SSE(Server‑Sent Events) | HTTP 单向推送,适合远程服务 |
| Streamable HTTP | 完整 HTTP 双向流式,适合云端部署 |
六、典型使用场景
| 场景 | 说明 |
|---|---|
| 本地文件操作 | AI 安全访问电脑目录,无需手动复制粘贴 |
| 企业知识库 | AI 对接内部数据库,不用为每个模型单独开发插件 |
| IDE 智能编程 | Cursor 读取项目代码、执行脚本、自动修复 |
| Agent 智能体 | 统一对接各类第三方服务,一次开发多端复用 |
七、MCP 的核心优势
✅ 一次开发,多端复用
一套 MCP Server,Claude、Cursor、以及其他兼容客户端直接使用,省去重复适配。
✅ 隔离安全
大模型不能直接操作本机,所有操作都经过 MCP Server 做权限管控。
✅ 轻量化
专注能力封装,不用内置大模型,部署简单。
八、MCP 的局限
| 局限 | 说明 |
|---|---|
| 无 AI 推理能力 | MCP Server 仅做能力封装,不包含模型 |
| 生态早期 | 主要围绕 Claude,其他模型陆续适配中 |
| 远程安全 | 公网部署需要自行处理鉴权和安全防护 |
九、和普通 Function‑Calling 的区别
| 对比项 | Function‑Calling | MCP |
|---|---|---|
| 协议性质 | 大模型厂商私有格式 | 独立开放协议 |
| 解耦程度 | 工具绑定特定模型 | 工具与模型完全解耦 |
| 复用性 | 每个模型需重新适配 | 一次开发,所有 MCP 客户端通用 |
| 部署方式 | 随模型调用 | 工具可独立部署 |
MCP 让工具服务和大模型彻底解耦,这才是真正的"标准化"。
十、快速开始
环境准备
bash
python
# 安装依赖
uv sync
# 验证安装
uv run python tutorial/01-getting-started/01_install.py
教程导航
| 模块 | 内容 | 文件 |
|---|---|---|
| 入门 | 安装验证、第一个服务器、STDIO 客户端/服务端 | tutorial/01-getting-started/ |
| 服务器 | Tools、Resources、Prompts、上下文、中间件、组合 | tutorial/02-servers/ |
| 客户端 | 客户端基础、传输协议、客户端操作 | tutorial/03-clients/ |
| 部署 | HTTP 部署、生产环境部署 | tutorial/04-deployment/ |
十一、总结
MCP 的出现,标志着 AI 工具调用从"私有协议"走向"开放标准"。
-
对开发者:一次开发,多端复用
-
对用户:AI 更安全地访问本地数据
-
对生态:统一的工具接口标准
无论你是 AI 应用开发者,还是技术爱好者,MCP 都值得你花时间去了解和使用。