FastMCP 中文入门 · 官方文档陪读
FastMCP 是什么?
装好并写出第一个 Tool
我自己按官方 Welcome / Installation / Quickstart 跑通后,再用大白话把概念和最小可跑代码逐行拆给你。
▸ 方向键 / 空格 / 点击翻页 · 右下角可“自动播放”
开场:说明这是官方文档陪读第1课,目标是装好 FastMCP、写出第一个可被发现的 Tool,并用 verify 绿灯验收。
本期速览 · OVERVIEW
三件能验收的事
讲明白
MCP
工具插座标准
装好
uv sync
核实版本
写出来
@mcp.tool
greet 可发现
验收
verify
进程内绿灯
速览四格:概念、安装、装饰器、verify。强调不是听完就会,而是能跑通。
学习目标
这节课你学完能做什么
很多人一上来就乱配 MCP,分不清「函数写了」和「模型能发现」。我把第1课压成三件能勾选的事。
1
能用自己的话说明:MCP 是什么、FastMCP 帮你省了什么
2
能在本机 安装 FastMCP,并用一条命令核实版本
3
能写出并读懂一个 @mcp.tool,跑通 verify.py 绿灯
对应官方三页:Welcome、Installation、Quickstart。本课不讲宿主接通。
大白话
MCP / FastMCP 是什么
MCP
给 AI 用的「工具插座标准」:模型能按约定发现并调用你提供的能力。
FASTMCP
写这套能力最常用的 Python 框架:你写普通函数,框架生成 schema、校验、管传输与协议。
记住:MCP 是标准,FastMCP 是写 server 的常用 Python 框架。
官方三根柱子
Servers · Clients · Apps
Servers
把函数 / 数据 / 提示词暴露成 MCP 能力
本课主学
Clients
用代码或命令连接并调用 server
本课用 Client 验收
Apps
tool 返回可交互界面
后段再讲
本课主学 Servers;用 Client 做进程内验收;Apps 以后再说。
收藏卡 · REST vs MCP
和普通 REST API差在哪
REST 要人自己知道 URL 拼请求;MCP Tool 多一层——模型先问「你有哪些工具」,再按 schema 调。不是取代 REST,是给 Agent 多一种暴露方式。
| 维度 | REST API | MCP Tool |
|---|---|---|
| 谁先知道能力 | 人读文档 / SDK | 模型 list_tools |
| 调用入口 | URL + method | tool 名 + JSON 参数 |
| 典型宿主 | 浏览器 / App / 后端 | Cursor / Claude Desktop / Agent |
强调可发现性:list_tools 是 REST 没有的那一层。
安装
装好,并用一条命令核实版本
官方推荐 uv。代码在 fastmcp-lab。以本机打印版本为准。
terminalfastmcp-lab
# 进入仓库 · 同步依赖 · 打印版本 cd fastmcp-lab uv sync uv run python -c "import fastmcp; print(fastmcp.__version__)"
撰写日版本 4.0.0b2(截至 2026-08-07)。锁范围 fastmcp[tasks]>=4.0.0b1,<4.2.0。
别跳过印版本这一步——后面翻车时要能对上文档版本。
Quickstart 四步
从建 Server 到 Client 调用
1
创建 Server
mcp = FastMCP("名字")2
加 Tool
@mcp.tool 装饰普通函数3
运行
mcp.run() · 默认 stdio,给宿主子进程4
Client 调用
本课把进程内 Client 写进 verify.py · 无宿主也能验收
官方 Quickstart 用 HTTP Client;本课为了可重复验收,把 Client 写进 verify。
收藏卡 · @mcp.tool 三件套
上架登记,模型才能发现
我踩过:函数写好了却忘了 @mcp.tool——代码在,模型发现不了。
1
函数招牌
def greet(name: str) -> str · 名 / 参 / 返回型 → 调用表2
说明书 docstring 用人话写「干什么」
3
真正干活 return;上面挂 @mcp.tool 才算上架
口令:无装饰器 = 普通函数;有装饰器 = Agent 可发现 Tool。
三件套:招牌、说明书、干活;装饰器是上架。
server.py · 最小 greet
核心就这几行
ep01-hello-tool/server.py核心
from fastmcp import FastMCP mcp = FastMCP("ep01-hello-tool") @mcp.tool def greet(name: str) -> str: """向某人问好。Agent 可发现并调用。""" return f"Hello, {name}!" # mcp.run() # 默认 stdio
逐行:导入 → 建 server → 装饰器 → 三件套 → run 给宿主。
verify.py · 双断言
先发现,再真调一次
官方用 HTTP Client;我写成可重复验收脚本——不开 Cursor 也能看绿灯。
ep01-hello-tool/verify.py核心
async with Client(mcp) as client: tools = await client.list_tools() assert "greet" in [t.name for t in tools] result = await client.call_tool("greet", {"name": "会勇"}) assert result.data == "Hello, 会勇!" assert result.is_error is False
绿灯文案:EP01 OK · greet 可发现且返回 Hello, 会勇!
发现性断言 + 行为断言,缺一不可。
本节练习
必做 + 选做
必
uv run python ep01-hello-tool/verify.py → 出现 EP01 OK选
改 return 为
f"你好,{name}!" → 同步改 verify 期望;不一致应失败宿主接通留给后面的课。本课过关标准只有一件:verify 绿灯。
练习要能分辨对错:改返回值不改 assert 必须红。
小结
带走三句话
1
MCP:给模型用的工具协议;可发现再调用
2
FastMCP:Python 写 MCP 的常用框架;装饰器注册 tool
3
本课交付:装好依赖 → 一个 greet tool → verify 绿灯
函数写了 ≠ 模型能发现。@mcp.tool 才是上架。
来源:官方 Welcome / Installation / Quickstart,查阅日 2026-08-07。
选题征集
你卡在 MCP 的哪一步?
①
装依赖
uv / 版本对不上
②
写 Tool
装饰器与 docstring
③
接 Cursor
宿主配置(后课)
④
验收红灯
assert 对不上
片尾征集,不预告具体下一课标题硬推。
— FastMCP 中文入门 · EP 01 —
会勇禾口王的AI笔记
FastMCP 中文入门 · FASTMCP LAB · EP01 · @huiyonghkw
装好 · 写出第一个 Tool · verify 绿灯
系列 · 官方文档陪读 · 边造边学
微信搜 会勇禾口王的AI笔记,回复 MCP 领收藏卡清单
片尾签收。引导公众号回复 MCP。