FastMCP 中文入门 / FASTMCP LAB
入门 · HELLOEP 0101 / 00
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 APIMCP Tool
谁先知道能力人读文档 / SDK模型 list_tools
调用入口URL + methodtool 名 + 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。