FastMCP Skill:Python 3 行代码搭建 MCP 服务器的生态地基
FastMCP 正在成为 AI Agent 工具生态的”隐形地基”。作为 Model Context Protocol 的 Python 封装框架,它让开发者用几行代码就能把任意 Python 函数暴露为 MCP 工具,供 Claude Code、Cursor、Cline 等主流 Agent 即插即用。当前全平台 70% 的 MCP 服务器底层跑着 FastMCP 代码,日均下载量突破 100 万次——这不是一个”流行框架”,而是已成基础设施级别的存在。
FastMCP 的设计原则非常明确:让协议细节消失,只留下业务逻辑。传统 MCP 服务器需要处理传输层、Schema 定义、认证配置、错误处理等大量底层工作,FastMCP 通过装饰器模式和 Pythonic API 把这些全部封装,开发者只需要写一个 @mcp.tool() 装饰的 Python 函数,Schema 生成、参数校验、文档补全全部自动完成。
GitHub Star 数约 27,000+(截至 2026-08-23),Forks 2,200+,过去一个月日均增长约 +30/day,8 月 23 日当天再次登上 GitHub Trending 榜单。Hacker News 曾在 2026 年 2 月将 FastMCP 3.0 GA 推上首页,2026 年 3 月”Welcome to FastMCP”再次获得 HN 80+ points。pip 安装量日均 100 万次,稳居 Python MCP 生态第一的位置。
GitHub:https://github.com/PrefectHQ/fastmcp
原作者为 PrefectHQ(Prefect 工作流编排平台的母公司),主要维护者 GitHub username 为 jlowin。Prefect 是开源工作流编排领域的成熟项目,背后有稳定的工程团队支撑,而非个人维护者。项目的技术债务低、更新节奏稳定、社区响应及时。
FastMCP 最初是 MCP Python SDK 的”最佳实践集合”,2024 年其 1.0 核心代码直接被合并进官方 MCP Python SDK——这意味着你现在用的官方 SDK 里,大量设计来自 FastMCP。但项目并未因此消失,而是继续独立演进,专注于提供比官方 SDK 更好的开发体验。
现在的 FastMCP 包含三大核心模块:
- Servers:服务端开发,用装饰器声明工具、资源、Prompt;
- Clients:客户端开发,连接任意 MCP 服务器并与之交互;
- Apps:交互应用,内置 UI 可快速调试 MCP 工具。
此外还有 OpenAPI-to-MCP 自动转换(导入已有 API 直接生成 MCP 服务)、Pythonic sandbox(安全执行不受控代码)、Cloud 托管版本(Python 文件 30 秒变成托管 MCP 服务)等进阶能力。
核心特点如下:
- 装饰器即 API:
@mcp.tool()声明工具,@mcp.resource()声明资源,@mcp.prompt()声明 Prompt,无需手动写 Schema; - 自动 Schema 生成:函数签名 + 类型注解 → 完整 JSON Schema,参数校验开箱即用;
- Server Composition:多个 MCP Server 可组合成一个应用,支持代理模式和链式调用;
- OpenAPI 导入:已有的 FastAPI/OpenAPI 接口可一键转换为 MCP 服务,复用成本接近零;
- 全链路客户端:不只建服务器,也能当 MCP 客户端,连接其他 MCP 服务并编程控制;
- 上下文感知工具:内置
ctx.elicit(),工具可在执行中途向用户请求额外信息,支持多轮交互; - 每天 100 万次下载,全平台 70% MCP 服务器采用,生态成熟度高。
安装只需一行命令,推荐用 uv:
uv add fastmcp
# 或
pip install fastmcp
3 行代码即可跑通第一个 MCP 服务:
from fastmcp import FastMCP
mcp = FastMCP("MyServer")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# 运行服务
mcp.run()
连接 Claude Desktop 或其他 MCP 客户端:
fastmcp install server.py
进阶用法——上下文请求(工具中途向用户提问):
from dataclasses import dataclass
from fastmcp import FastMCP, Context
mcp = FastMCP("Demo")
@dataclass
class DinnerPrefs:
cuisine: str
vegetarian: bool
@mcp.tool()
async def plan_dinner(ctx: Context) -> str:
result = await ctx.elicit(
"What are your dinner preferences?",
response_type=DinnerPrefs,
)
if result.action == "accept":
prefs = result.data
return f"Menu: {prefs.vegetarian and 'vegetarian ' or ''}{prefs.cuisine} tonight!"
return "Cancelled."
适用场景与目标人群:需要给 AI Agent 接入自建工具链的开发者;想把内部 API/数据库/业务流程封装给 Agent 调用的团队;MCP 服务器开发者(不想手写协议层代码);以及需要快速验证 MCP 协议能力的技术负责人。当前 Claude Code、Cursor、Cline、OpenHands 等主流 Agent 均原生支持 MCP,FastMCP 是它们背后最常见的”工具制造机”。
典型输入输出案例:
输入(给 Agent):”帮我查一下韩国劳动法关于加班费的规定”(通过 korean-law-mcp MCP 工具)→ 输出:返回具体法条编号、内容、计算公式,以及相关判例摘要,全程无需人工查法条。
输入(给 Agent):”用 FastMCP 帮我把这个 OpenAPI 文档转成一个 MCP 服务,然后接入 Claude Code” → 输出:自动解析 OpenAPI Schema,生成完整 MCP Server 代码,注册工具并输出 Claude Desktop 配置 JSON,Agent 即可直接调用。
评论区
登录后可评论。