MCP 是什么
Model Context Protocol(MCP)是 Anthropic 于 2024 年 11 月发布的开放标准协议,用于规范 AI 模型与外部工具、数据源之间的通信方式。
一个常见的比喻是:MCP 之于 AI 工具集成,就如同 USB-C 之于硬件外设——统一接口,即插即用。在 MCP 出现之前,每个 AI 应用都需要为每个外部工具单独开发适配层;MCP 让这个过程标准化,一个 MCP Server 可以被任意兼容客户端复用。
MCP 是开放标准(MIT 许可),规范文档和参考实现均已公开。Claude(claude.ai 和 API)是目前支持 MCP 最完整的 AI 平台之一。
为什么需要 MCP
在 MCP 之前,将 AI 模型接入外部系统面临三个核心痛点:
| 痛点 | 传统方式 | MCP 解决方案 |
|---|---|---|
| 集成成本高 | 每个工具单独开发 API 包装层,重复劳动 | 标准协议,Server 一次编写,到处复用 |
| 上下文割裂 | AI 只能处理对话框内的信息,无法访问外部数据 | Server 主动推送资源,AI 按需读取完整上下文 |
| 能力碎片化 | 工具调用靠 Function Calling,格式不统一 | MCP 统一定义 Tools / Resources / Prompts 三类能力 |
MCP 的核心价值不在于"让 AI 调用工具"(Function Calling 早已实现),而在于建立一套可发现、可组合、可授权的生态标准——让开发者构建一次,让所有兼容的 AI 客户端都能使用。
三层架构:Host · Client · Server
MCP 的架构分三层,每层职责清晰:
Host(宿主)
用户直接交互的 AI 应用,例如 Claude.ai、Claude Desktop、Cursor 等 IDE 插件。Host 管理用户会话、持有授权,并决定允许连接哪些 MCP Server。
Client(客户端)
内嵌于 Host 的 MCP 协议实现层。每个 Client 维护与一个 MCP Server 的持久连接,处理协议握手、能力协商、消息路由。通常对最终用户不可见。
Server(服务端)
独立运行的轻量级进程,向 Client 暴露 Tools(可调用的函数)、Resources(可读取的数据)、Prompts(预制的提示词模板)。可以是本地进程(stdio)或远程服务(HTTP/SSE)。
一个 Host 可以同时连接多个 MCP Server(例如同时连接文件系统 Server、数据库 Server、GitHub Server),由 Client 层分别管理各自连接。
核心概念速查
Tools
可执行的函数,Server 向 AI 暴露的"动词"。AI 可以调用 Tool 完成操作,例如读写文件、执行查询、调用 API。
Resources
可读取的数据,Server 向 AI 暴露的"名词"。例如文件内容、数据库记录、API 响应。AI 可以将 Resource 加载到上下文窗口。
Prompts
Server 提供的预制提示词模板,可带参数。让 AI 在特定场景下使用经过优化的提示词,无需每次手动编写。
Sampling
Server 请求 AI 生成文本的机制(反向调用)。让 Server 端逻辑能够驱动 AI 推理,构建更复杂的智能体工作流。
Transport
通信传输层。本地 Server 使用 stdio(标准输入输出),远程 Server 使用 HTTP + SSE(Server-Sent Events)进行双向通信。
Capability Negotiation
握手阶段的能力协商:Client 和 Server 互相声明支持的 MCP 功能集,确保兼容性。每次连接建立时执行。
JSON-RPC 2.0
MCP 底层消息格式。所有 Tool 调用、Resource 请求、通知都通过标准 JSON-RPC 消息传输,语言无关。
Roots
Client 向 Server 声明的"关注范围"(文件路径或 URI 列表),让 Server 了解自己在哪个工作空间下运行,避免越界操作。
工作流程:一次 Tool 调用的完整生命周期
以"用 Claude 通过 MCP 查询本地数据库"为例,完整流程如下:
1
连接建立 — Claude Desktop(Host)启动时,读取配置文件中已注册的 MCP Server 列表,通过 Client 分别建立连接。
2
能力协商 — Client 与每个 Server 进行握手,Server 声明自己提供哪些 Tools / Resources / Prompts,Claude 将这些能力加入当前会话上下文。
3
用户提问 — 用户输入"帮我查一下上月销售额最高的产品"。Claude 分析语义,判断需要调用数据库查询 Tool。
4
Tool 调用 — Claude 生成结构化的 Tool 调用请求(JSON-RPC),经由 Client 发送给对应的数据库 MCP Server。
5
执行与返回 — MCP Server 执行 SQL 查询,将结果封装为标准响应返回给 Client,再传回 Claude。
6
生成回答 — Claude 将查询结果整合进对话上下文,生成自然语言回答返回给用户。
整个过程对用户完全透明。用户只需正常对话,MCP 负责在 AI 与工具之间传递结构化消息。Claude 会在回答中注明数据来源。
典型用例
开发效率
- 读取本地代码库,理解项目结构
- 执行 Git 操作(查看 diff、提交、切换分支)
- 运行测试并分析失败原因
- 连接 GitHub / GitLab API 管理 Issue 和 PR
数据分析
- 直接查询本地 SQLite / PostgreSQL 数据库
- 读取 CSV / Excel 文件进行统计分析
- 连接 BI 工具获取实时指标数据
- 将分析结果写回数据库或导出报告
知识管理
- 搜索 Obsidian / Notion 笔记库
- 读取本地文档文件夹(PDF / Markdown)
- 连接企业知识库(Confluence / SharePoint)
- 将 AI 生成的内容直接保存到笔记系统
工作流自动化
- 发送邮件 / Slack 消息
- 创建和更新日历事件
- 触发 CI/CD 流水线
- 调用内部 API 完成业务操作
浏览器与网页
- 使用 Playwright MCP 控制浏览器
- 截图、填表、提取网页内容
- 自动化登录和表单提交
- 爬取和结构化提取网页数据
企业集成
- 连接 Salesforce / HubSpot CRM
- 访问 ERP 系统数据
- 与内部微服务 API 对接
- 跨系统数据同步与核对
快速上手:在 Claude Desktop 中配置 MCP Server
Claude Desktop 是目前最易上手的 MCP 宿主。配置方法:编辑 Claude Desktop 的配置文件,添加 Server 定义。
第一步:找到配置文件
| 操作系统 | 配置文件路径 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\\Claude\\claude_desktop_config.json |
第二步:添加 Server 配置(以官方 Filesystem Server 为例)
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents"
]
}
}
}
第三步:重启 Claude Desktop,打开新对话后在输入框左侧可以看到已连接的 Server 和可用工具列表。
Anthropic 提供了一批官方参考 Server,包括:文件系统、GitHub、Google Drive、PostgreSQL、Brave 搜索、Puppeteer 等。可在 github.com/modelcontextprotocol/servers 浏览完整列表。
每次添加新 MCP Server 前,请确认其来源可信。MCP Server 在被授权后可以访问你声明的文件和系统资源,与本地应用程序权限相当。
安全与权限模型
MCP 的设计将安全控制权交给 Host(用户侧),而非 Server:
用户授权
Claude 在执行任何 Tool 调用之前,会向用户展示即将执行的操作并请求确认。用户始终保有控制权。
最小权限
Server 只能访问 Host 明确授权的范围(通过 Roots 机制声明)。文件系统 Server 只能访问你指定的目录。
本地优先
本地 MCP Server(stdio 模式)运行在用户机器上,数据不离开本地环境,适合处理敏感数据。
沙箱隔离
每个 MCP Server 是独立进程,Server 之间不能互相通信,只能通过 Host/Client 协调。
审计日志
Claude Desktop 可记录所有 MCP 工具调用的输入输出,便于审计和调试。
凭证管理
Server 可通过环境变量接收 API Key 等凭证,不需要硬编码在配置文件中。
远程 MCP Server(HTTP/SSE 模式)在传输层需要 HTTPS,并通过 OAuth 2.0 进行授权。Anthropic 在 MCP 规范中定义了远程 Server 的授权流程标准。
进阶学习路径
掌握 MCP 基础后,推荐的进阶方向:
| 方向 | 内容 | 资源 |
|---|---|---|
| 构建自己的 MCP Server | 用 Python / TypeScript SDK 从零构建 Server,暴露自定义 Tools 和 Resources | MCP 进阶教程 → |
| 官方 MCP 课程 | Anthropic SkillJar 免费课程,系统讲解协议细节与最佳实践 | 前往 SkillJar ↗ |
| MCP 规范文档 | 完整协议规范、所有消息类型、SDK 参考手册 | modelcontextprotocol.io ↗ |
| 官方 Server 仓库 | 浏览和 fork 官方参考 Server,是学习最佳实践的最快方式 | GitHub ↗ |
| Claude API + MCP | 在 API 层面启用 MCP,构建支持工具调用的 Claude 应用 | API 基础教程 → |
本页为 Claudepedia 原创中文导读,基于 Anthropic 公开的 MCP 规范文档与官方课程结构整理,不包含课程原文。建议配合 官方 SkillJar 课程 同步学习。