Skip to content

MCP 协议开发实战

从零构建你的第一个 MCP Server,让 AI 成为万能工具人。


1. MCP 是什么 —— AI 世界的 USB-C

1.1 从碎片化到标准化:为什么需要 MCP

你有没有遇到过这样的场景:

场景 1:你想让 Claude 读你的本地文件
  → 手动复制粘贴到对话框?文件太大粘不下?

场景 2:你想让 GPT 查你的数据库
  → 写一个 API → 包装成 Function Calling → 只能给 GPT 用
  → 换个模型?全部重写。

场景 3:你想让 AI 助手操控 Slack / GitHub / Jira
  → 每个 AI 产品都要单独开发插件
  → Claude 的插件给 ChatGPT 用不了
  → N 个 AI 产品 × M 个服务 = N×M 个集成

这就是 MCP 诞生前的现实:每个 AI 产品都在重复造轮子

MCP 的解决方案

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年底发布的开放标准。它的目标很简单:让所有 AI 应用以统一的方式连接外部数据和工具。

没有 MCP 的世界(N×M 问题):

  Claude ──→ GitHub 集成
  Claude ──→ Slack 集成
  Claude ──→ 数据库集成
  GPT   ──→ GitHub 集成(重新开发!)
  GPT   ──→ Slack 集成(重新开发!)
  GPT   ──→ 数据库集成(重新开发!)
  Gemini──→ ...(又要重新开发!)

  3 个 AI × 3 个服务 = 9 个集成

有 MCP 的世界(N+M 方案):

  Claude ──┐
  GPT    ──┼──→ MCP 协议 ──→ GitHub MCP Server
  Gemini ──┘                  Slack MCP Server
                              数据库 MCP Server

  3 个 AI + 3 个 Server = 6 个组件(各开发一次)

一句话概括:MCP 就是 AI 世界的 USB-C。不管什么设备(AI 模型),不管连什么外设(工具/数据源),用同一个接口标准就行。

为什么叫"模型上下文协议"

名字很直白:

  • Model:AI 模型(Claude、GPT、Gemini 等)
  • Context:上下文——文件内容、数据库记录、API 数据……一切 AI 需要"看到"或"操作"的外部信息
  • Protocol:协议——沟通的标准格式和规则

所以 MCP = 让 AI 模型以标准化方式获取和操作外部上下文的协议。


1.2 MCP vs Function Calling vs Plugin —— 关键区别

你可能会问:"这跟 OpenAI 的 Function Calling 有什么区别?跟 ChatGPT 的 Plugin 呢?"

区别很大。它们解决的问题层级不同:

层级对比:

  Function Calling(函数调用)
  → AI 模型层面的能力:模型能输出结构化的函数调用请求
  → 但"谁来执行函数、怎么连接外部服务"——不管

  Plugin / GPTs
  → 特定平台的解决方案:只在 ChatGPT 生态内有效
  → 换个 AI 平台 → 插件报废

  MCP(模型上下文协议)
  → 通用的连接标准:不绑定任何模型或平台
  → 写一次 MCP Server → Claude、Cursor、Cline、你的自定义 Agent 都能用

三者的详细对比

特性Function CallingChatGPT PluginMCP
提出者OpenAIOpenAIAnthropic
定位模型能力平台插件通用协议
绑定平台❌ 仅 OpenAI API❌ 仅 ChatGPT✅ 任何支持 MCP 的 Host
执行方在哪你的代码里OpenAI 服务器MCP Server(本地或远程)
支持的能力工具调用工具 + 数据工具 + 数据 + 提示模板
协议标准JSON SchemaOpenAPIJSON-RPC 2.0
状态管理有(会话级别)
开源部分完全开源

关键差异图解

Function Calling:
  你的代码 ──→ OpenAI API ──→ 模型返回 tool_calls

              你自己执行函数 ←────────┘
  → 你负责一切:执行、连接、错误处理

MCP:
  MCP Host(Claude/Cursor)


  MCP Client ──→ MCP Server(独立进程)

                      ├── 暴露工具(Tools)
                      ├── 提供数据(Resources)
                      └── 提供模板(Prompts)
  → Server 是独立的、标准化的、可复用的

类比:Function Calling 好比"你告诉 AI 你家有哪些工具,但每次用工具都得你亲手来"。MCP 好比"你开了一家工具店(MCP Server),任何 AI 顾客进来都能自助使用,不需要你一对一服务"。


1.3 谁在用 MCP?生态现状一览

MCP 虽然年轻(2024 年 11 月发布),但生态扩展速度远超预期。

支持 MCP 的 Host(AI 应用)

Host类型MCP 支持
Claude DesktopAI 助手✅ 原生支持(官方出品)
CursorAI 编程 IDE✅ 原生支持
ClineVS Code 插件✅ 原生支持
WindsurfAI 编程 IDE✅ 原生支持
Zed编辑器✅ 原生支持
ContinueAI 编程助手✅ 原生支持
OpenAI Agents SDKAgent 框架✅ 已支持
LangChainAgent 框架✅ 已支持

官方和社区 MCP Server

官方提供的 Server(开箱即用):

  📁 Filesystem    → 读写本地文件
  🐙 GitHub        → 仓库操作、PR、Issue
  🐘 PostgreSQL    → 数据库查询
  📊 Google Drive  → 文档读取
  💬 Slack         → 消息发送和搜索
  🔍 Brave Search  → 网页搜索
  🐳 Docker        → 容器管理
  ☁️  AWS           → 云服务操作

社区开发的 Server(持续增长):

  📝 Notion        → 笔记和数据库
  📧 Gmail         → 邮件操作
  📅 Google Calendar → 日历管理
  🎵 Spotify       → 音乐控制
  🏠 Home Assistant → 智能家居
  ... 数百个,而且每天都在增加

MCP 的行业认可

2025 年以来的关键里程碑:

  • OpenAI 宣布在 Agents SDK 中支持 MCP(最大的竞争对手也认了这个标准)
  • Google 的 Gemini 生态开始支持 MCP
  • 微软 的 Copilot Studio 支持 MCP
  • GitHub 上 MCP 相关仓库的 star 数持续飙升

判断标准:当一个协议连它的竞争对手都在支持时,它就不仅仅是一个公司的项目了——它正在成为事实标准。MCP 正处于这个阶段。


本章小结

知识点要点
MCP 是什么模型上下文协议,AI 世界的 USB-C
解决的问题N×M 集成问题 → N+M 标准化方案
vs Function CallingFC 是模型能力,MCP 是通信协议
vs PluginPlugin 锁平台,MCP 跨平台
三大原语Tools(工具)、Resources(数据)、Prompts(模板)
生态现状Claude/Cursor/Cline 原生支持,OpenAI/Google 也已加入

下一章预告:MCP 架构解剖 —— Host、Client、Server 三层架构、JSON-RPC 2.0 通信协议、Transport 层的选择。了解 MCP 内部是怎么运转的。

坚持是一种品格