MCP 火了之后,大家发现「写个 MCP 服务」并不难,但要把工具、资源、提示词的 schema、校验、文档、传输层都弄对,琐碎活一点也不少。FastMCP 的出现就是为了解决这个:它是目前最流行的 Python 系 MCP 应用框架,口号是「The fast, Pythonic way to build MCP servers and clients」。你只要写一个普通 Python 函数,加个装饰器,FastMCP 就自动帮你生成工具 schema、参数校验和文档,几行代码起一个可被任意 MCP 客户端接入的服务。

项目基本信息

信息项详情
项目名称fastmcp
GitHub地址https://github.com/PrefectHQ/fastmcp
项目描述🚀 The fast, Pythonic way to build MCP servers and clients.
作者PrefectHQ
开源协议Apache-2.0
开源状态公开
LanguagesPython
Stars28,213
Forks2,523
支持平台Windows / macOS / Linux
最后更新2026-10-27

一、项目介绍

FastMCP 是 Prefect 团队维护的 MCP 应用框架,覆盖服务端、客户端与交互式应用。它用装饰器把普通 Python 函数变成 MCP 工具,基于类型注解自动生成入参校验与 schema,并内置 stdio 与 Streamable HTTP 传输。文档站点 gofastmcp.com 内容完善,迭代活跃,是 Python 开发者入局 MCP 最顺手的起点。

二、核心优势

  • 极简 API:一个 @mcp.tool 装饰器就能把函数变成 MCP 工具。
  • 全家桶:服务端、客户端、交互式应用一套框架全包。
  • 自动校验:基于类型注解自动生成入参校验与 OpenAPI 式 schema。
  • 多传输:stdio、Streamable HTTP 开箱即用,部署灵活。

三、适用场景

  • 快速把内部 API、数据库、脚本封装成 AI 可调用工具。
  • 给编码 Agent 定制专属 MCP 服务。
  • 构建带前端界面的 MCP 交互应用。
  • 学习 MCP 协议的入门首选框架。

四、安装教程

需要 Python 3.10+,推荐用 uv 或 pip:

pip install fastmcp
# 或
uv add fastmcp

最简示例,server.py:

from fastmcp import FastMCP

mcp = FastMCP("Demo")

@mcp.tool
def add(a: int, b: int) -> int:
    '''Add two numbers'''
    return a + b

if __name__ == "__main__":
    mcp.run()

本地调试可用官方 Inspector:

fastmcp dev server.py

常见报错:ModuleNotFoundError: fastmcp——确认装在运行环境里;Python 3.9 不支持——升级到 3.10+。

五、使用示例

启动后,任意 MCP 客户端(如 Claude Desktop)配置指向该脚本即可调用 add。你也可以写客户端连回去:

from fastmcp import Client

async def main():
    async with Client("server.py") as client:
        result = await client.call_tool("add", {"a": 1, "b": 2})
        print(result)

六、常见问题

  • 和官方 SDK 什么关系?FastMCP 是构建在官方 Python SDK 之上的高层封装,开发体验更好。
  • 支持哪些传输?stdio 与 Streamable HTTP。
  • 能接资源(resources)和提示(prompts)吗?能,均有对应装饰器。
  • 生产部署?配合 fastmcp run 或挂到 HTTP 服务即可。

七、总结

FastMCP 把「写 MCP 服务」从一堆样板代码,压缩成了几个装饰器。它让普通 Python 开发者也能几分钟内交付一个像样的 AI 工具服务,是当下入局 MCP 最顺手的起点。