MCP 协议教程:让 AI Agent 标准化连接工具(USB-C 类比)

约 55 分钟L2L3T3T4

课程来源

[来源] FDE 实战课(fde-teach)

[收录说明] 本课未随文署名,按课程线署名。

本课目录(15 节)

🎯 本节目标

学完这一节,你能:

  • 理解 MCP(Model Context Protocol) 协议
  • 说清 MCP vs Function Calling 的区别
  • 用官方 MCP Server 给 Agent 加一个标准化工具

🍎 生活化类比

MCP = AI 工具的 USB 接口。

在 USB 出现前,每个外设(鼠标、键盘、打印机)都有自己专用的接口,电脑要装一堆驱动。

Function Calling 就是"专用接口"——每个模型、每个工具的对接方式都不一样,换个模型就要重写。

MCP 是 AI 界的 USB-C:一个标准协议,任何工具按 MCP 规范实现一次,所有支持 MCP 的客户端(Claude Desktop / Cursor / Dify / 你的 Agent)都能直接用。

📖 概念讲解

MCP 三原语

原语作用例子
Tools让模型执行动作查数据库、发邮件、调 API
Resources给模型提供数据读文件、读数据库表
Prompts预设的提示词模板代码审查模板、SQL 生成模板

MCP vs Function Calling

Function CallingMCP
谁定义工具开发者写代码工具方按 MCP 标准实现
复用性每个应用重写实现一次,处处可用
标准化各家不一统一协议
生态零散官方 + 社区 65+ Server

一句话:Function Calling 是"自己接电线",MCP 是"用标准插座"。

协议版本演进(2026-08 现状)

版本时间加了什么
1.02024-11协议发布(Anthropic 发起)
2025-03-262025-03结构化输出、OAuth 授权、工具列表变更通知
2025-06-18(最新)2025-06Elicitation(服务端反过来向用户征询输入)、Resource Links(资源里能带可点击链接)、OAuth 2.1 强化、协议版本协商强化、移除 JSON-RPC batching

给家里人讲:USB-C 也有"版本"(USB 2.0/3.0/4.0),充电口长得一样,但新线传输更快。MCP 同理——接口规范在升级,但"一个口通吃"的核心思想没变。你写 MCP Server 时装最新的 mcp SDK,兼容性由 SDK 自动处理,不用操心。

🛠️ 动手实操:用官方 Filesystem MCP Server

Step 1:装 MCP 客户端(Claude Desktop 或自建)

最简单:用 Claude Desktop。配置文件 claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/你/fde-learn"]
    }
  }
}

Step 2:重启 Claude Desktop

现在 Claude 能读你指定目录的文件了。问它:"读 fde-learn 里的 llm.py 并解释",它会自动调 MCP filesystem 工具。

Step 3:自己写个 MCP Server(进阶)

pip install mcp
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-tools")

@mcp.tool()
def get_weather(city: str) -> str:
    """获取城市天气(简化版)"""
    return f"{city} 今天晴,25度"

if __name__ == "__main__":
    mcp.run()

这个 get_weather 工具,任何 MCP 客户端都能调——你写一次,全生态可用。

⚠️ 常见错误

问题原因解决
MCP Server 启动后客户端连不上stdio 传输的配置写错(命令/路径不对);若是 SSE/HTTP 传输才是端口被占检查 claude_desktop_config.json 里的 command/args 路径,看客户端日志
工具不被模型调用工具描述写得太模糊工具的 docstring 要写清楚"什么时候该用我"
和 Function Calling 混淆以为要二选一MCP 底层也是 Function Calling,只是标准化了工具暴露方式

✅ 自测题

<summary>1. MCP 的三原语是哪三个?</summary> Tools(执行动作)、Resources(提供数据)、Prompts(预设模板)。 </details> <summary>2. MCP 相比 Function Calling 的核心优势是什么?</summary> **一次实现,处处可用**——工具按 MCP 标准写一次,任何支持 MCP 的客户端(Claude/Cursor/Dify/你的 Agent)都能直接用,不用每个应用重写。 </details>

📚 总结

MCP 是 AI 工具的 USB-C,标准化让工具一次实现处处可用。2026 年是 Agent 生态的连接层基石。

🏋️ 配套自练

🔗 延伸阅读


← 上一节:LangGraph | 下一节:RAG 基础 →

随堂测

逐题作答,即时反馈

0 / 3 已作答
  1. 1. 关于 MCP 的三原语,下列对应关系正确的是?

  2. 2. MCP 相比 Function Calling 的核心优势是?

  3. 3. 按照讲义中的常见错误总结,当你写好 MCP Server 后客户端连不上,且使用的是 stdio 传输时,最可能的原因是?