项目介绍
FastMCP 是一个面向 Python 开发者的 MCP 应用框架。它把服务器端的工具、资源和提示词声明,客户端连接,以及交互式应用放在同一套 Python API 中。最小服务器只需创建 FastMCP 实例并用装饰器注册函数;本地可用 stdio,远程部署可用 Streamable HTTP。
核心功能
用 Python 函数定义 MCP 工具、资源和提示词
通过 FastMCP 实例及装饰器将带类型标注的 Python 函数注册为工具,并用相同框架组织资源和提示词。
构建可连接本地或远程服务器的 MCP 客户端
Client API 支持进程内连接、stdio 子进程与 HTTP 端点,适合测试或编排多个 MCP 服务。
通过中间件、认证、Provider 与 Transform 扩展服务器
服务器文档提供认证、中间件、Provider 和 Transform 等扩展点,用于控制请求、能力来源和暴露方式。
为支持的客户端构建交互式 MCP 应用
FastMCP Apps 可为支持该能力的 MCP 客户端提供对话内交互界面。
安装与连接
在 Python 3.10 或更高版本的隔离环境中使用 uv 或 pip 安装 FastMCP,然后创建一个最小服务器并用 stdio 启动。
让 AI Agent 帮你安装
把这段话发送给 Codex、Claude Code 或其他可以操作本地环境的 AI Agent。
请帮我安装 FastMCP。项目地址:https://github.com/PrefectHQ/fastmcp。先阅读 README、docs/getting-started/installation.mdx、docs/getting-started/quickstart.mdx 和 pyproject.toml,确认当前 Python 版本至少为 3.10,并优先在隔离环境中按项目文档执行 uv add fastmcp;若项目不用 uv,再使用 pip install fastmcp。生产项目请先说明并建议精确锁定当前兼容版本,不要擅自改写既有锁文件。安装后运行 fastmcp version,再创建官方快速入门的最小 greet 服务器并执行 fastmcp run my_server.py:mcp。请报告安装版本、修改的文件、启动结果和任何未验证项;如需凭据、扩大文件或网络权限、开放 HTTP 端口、覆盖文件或执行高风险操作,先征得我的确认。- Python 3.10 或更高版本
- uv 或 pip,以及一个隔离的 Python 虚拟环境
- 能够在本地创建 Python 文件并启动进程
uv add fastmcp- 1安装并检查 CLI
在隔离环境执行 uv add fastmcp,然后运行 fastmcp version。若使用 pip,则按官方替代命令执行 pip install fastmcp。
- 2创建最小 MCP 服务器
新建 my_server.py,导入 FastMCP,创建 mcp = FastMCP("My MCP Server"),再用 @mcp.tool 装饰一个接收 name 并返回问候语的 Python 函数。
- 3通过 stdio 启动
执行 fastmcp run my_server.py:mcp。stdio 是默认传输,适合本地 MCP 客户端以子进程方式启动。
- 4按需切换到 HTTP
远程或自托管场景可执行 fastmcp run my_server.py:mcp --transport http --port 8000。对外开放前先配置认证、错误隐藏和网络访问控制。
先运行 fastmcp version 确认 CLI 可用;再把快速入门示例保存为 my_server.py,执行 fastmcp run my_server.py:mcp。命令保持运行且没有导入或启动错误,才代表最小安装验证通过。
- 生产环境应精确锁定经过验证的版本;本页核验时最新稳定版为 v4.0.3。
- 新项目优先使用 stdio 或 Streamable HTTP;SSE 是旧式传输。
- 只有在需要后台任务时才安装 tasks 可选依赖。
使用场景
把内部 Python 能力封装为 MCP 工具
将已有函数的输入输出用类型标注公开给 Agent,同时在服务器进程内保留业务依赖与访问控制。
为 MCP 服务编写自动化客户端
使用 Client API 在测试或编排代码中列出工具、调用工具,并连接进程内、stdio 或 HTTP 服务。
部署可认证的远程 MCP 端点
通过 Streamable HTTP、中间件和认证扩展构建自托管服务,但网络与凭据边界仍由部署者负责。
使用评价
FastMCP 的价值在于用一套 Python API 覆盖服务器、客户端和应用开发,并给出从本地 stdio 到 HTTP 部署的清晰路径。它仍是一个拥有业务代码权限的框架,生产采用前应锁定版本、核对传输与认证设置,并针对真实工具做权限审计。
值得一试的地方
- 最小示例短,普通 Python 函数即可注册为 MCP 工具。
- 同时覆盖服务器、客户端、Apps、中间件、认证和 Provider。
- 安装、快速入门和主要 API 文档齐全,仓库保持活跃更新。
使用前要知道
- 不提供托管服务、默认业务权限隔离或自动安全审计。
- 生产环境需要自行处理认证、网络暴露、凭据与工具权限。
- 文档提示生态兼容性可能带来次版本破坏,且 SECURITY.md 的支持版本表当前落后于 v4。
README
FastMCP
Overview
面向 Python 的 MCP 应用框架,可用统一 API 构建服务器、客户端和交互式应用,并通过 stdio 或 Streamable HTTP 运行。 🚀 The fast, Pythonic way to build MCP servers and clients.
Getting started
- 在 Python 3.10 或更高版本的隔离环境中使用 uv 或 pip 安装 FastMCP,然后创建一个最小服务器并用 stdio 启动。
- 服务器侧可把 Python 函数、资源和提示模板暴露为 MCP 能力,并支持认证、中间件、Provider 与 Transform。
- 客户端侧可连接内存服务器、stdio 子进程或远程 HTTP 端点,并通过异步 API 列出和调用能力。
- 先运行 fastmcp version 确认 CLI 可用;再把快速入门示例保存为 my_server.py,执行 fastmcp run my_server.py:mcp。命令保持运行且没有导入或启动错误,才代表最小安装验证通过。
Configuration
uv add fastmcp在 GitHub 阅读完整 README →