基于 Model Context Protocol 的 Python 框架,通过装饰器模式快速构建 MCP 服务器、客户端及交互式应用。
FastMCP 是由 Prefect 团队维护的开源 Python 框架,围绕 MCP(Model Context Protocol)生态提供三大核心能力:
服务器构建:通过 @mcp.tool、@mcp.resource、@mcp.prompt 装饰器将 Python 函数直接暴露为 MCP 组件,自动完成 JSON Schema 生成、参数验证与文档产出。支持 STDIO 和 HTTP(Streamable HTTP)传输协议,内置 OAuth 认证、Middleware 拦截链、Providers 动态注册、Tag-Based Filtering、Strict Input Validation 等生产级特性。
客户端连接:异步客户端 API 支持以编程或 CLI 方式连接任意 MCP 服务器,自动处理传输协商、认证流程与协议生命周期管理。
交互式应用(v3 新增):通过 @mcp.tool(app=True) 配合 Prefab 组件库,为工具结果添加表格、图表、表单等可视化 UI,工具本身仍作为标准 MCP 工具正常工作。
此外提供完整的 CLI 工具链(run/inspect/install/client/generate-cli/auth)、后台任务系统、OpenTelemetry 可观测性集成,以及 Anthropic/OpenAI/Gemini 等 LLM SDK 可选集成。支持通过 Prefect Horizon 免费托管部署。
快速开始:
from fastmcp import FastMCP
mcp = FastMCP("My MCP Server")
@mcp.tool
def greet(name: str) -> str:
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run()
安装:pip install fastmcp(可选依赖:tasks、apps、anthropic、openai、gemini、azure)
要求:Python >= 3.10(支持 3.10/3.11/3.12/3.13)
版本说明:当前主版本 v3.x(最新 v3.2.4,共 96 个 release)。采用语义化版本,但为适配快速演进的 MCP 协议,可能在 minor 版本中引入破坏性变更,建议生产环境锁定精确版本。
历史背景:FastMCP 1.0 曾于 2024 年被并入官方 MCP Python SDK,此后作为独立项目持续维护(具体时间线待确认)。