合集:MCP(模型上下文协议)系列 · 初级篇(一)
前言
2024 年 11 月,Anthropic 发布了一个开放标准:MCP(Model Context Protocol,模型上下文协议)。
它解决了一个所有 AI 开发者都面临的痛点:AI 模型如何标准化地连接到外部工具和数据源?
本篇是 MCP 系列的第一篇,带你彻底搞懂 MCP 的本质、架构和价值,以及为什么它被称为"AI 世界的 USB-C 接口"。国内使用Claude Code 访问ccAiHub.com
一、MCP 解决的问题
1.1 没有 MCP 时的世界
假设你要为你的 AI 助手接入三个工具:GitHub、Notion、Slack。
没有统一标准时,每个接入都是一套独立的方案:
AI 应用
├── GitHub 接入 → 自定义 API 封装 → GitHub REST API
├── Notion 接入 → 自定义 API 封装 → Notion API
└── Slack 接入 → 自定义 API 封装 → Slack API
问题:
- 每个集成都要从头写,维护成本高
- 换一个 AI 模型,所有集成都要重写
- 不同应用之间的集成方案无法复用
- 安全策略缺乏统一标准
1.2 MCP 带来的变化
MCP 主机(Claude Desktop/Claude Code/自定义应用)
↓ 统一的 MCP 协议
MCP 服务器(通用组件,可任意组合)
├── GitHub MCP Server → GitHub API
├── Notion MCP Server → Notion API
└── Slack MCP Server → Slack API
核心价值:
- 构建一次,到处运行:一个 MCP Server 可以被任意支持 MCP 的 AI 应用使用
- 标准化接口:不再有 N×M 的集成复杂度问题
- 生态复用:社区贡献的 MCP Server 可以直接安装使用
二、USB-C 类比:为什么这个比喻准确
USB-C 标准化了设备连接:任何 USB-C 设备都可以连接任何 USB-C 接口,无需了解内部实现。
MCP 做了同样的事:
| USB-C | MCP |
|---|---|
| 连接硬件设备 | 连接数据源和工具 |
| 统一物理接口标准 | 统一 JSON-RPC 通信协议 |
| 设备厂商实现驱动 | 服务提供商实现 MCP Server |
| 主机识别并使用设备 | AI 应用发现并调用 MCP 能力 |
三、MCP 的三层架构
┌─────────────────────────────┐
│ MCP 主机 │ Claude Desktop、Claude Code
│ (Host / MCP Client) │ VS Code、Cursor、你自己的应用
└──────────────┬──────────────┘
│ MCP 协议(JSON-RPC 2.0)
│ via stdio 或 HTTP
┌──────────────┴──────────────┐
│ MCP 服务器 │ 你构建或安装的服务
│ (MCP Server) │
└──────────────┬──────────────┘
│ 正常的 API 调用
┌──────────────┴──────────────┐
│ 外部服务 / 数据源 │ GitHub、数据库、文件系统...
└─────────────────────────────┘
3.1 MCP 主机(Host)
发起 MCP 连接的应用程序,内置 MCP Client 来管理连接。
当前主流 MCP 主机:
- Claude Desktop:Anthropic 官方桌面应用
- Claude Code:命令行工具
- VS Code(Copilot 扩展支持 MCP)
- Cursor
- Zed 编辑器
- 自定义开发的 AI 应用
3.2 MCP 服务器(Server)
提供能力的服务,通过 MCP 协议暴露:
- 工具(Tools):AI 可以调用的函数
- 资源(Resources):AI 可以读取的数据
- 提示模板(Prompts):预定义的工作流模板
MCP Server 可以是:
- 本地进程(通过 stdio 通信)
- 远程 HTTP 服务
- 任何能通过 JSON-RPC 2.0 通信的程序
四、MCP 的三大原语
4.1 Tools(工具):AI 能做什么
工具是 AI 可以调用执行的函数,类似"API 接口"。
示例:
{
"name": "create_github_issue",
"description": "在指定仓库创建 GitHub Issue",
"inputSchema": {
"type": "object",
"properties": {
"repo": { "type": "string", "description": "仓库名(格式:owner/repo)" },
"title": { "type": "string", "description": "Issue 标题" },
"body": { "type": "string", "description": "Issue 正文(支持 Markdown)" },
"labels": { "type": "array", "items": {"type": "string"}, "description": "标签列表" }
},
"required": ["repo", "title"]
}
}
AI 的视角:我有一个叫 create_github_issue 的工具,我知道它需要什么参数,我可以在需要时调用它。
4.2 Resources(资源):AI 能知道什么
资源是 AI 可以读取的数据,通过 URI 标识。
file:///home/user/project/README.md ← 本地文件
postgres://localhost/mydb/schema ← 数据库 schema
https://api.github.com/repos/me/proj ← 远程资源
memory://conversation-history ← 内存中的数据
资源支持订阅:AI 客户端可以订阅某个资源,当资源变化时自动收到通知。
4.3 Prompts(提示模板):AI 能怎么用
提示模板是预定义的工作流,帮助用户高效使用 MCP Server 的能力。
{
"name": "code_review",
"description": "对指定 PR 进行代码审查",
"arguments": [
{ "name": "pr_number", "description": "PR 编号", "required": true },
{ "name": "focus", "description": "重点关注方面(安全/性能/规范)", "required": false }
]
}
用户选择这个提示模板后,AI 会自动获取 PR 详情并按模板执行审查。
五、通信协议:JSON-RPC 2.0
MCP 的底层通信格式是 JSON-RPC 2.0,这是一个成熟的轻量级 RPC 协议。
5.1 请求格式
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_file_contents",
"arguments": {
"path": "/src/main.ts"
}
}
}
5.2 响应格式
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "// main.ts\nimport express from 'express';\n..."
}
]
}
}
5.3 两种传输方式
Stdio(本地进程):
主机 ──stdin/stdout──► 本地 MCP Server 进程
适合:本地文件系统访问、本地数据库、开发工具
Streamable HTTP(网络):
主机 ──HTTP POST──► 远程 MCP Server
◄── SSE 流式响应 ──
适合:SaaS 服务、团队共享服务器、云端数据源
六、为什么 MCP 会成为标准?
6.1 生态飞轮效应
更多 AI 应用支持 MCP
↓
更多服务商实现 MCP Server
↓
用户安装 MCP Server 就能让 AI 用上各种工具
↓
更多 AI 应用支持 MCP(因为用户需求)
6.2 已经形成的生态
截至 2025 年,MCP 生态已经包括:
- 官方参考实现:10+ 个官方 MCP Server(文件系统、GitHub、Google Drive 等)
- 社区 Server:awesome-mcp-servers 列表超过 500 个
- 主机支持:Claude Desktop、Claude Code、VS Code Copilot、Cursor 等主流工具均支持
- SDK:TypeScript、Python、Go、Java 等多语言 SDK
6.3 开放标准,非专有技术
MCP 是开放标准,代码托管在 GitHub,任何人可以实现兼容的客户端或服务器。这与历史上各家自搞一套的"插件系统"有本质区别。
七、MCP 的适用场景
| 场景 | 不用 MCP | 用 MCP |
|---|---|---|
| 让 AI 访问公司数据库 | 每个 AI 工具单独写 DB 集成 | 一个 DB MCP Server,所有工具共用 |
| 让 AI 操作 GitHub | 每次都要自定义 prompt + 手动操作 | GitHub MCP Server,AI 直接调 API |
| 让 AI 搜索内部文档 | 复制粘贴文档内容给 AI | 文件系统 MCP Server,AI 直接读取 |
| 让 AI 发送通知 | 手动复制 AI 输出到 Slack | Slack MCP Server,AI 直接发送 |
八、总结
| 概念 | 一句话 |
|---|---|
| MCP | AI 连接外部世界的开放标准协议 |
| MCP 主机 | 发起 MCP 连接的 AI 应用(Claude Desktop 等) |
| MCP 服务器 | 提供能力的服务,暴露工具/资源/提示模板 |
| Tools | AI 可以调用的函数 |
| Resources | AI 可以读取的数据 |
| Prompts | 预定义的工作流模板 |
| JSON-RPC 2.0 | 底层通信协议 |
下一篇我们进入实战:5 分钟安装你的第一个 MCP Server,让 Claude 直接操作你的文件系统和 GitHub 仓库。
系列导航
- 初级篇(一):MCP 是什么?AI 世界的 USB-C 接口详解 ← 当前
- 初级篇(二):5 分钟上手:安装你的第一个 MCP Server
- 初级篇(三):MCP 生态地图:工具、数据库、搜索全覆盖
- 中级篇(一):动手构建 MCP Server:Python & TypeScript 实战
- 中级篇(二):深入三大原语:Resources、Tools 和 Prompts
- 中级篇(三):MCP + RAG:构建企业知识库问答系统
- 高级篇(一):企业级 MCP 架构:安全、认证与高可用
- 高级篇(二):MCP OAuth 2.1 实战:标准化身份认证
- 高级篇(三):MCP + 多智能体编排:下一代 AI 工作流