什么是fastmcp 2.0,怎么使用它构建mcp项目
fastmcp 2.0是一个Python框架,用于构建和集成MCP(Model Context Protocol)服务器与客户端,简化LLM应用开发。它通过装饰器快速声明工具/资源/提示模板,自动生成schema,支持多种传输协议(STDIO/HTTP/SSE)。2.0版新增客户端功能、服务组合/代理、OpenAPI转换及内存测试等生产级特性。典型应用包括:20行代码构建MCP服务,通过客户端调用
fastmcp 2.0 是什么
fastmcp 2.0 是一个用来构建 MCP(Model Context Protocol) 服务器与客户端的 Python 框架。它把 MCP 的复杂协议细节(工具/资源/提示模板、传输、错误处理等)都“框起来”,你只需用装饰器写函数,就能把能力以 MCP Server 的方式暴露给各种 LLM 应用(如 Claude Desktop、你自己的 Agent Runtime)。2.0 相比早期版本,除了造 Server,更提供 Client、代理/组合、从 OpenAPI/FastAPI 一键生成 MCP 服务、内存级测试、认证 等面向生产的能力。
背景:MCP 是把“工具/数据源”用统一接口暴露给 LLM 的开放标准(常被比喻为 “AI 的 USB-C”)。可以把它理解为“专为 LLM 交互设计的 API 标准”。
fastmcp 2.0 亮点(实用向)
• 用 @mcp.tool / @mcp.resource / @mcp.prompt 快速声明工具、只读资源、提示模板;自动从类型标注/Docstring 产出 schema。
• 同时提供 Client,支持 STDIO / HTTP / SSE / In-Memory 传输,便于程序内测与集成。 
• 组合 & 代理:把多个 MCP Server 拼在一起,或代理远端 Server;还能从 OpenAPI/FastAPI 直接生成 MCP Server。
• 内存级测试与更完善的文档/站点(gofastmcp.com)。
• 2.0 是活跃版本;1.0 已并入官方 MCP Python SDK,2.0 在其上扩展为完整生态。
想系统了解 MCP 本身,可参考 modelcontextprotocol.io 的 Quickstart。
⸻
最小可跑示例
- 一个 20 行的 MCP Server
server.py
from fastmcp import FastMCP, Context
mcp = FastMCP("demo-server")
@mcp.tool
def add(a: int, b: int) -> int:
"""两数相加"""
return a + b
@mcp.resource("config://version")
def version():
return "2.0.0-demo"
@mcp.prompt
def summarize(text: str) -> str:
"""生成一个“请总结”的提示"""
return f"请用要点总结:\n\n{text}"
if __name__ == "__main__":
mcp.run() # 默认 stdio;也可 mcp.run(transport="http", host="127.0.0.1", port=8000, path="/mcp")
安装 & 运行:
pip install fastmcp
python server.py
或直接:fastmcp run server.py
(官方 README 与文档给出了相同的运行方式与多传输支持。) 
- 用 fastmcp Client 调这个 Server
client.py
import asyncio
from fastmcp import Client
async def main():
# 方式 A:本地脚本(STDIO 传输)
async with Client("server.py") as c:
tools = await c.list_tools()
print("tools:", [t.name for t in tools])
res = await c.call_tool("add", {"a": 5, "b": 7})
print("add =", res.text) # 12
# 方式 B:若 server 以 HTTP/SSE 暴露,则用 URL 连接
# async with Client("http://127.0.0.1:8000/mcp") as c: ...
asyncio.run(main())
(Client(…) 支持 stdio/HTTP/SSE/内存直连等多种传输,接口在 fastmcp 2.0 的 README 里有完整范例。)
⸻
进阶:更贴近生产的用法
• 从 OpenAPI/FastAPI 生成 MCP:已有 REST 服务?可 FastMCP.from_openapi() 或 from_fastapi() 直接生成 MCP,免重写。
• 组合多个 Server:把“搜索”“数据库”“知识库”各自做成 Server,再在顶层 mcp.mount() 组装成一个大服务。
• 代理远端:用 as_proxy() 桥接远端 SSE/HTTP 到本地,或对第三方 Server 加一层鉴权/审计。
• 内存测试:Client(FastMCP(…)) 直接与内存中的 Server 对接,单测无需起进程与网络。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)