模块 1:MCP 很火,但自己搭服务器有多痛苦?
MCP(Model Context Protocol)现在有多火,不用多说了。
但当你真的想自己写一个 MCP 服务器的时候——
打开官方文档,看到的是传输层协议、Schema 定义、认证配置……还没开始写业务逻辑,光是协议层面的东西就已经劝退了一大半人。
有没有一种更简单的方式?
写一个 Python 函数,然后自动变成 MCP 工具——Schema 自动生成、参数自动验证、文档自动补全——剩下的全交给框架处理。
这就是 FastMCP 做的事。
模块 2:FastMCP 是什么?
FastMCP 是一个 Python 优先的 MCP 框架,由 PrefectHQ(知名工作流编排公司 Prefect 的母公司)开发和维护。
github.com/PrefectHQ/fastmcp 目前 ⭐ 25k stars。
它的历史很有意思——
2024 年,FastMCP 1.0 的核心代码被直接合并进了 官方 MCP Python SDK,意味着你现在用的 MCP Python SDK,里面很多最佳实践都来自 FastMCP。
但 FastMCP 项目本身没有消失,而是继续独立发展,专注于提供比官方 SDK 更好的开发体验。
现在的 FastMCP:
- • 🌍 全平台:70% 的 MCP 服务器底层跑着 FastMCP 代码
- • 🔧 三个核心模块:Servers(服务端)、Clients(客户端)、Apps(交互 UI)
- • 📚 文档最全,官网 gofastmcp.com 提供完整指南和升级路径
简单说:FastMCP 是目前 Python 生态里,搭建 MCP 服务最简单、最成熟的选择。
模块 3:3 行代码,跑通你的第一个 MCP 服务
不想看长文档?直接从这里开始,10 分钟跑通。
第一步:安装
推荐用 uv(最快的 Python 包管理器):
uv pip install fastmcp
也可以用 pip:
pip install fastmcp
第二步:写代码
创建一个 server.py,内容如下:
from fastmcp import FastMCPmcp = FastMCP("我的工具 🚀")@mcp.tool()def add(a: int, b: int) -> int: """加法计算器""" return a + b@mcp.resource("data://status")def get_status() -> str: """返回系统状态""" return "所有服务运行正常 ✅"@mcp.prompt()def write_blog(topic: str) -> str: """生成博客大纲""" return f"请为'{topic}'写一篇 1000 字的技术博客大纲"if __name__ == "__main__": mcp.run()
没错,就是这么简单——写函数,加装饰器,mcp.run(),搞定。
第三步:连接到 AI 助手
方式一:Claude Desktop(最常见)
在 Claude Desktop 的 MCP 配置文件中添加:
{ "mcpServers": { "my-tools": { "command": "uv", "args": ["--directory", "/你的/项目路径", "run", "python", "server.py"] } }}
方式二:Cherry Studio(零代码 GUI)
打开 Cherry Studio → 设置 → MCP 服务器 → 添加:
- • URL:
http://localhost:8000/mcp(本地运行时地址)
全程不需要了解 MCP 协议细节。
模块 4:三个核心功能,分别解决什么问题?
1. 🖥️ Servers — Python 函数秒变 MCP 工具
传统方式手写 MCP 服务,你要处理:
FastMCP 全部自动完成。
你只需要专注于写 Python 函数的逻辑,剩下的它全部包圆:
@mcp.tool()def search_news(keyword: str, days: int = 7) -> list[dict]: """ 搜索近期的新闻 Args: keyword: 搜索关键词 days: 搜索最近几天(默认7天) """ # 你的业务逻辑 return [...]
调用时,Claude/AI 助手会自动看到这个函数的说明和参数,直接用自然语言调用即可。
2. 🔗 Clients — 连接任意 MCP 服务器
FastMCP 不只是服务端框架,也是一个全功能 MCP 客户端:
from fastmcp import FastMCPclient = FastMCP.client()# 连接远程 MCP 服务器await client.connect("https://api.example.com/mcp")# 调用远程工具result = await client.call_tool("search_news", {"keyword": "AI"})
支持三种传输协议:
3. 🎨 Apps — 在对话中直接渲染交互 UI
这是 FastMCP 最亮眼的功能——你的工具在 AI 对话里直接显示成交互界面:
@mcp.tool()def create_form(title: str): """创建表单""" return App( kind="form", props={ "title": title, "fields": [ {"name": "email", "type": "email", "label": "邮箱"}, {"name": "content", "type": "textarea", "label": "内容"} ] } )
用户在 AI 对话里点击工具,直接弹出表单、滑块、文件上传框——不需要切换到其他界面。
模块 5:为什么选 FastMCP?
FastMCP 的核心优势:
- • ✅ Python 优先:Python 开发者零门槛,不用学 TypeScript 或 Go
- • ✅ 上手最快:3 行代码跑通,文档最全,gofastmcp.com 完整指南
- • ✅ 生产可用:Prefect 背书,每天 100 万次下载,70% 市场占有率
- • ✅ 协议标准:核心进入官方 SDK,持续跟进 MCP 最新版本
- • ✅ 社区活跃:Discord 讨论热烈,持续更新迭代
适合场景:
- • 🔧 内部工具 MCP 化:把现有 Python 函数快速暴露给 AI 助手
- • 🔒 私有数据接入:数据库查询、文件读取、API 调用,全部 MCP 化
- • 👥 团队协作:团队共享一套工具库,Claude/Cursor 都能用
FastMCP vs 其他选择:
模块 6:现在就开始
FastMCP 把 MCP 开发的门槛降到了最低。你不需要理解协议,不需要手写 Schema,不需要配置认证——你只需要会写 Python 函数。
不想卷 MCP 协议?FastMCP 帮你躺赢。
资源汇总:
- • GitHub:github.com/PrefectHQ/fastmcp
- • 安装:uv pip install fastmcp
- • Discord:discord.gg/uu8dJCgttd
- • 官方文档:gofastmcp.com/getting-started/quickstart
🎯 你最想用 MCP 封装哪个现有工具?
评论区聊聊 👇