📌 项目:PrefectHQ/fastmcp | 星数:27.9k(2026-09-25) | 协议:Apache-2.0 | 语言:Python | GitHub
一句话定位:"用Python装饰器定义MCP工具——FastMCP让构建MCP服务器像写Flask一样简单。" FastMCP是Prefect团队出品的MCP框架,用装饰器语法声明工具、资源和提示词,自动处理MCP协议细节,几分钟就能搭好一个MCP服务器。
FastMCP的核心是装饰器语法,把普通Python函数变成MCP工具:
from fastmcp import FastMCP
mcp = FastMCP("My Server")
@mcp.tool()
def calculate(a: float, b: float, operation: str) -> str:
"""计算两个数的运算结果"""
if operation == "add":
return str(a + b)
return "unknown operation"
@mcp.resource("file://{path}")
def read_file(path: str) -> str:
"""读取文件内容"""
with open(path) as f:
return f.read()
@mcp.prompt()
def code_review(code: str) -> str:
"""生成代码审查提示"""
return f"请审查以下代码:\n{code}"FastMCP自动从类型注解生成MCP schema,AI助手能看到参数类型和描述。和 Chrome DevTools MCP 桥接已有工具不同,FastMCP是构建自定义MCP服务器的框架。
pip install fastmcp
# server.py
from fastmcp import FastMCP
mcp = FastMCP("My First Server")
@mcp.tool()
def greet(name: str) -> str:
"""问候"""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run() # 默认stdio传输支持两种传输模式:mcp.run(transport="stdio")用于本地集成,mcp.run(transport="sse", port=8000)用于远程访问。
async def工具自动支持file://{path}自动解析参数| ✅ 优点 | ⚠️ 不足 |
|---|---|
| 装饰器语法,极简定义工具/资源/提示词 | 功能较新,生态仍在发展 |
| 自动从类型注解生成MCP schema | 部分高级场景文档示例少 |
| 支持stdio和HTTP/SSE双传输 | |
| Prefect团队出品,工程质量高 | |
| Apache-2.0协议 |
官方SDK更底层,需手动处理协议细节。FastMCP用装饰器封装了这些细节,几行代码就能定义工具。FastMCP底层基于官方SDK构建。
支持。用async def定义工具函数即可,FastMCP自动处理异步调用。
用transport="sse"模式启动,通过反向代理(nginx)暴露。也可用Docker打包部署。