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 平台之一。
开放标准 MIT License JSON-RPC 2.0 跨语言 双向通信

为什么需要 MCP

在 MCP 之前,将 AI 模型接入外部系统面临三个核心痛点:

传统方式 vs MCP
痛点传统方式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 和 ResourcesMCP 进阶教程 →
官方 MCP 课程Anthropic SkillJar 免费课程,系统讲解协议细节与最佳实践前往 SkillJar ↗
MCP 规范文档完整协议规范、所有消息类型、SDK 参考手册modelcontextprotocol.io ↗
官方 Server 仓库浏览和 fork 官方参考 Server,是学习最佳实践的最快方式GitHub ↗
Claude API + MCP在 API 层面启用 MCP,构建支持工具调用的 Claude 应用API 基础教程 →
ℹ️
本页为 Claudepedia 原创中文导读,基于 Anthropic 公开的 MCP 规范文档与官方课程结构整理,不包含课程原文。建议配合 官方 SkillJar 课程 同步学习。