Skip to content

MCP 协议

Model Context Protocol(MCP,模型上下文协议)是一个开放标准,定义了 AI 模型如何安全地连接外部工具、数据源和服务。如果把 AI 模型比作大脑,MCP 就是让大脑能"伸手"去拿数据库、文件系统和 API 的那套神经系统。

为什么需要 MCP

在 MCP 出现之前,每个 AI 应用与外部工具的集成都是"手写"的。开发者为 ChatGPT 写一套插件接口,为 Claude 再写另一套,为本地部署的开源模型又写一套——这就像每个设备都需要自己的充电器。

MCP 的目标是成为 AI 领域的 USB-C:一个统一的标准,一次接入,到处可用。

问题MCP 之前的方案MCP 的方案
集成方式每个 AI 平台定制开发统一协议,一次对接
维护成本多个版本并行,同步困难单点维护,自动兼容
安全模型各自实现,质量参差标准化权限控制
扩展性每加一个工具都要改代码动态发现,即插即用

MCP 如何工作

MCP 采用经典的 客户端-服务器(client-server) 架构:

┌─────────────────────────────────────────┐
│              AI 主机 (Host)              │
│   ┌──────────────────────────────────┐  │
│   │           AI 模型 (Claude)        │  │
│   └──────────┬───────────────────────┘  │
│              │ MCP 协议                  │
│   ┌──────────▼───────────────────────┐  │
│   │        MCP 客户端 (Client)        │  │
│   └──────────┬───────────────────────┘  │
└──────────────┼──────────────────────────┘
               │  JSON-RPC over stdio/SSE
    ┌──────────┼──────────┐
    │          │          │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│ MCP   │ │ MCP   │ │ MCP   │
│ 服务端 │ │ 服务端 │ │ 服务端 │
│(文件) │ │(数据库)│ │(API)  │
└───────┘ └───────┘ └───────┘

三个核心概念

MCP 定义了三种基本能力,供 AI 模型与服务端交互:

Resources(资源):服务端暴露的数据,类似于"可读文件"。AI 可以通过 MCP 读取文件内容、查询数据库记录、获取 API 返回结果。资源有唯一的 URI 标识,支持订阅和变更通知。

Tools(工具):服务端暴露的可执行操作,类似于"可调用函数"。AI 可以根据需要调用工具来写入数据、发送消息、触发工作流。工具需要明确的参数定义,AI 会自动生成参数值。

Prompts(提示模板):服务端暴露的预设提示模板,类似于"可复用的指令片段"。用户或 AI 可以加载这些模板来快速启动特定任务,比如"代码审查"或"生成周报"。

通信方式

MCP 支持两种传输层:

  • stdio:客户端通过标准输入/输出与本地启动的服务端进程通信,适合本地开发工具
  • SSE(Server-Sent Events):通过 HTTP 连接实现远程通信,适合云端服务和分布式部署

谁在支持 MCP

MCP 由 Anthropic 发起并开源,但它的设计目标是成为行业标准。目前已有广泛的生态支持:

  • AI 平台:Claude Desktop、Claude Code 原生支持 MCP;OpenAI 也已宣布支持
  • 开发工具:VS Code、JetBrains IDE、Zed 等编辑器正在集成 MCP
  • SaaS 服务:GitHub、Slack、Notion、Google Drive、Postgres、Supabase 等提供了官方 MCP 服务端
  • 框架与 SDK:Python、TypeScript、Java、Go 等语言的 MCP SDK 均已发布

一个简单的例子

假设你有一个本地 SQLite 数据库,想用 Claude 查询它。传统方式需要写 Python 脚本、处理输入输出、管理会话。用 MCP,你只需启动一个 MCP 服务端:

json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "./data.db"]
    }
  }
}

Claude 会自动发现这个服务端提供的 tools(如 read_queryexecute_query),并在需要时调用它们——就像这些工具是 Claude 原生能力的一部分。

对开发者的意义

MCP 改变了 AI 集成的游戏规则。对开发者而言,这意味着:

  1. 一次开发,多处运行:写一个 MCP 服务端,所有支持 MCP 的 AI 都能用
  2. 关注业务逻辑:不用再操心 AI 平台的集成细节
  3. 渐进式增强:可以先暴露一个工具,再逐步增加,AI 会自动适应
  4. 安全可控:每个工具的权限和资源范围清晰定义,避免 AI 越权操作

MCP 是 AI 生态走向标准化的关键一步。就像 HTTP 让 Web 成为可能一样,MCP 正在为 AI 驱动的自动化世界铺设基础设施。

Skills123.cc — AI Agent Skills 百科