跳到主内容
AIHO 2026 全新改版上线
协议MCP协议工具调用Anthropic

MCP (Model Context Protocol)

Anthropic 推出的开放协议,让 AI 模型标准化地连接外部工具、数据源和 API,类似于 AI 的 USB-C 接口。

什么是 MCP

MCP(Model Context Protocol)是 Anthropic 于 2024 年 11 月发布的开放协议,用于标准化 AI 模型与外部工具、数据源、API 之间的连接方式。

打个比方:MCP 之于 AI 模型,就像 USB-C 之于电子设备——一个统一接口,连什么都行。

解决什么问题

在 MCP 出现之前,每个 AI 工具要连接外部系统都需要单独开发集成:

  • Cursor 想连数据库 → 写一套数据库适配
  • Claude Code 想连 GitHub → 写一套 GitHub 适配
  • Copilot 想连 Jira → 写一套 Jira 适配

结果是 N 个工具 × M 个数据源 = N×M 套适配代码。

MCP 把这变成 N+M:每个工具实现一次 MCP 客户端,每个数据源实现一次 MCP Server,就可以互相连接。

这是「协议分层」的常见受益模式:HTTP 让任意浏览器能访问任意网站,LSP 让任意编辑器能支持任意语言。MCP 在做的是同一件事,只不过对象从「网页 / 语言」换成「工具 / 数据源」。

工作原理

MCP 采用 Client-Server 架构:

AI 工具(Cursor / Claude Code)
    ↕ MCP 协议(JSON-RPC 2.0)
MCP Server(文件系统 / 数据库 / API)
    ↕
实际数据源

三种能力

每个 MCP Server 可以暴露三种能力:

  1. Tools(工具) — 模型可以调用的函数(查数据库、发邮件、读文件)
  2. Resources(资源) — 模型可以读取的数据(文件内容、API 响应)
  3. Prompts(提示词模板) — 预定义的提示词模板(代码审查模板、文档生成模板)

传输方式

  • stdio — 本地进程通信(Claude Code 连本地 MCP Server,最常见)
  • SSE / HTTP — 远程网络通信(Cursor 连远程托管的 MCP Server)

消息格式

底层是 JSON-RPC 2.0,对调试很友好。一次「列出可用工具」的握手大致是这样:

// Client → Server
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }

// Server → Client
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "tools": [
      {
        "name": "query_db",
        "description": "Run a read-only SQL query",
        "inputSchema": {
          "type": "object",
          "properties": { "sql": { "type": "string" } },
          "required": ["sql"]
        }
      }
    ]
  }
}

随后模型决定调用某个工具,Client 再发 tools/call,Server 返回执行结果。inputSchema 是 JSON Schema,模型据此知道参数怎么传——这套机制和 function calling 同源,但把「函数定义」从「应用内硬编码」搬到了「Server 自我描述」。

实际应用

Cursor + MCP

Cursor 支持 MCP 后,可以:

  • 直接读取本地数据库 schema
  • 调用外部 API 获取实时数据
  • 读取项目文档和设计稿

配置示例(.cursor/mcp.json):

{
  "servers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
    }
  }
}

Claude Code + MCP

Claude Code 原生支持 MCP,通过 claude mcp add 命令添加 Server:

# 添加文件系统 MCP Server
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/project

# 添加 GitHub MCP Server
claude mcp add github -- npx -y @modelcontextprotocol/server-github

五分钟上手清单

第一次接入,建议按这个顺序,少踩坑:

  1. 挑一个无副作用的 Server 试水——filesystem(只读模式)或 sqlite(指向本地测试库)。不要拿 github / postgres 写库这种带破坏力的当 Hello World。
  2. 在客户端里确认握手成功——Cursor 设置页 / Claude Code claude mcp list 应能看到工具列表。看不到通常是 command 路径或 args 写错。
  3. 手动让模型调一次——例如「列出当前目录所有 .md 文件」,验证 stdio 通路工作。
  4. 加一个真实场景的 Server——比如你常用的笔记/数据库/Jira。
  5. 再考虑写自己的 Server——SDK 见 官方仓库,Python / TypeScript 都有,最小骨架不超过 50 行。

常见 MCP Server

Server功能
filesystem读写本地文件
postgres查询 PostgreSQL 数据库
sqlite查询 SQLite 数据库
github操作 GitHub(PR/Issue/搜索)
gitlab操作 GitLab
slack发送 Slack 消息
google-drive读取 Google Drive 文件
puppeteer浏览器自动化
memory知识图谱持久记忆
sequential-thinking结构化推理

完整列表见 modelcontextprotocol.io/servers;社区聚合也可看 Smithery

与 function calling 的区别

维度function callingMCP
定义方式每个工具硬编码标准化协议
跨工具复用✅ 一次开发,处处可用
运行时发现❌ 预定义✅ 动态发现 Server 能力
生态各自为政统一社区
底层机制模型 API 直传 schema仍是 function calling,但 schema 来自 Server

简而言之:MCP 没有取代 function calling,而是给「函数定义从哪儿来」加了一层标准化。模型那一端的协议(拿到 schema → 决定调哪个 → 传参 → 收结果)没变。

常见踩坑

  • stdio Server 进程没退干净——客户端崩溃时子进程会变孤儿,下次启动连不上端口。Linux/macOS 用 ps aux | grep mcp 清掉;Windows 任务管理器搜 npx / node
  • npx -y 首次拉包慢,握手超时——预先在终端跑一次 npx -y @modelcontextprotocol/server-foo --help 把缓存暖好。
  • 路径含空格 / 中文——server-filesystem 早期版本对 Windows 路径处理粗糙,建议用全英文路径或链接。
  • 凭据明文写在 mcp.json——mcp.json 经常被提交到 git,里面别直接写 DB 密码 / API Key。用环境变量或 Composio 这类托管 Auth 的中间层。
  • 生产环境装社区 Server——MCP Server 拿到的是模型可调用权限,恶意 Server 可以让模型「自愿」泄漏数据。社区 Server 上生产前必须审代码,参考 MCP 1.0 发布日的观点

什么场景不该用 MCP

MCP 不是万能胶水,下面这些场景上 MCP 是给自己加复杂度:

  • 只在一个应用内调用,永不复用——直接 function calling 更轻。
  • 延迟敏感的同步调用——MCP 多了一层 stdio/HTTP 跳转,纳秒级场景别套。
  • 大流量数据搬运——MCP 通信适合「指令 + 元数据」,搬几百 MB 文件应该走旁路(让模型拿到下载链接,而不是把字节流塞进 MCP 消息)。
  • 多 Agent 互相协作——这是 A2A 的目标,不是 MCP。一句话区分:MCP 是 Agent ↔ 工具,A2A 是 Agent ↔ Agent。

生态现状

截至 2026 年中,MCP 已被以下工具支持:

  • Claude Code / Claude Desktop(Anthropic)— 原生
  • Cursor(AI IDE)— 原生
  • Windsurf(AI IDE)— 原生
  • Cline / Roo Code(CLI)— 原生
  • Coze / Dify(Agent 平台)— 部分支持
  • VS Code Copilot — 已支持

社区已有 200+ 个开源 MCP Server,覆盖数据库、云服务、开发工具、办公软件等场景。聚合与一键安装可看 SmitheryMCP Toolbox,权限/Auth 托管可看 Composio

延伸阅读