什么是 MCP?Model Context Protocol 解析

将 AI 模型与工具、文件和服务连接的开放标准 — 可以把它想象成 AI 集成的 USB-C

8 分钟阅读 更新:2026年4月

🔌 什么是 MCP?

The Model Context Protocol(MCP) 是由 Anthropic 于 2024 年 12 月发布的一个开放标准,定义了连接 AI 模型到外部工具、数据源和服务的通用接口。在 MCP 之前,每个 AI 集成都需要定制的、一次性的实现。 MCP 标准化了 AI 客户端与外部能力的通信方式——因此一次集成即可适配任何兼容的 AI 系统。

MCP 是一种客户端-服务器协议: MCP 客户端 是希望使用外部能力的 AI 系统(例如 Claude、Cursor、带 Copilot 的 VS Code)。 MCP 服务器 是通过标准化 API 向外部能力(例如 GitHub、数据库、文件系统、浏览器)暴露这些能力的服务,任何 MCP 客户端都可以使用这些 API。

💡 关键见解: MCP 并不会让 AI 更聪明——它使 AI 更好地连接. 智能仍然在模型中;MCP 提供了让该智能作用于真实世界数据和服务的管道。

🔋 USB-C 比喻

在 USB-C 出现之前,每个设备都有自己的专有接口——手机充电器不能用于笔记本,显示器线缆不能用于存储设备。USB-C 通过一个通用标准解决了这个问题:一个端口、一根线缆、无限设备。

在 MCP 出现之前的 AI 集成也是同样的混乱。将 Claude 连接到 GitHub 需要定制代码;将 GPT-4 连接到相同的 GitHub API 需要不同的定制代码。添加新工具意味着需要为每个 AI 平台从头重建集成。

MCP 就是 AI 的 USB-C。一套标准:

  • 只需构建一次 MCP 服务器——任何 MCP 客户端都能使用它
  • 采用新的 AI 模型——您现有的 MCP 服务器即可立即工作
  • MCP 服务器生态独立于 AI 模型开发而增长

⚙️ MCP 的工作原理

MCP 使用基于传输层的 JSON-RPC 2.0 协议(本地服务器使用 stdio,远程服务器使用 HTTP/SSE)。通信遵循初始化、能力发现和请求处理的生命周期。

三大核心原语

Primitive它暴露的内容Example
Tools 模型可以调用的函数(模型控制) search_github_issues、run_sql_query、send_email
Resources 模型可以读取的数据(应用控制) file:///workspace/src、db://customers/schema
Prompts 可重用的提示模板(用户可控) code-review、summarize-pr、explain-error

通信流程

  1. 初始化: 客户端连接到服务器,交换协议版本和能力信息
  2. 发现: 客户端请求可用工具、资源和提示的列表
  3. 调用: AI 模型决定调用一个工具;客户端将请求发送到服务器
  4. 返回: 服务器执行操作并将结构化结果返回给客户端
  5. 继续: AI 模型整合结果并继续推理

传输选项

Transport最适合Notes
stdio 本地工具,CLI 集成 客户端将服务器作为子进程启动;设置最简单
HTTP + SSE 远程/云服务,共享团队 服务器独立运行;支持授权头(auth headers)
WebSocket 实时双向(草案) 为流式用例建议的方案

🔄 MCP 与 Function Calling 的比较

Function calling(工具调用)是内置于特定 AI API(OpenAI、Anthropic、Google)中的一项功能—— 允许您定义模型可以调用的自定义函数。MCP 是构建在 function calling 之上或并行的一层,负责标准化 这些函数如何被发现和连接.

Function CallingMCP
Scope 特定 API、每次请求绑定 跨平台,标准化
Discovery 在您的 API 调用中硬编码 动态——服务器发布能力
Portability 绑定到单一 AI 提供商 适用于任何兼容 MCP 的客户端
Resources 未标准化 一等原语(文件、数据库、URI)
最适合 简单的单提供商用例 多工具、多模型的生产系统

在实践中,MCP 服务器通常在内部使用 function calling——MCP 提供发现和连接层,而 function calling 负责实际的 LLM 到工具的调用。

🏢 谁在支持 MCP

自 2024 年 12 月发布以来,MCP 的采纳速度很快。截至 2026 年 4 月,生态系统包括:

支持 MCP 的 AI 客户端

  • Claude(Anthropic) — 在 Claude.ai 和 Claude Code 中原生支持 MCP
  • Cursor — 用于代码感知 AI 助手的 MCP 服务器
  • VS Code(GitHub Copilot) — 在 agent 模式下集成 MCP
  • Windsurf(Codeium) — 支持 MCP 服务器
  • Continue.dev — 开源的 IDE 助手,带有 MCP

流行的 MCP 服务器

  • Filesystem — 读/写本地文件(官方 Anthropic)
  • GitHub — 仓库、PR、问题、代码搜索
  • PostgreSQL / SQLite — 数据库查询和模式探索
  • Brave Search / Exa — 无需 API 密钥的网页搜索
  • Puppeteer / Playwright — 浏览器自动化
  • Slack / Linear / Notion — 生产力工具集成
📦 查找 MCP 服务器: The 官方 MCP 服务器仓库 和社区注册表例如 mcp.so 列出了数百个可用服务器。

🚀 开始使用 MCP

选项 1:使用现有的 MCP 服务器(5 分钟)

体验 MCP 的最快方式是使用带有预构建服务器的 Claude Desktop。 在以下位置编辑您的 Claude Desktop 配置: ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
    }
  }
}

选项 2:构建一个 MCP 服务器(30 分钟)

官方 SDK 可用于 TypeScript、Python 和 Kotlin:

// TypeScript MCP server example
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({ name: "my-server", version: "1.0.0" });

server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "get_weather",
    description: "Get current weather for a city",
    inputSchema: {
      type: "object",
      properties: { city: { type: "string" } },
      required: ["city"]
    }
  }]
}));

server.setRequestHandler("tools/call", async (request) => {
  const { city } = request.params.arguments;
  // ... fetch weather data
  return { content: [{ type: "text", text: `Weather in ${city}: sunny, 22°C` }] };
});

const transport = new StdioServerTransport();
await server.connect(transport);

🔐 MCP 安全注意事项

MCP 的强大之处在于赋予 AI 模型访问工具、文件和服务的能力——这也引入了开发者必须设计防范的安全风险。

RiskDescriptionMitigation
通过 MCP 的提示注入(Prompt injection) 工具结果中的恶意内容操纵 AI 对工具输出进行清理;使用单独的推理模型和动作模型
权限过大的服务器 MCP 服务器拥有超过所需的权限 最小权限原则;尽可能只读
困惑的代理(Confused deputy) AI 代替攻击者行事而用户不知情 对破坏性/不可逆操作进行人工确认(HITL)
服务器供应链 恶意的第三方 MCP 服务器窃取数据 仅使用受信任、经过审计的服务器;审查服务器代码
⚠️ 切勿赋予 MCP 服务器您不会赋予实习开发者的访问权限。 如果您 不会允许新入职的开发者运行任意数据库查询,就不要给 MCP 服务器不受限制的数据库访问权限。像设计任何 API 一样,谨慎设计 MCP 服务器的权限。

如需深入了解 AI 安全漏洞——包括提示注入如何通过 MCP 工具结果被武器化——请参阅我们的指南: 提示注入详解.