FastMCP
用 Python 快速构建 MCP 服务器和客户端的框架
- Star 数
- ★ 28k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 43/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 开发者希望将现有 Python 函数快速暴露为 MCP 工具供 LLM 调用
- 不适合
- 需要企业级治理、SSO 与审计日志的团队(这些属于付费的 Prefect Horizon)
- 希望用 TypeScript 构建 MCP 应用的开发者(需改用 fastmcp-ts)
- 不愿阅读英文文档的非英语使用者
这个 Agent 能做什么,适合哪些场景?
FastMCP 是一个用于构建模型上下文协议(MCP)应用的全功能框架,支持服务器、客户端和交互式应用。它能够将普通的 Python 函数自动转换为 MCP 兼容的工具,并自动生成模式、验证和文档。同时支持连接远程服务器,处理传输协商和认证。FastMCP 提供服务器、应用和客户端三大支柱,使开发者可以专注于业务逻辑。FastMCP 已作为官方 MCP Python SDK 的一部分,广泛应用于生产环境。
FastMCP 通过 Python 装饰器(如 @mcp.tool)将函数声明为 MCP 工具,并自动处理协议生命周期、模式生成和验证。客户端可以通过 URL 连接服务器,支持本地和远程。应用功能允许在对话中渲染交互式 UI。它支持 FastMCP 服务器和客户端,并提供 CLI 接口。安装可通过 uv 包管理器添加依赖,并通过 mcp.run() 启动服务器。
- 开发者希望将现有 Python 函数快速暴露为 MCP 工具供 LLM 调用
- 团队需要连接多个 MCP 服务器并集中管理工具
- 想要构建交互式工具界面,直接在对话中渲染 UI 的应用开发者
- 需要将 MCP 服务器部署到企业环境的平台工程师,考虑使用 Horizon 进行治理
- 使用 TypeScript 但又希望与 FastMCP 保持一致体验的开发者
如何安装或部署这个 Agent?
推荐使用 uv 包管理器:uv add fastmcp。安装前需确保 Python 环境可用。
如何使用这个 Agent?
创建一个 Python 文件,导入 FastMCP,实例化 FastMCP 对象,使用 @mcp.tool 装饰器定义工具函数,最后调用 mcp.run() 启动服务器。详细快速入门请参考 gofastmcp.com 的 quickstart 指南。
这个 Agent 有哪些优点和局限?
- 自动生成工具模式、验证和文档,减少样板代码
- 提供服务器、客户端和应用三大支柱,覆盖 MCP 应用全流程
- 作为官方 MCP Python SDK 的前身,已被广泛采用
- 支持 TypeScript 版本,便于跨语言团队统一
- 内置最佳实践,简化协议生命周期和认证管理
- 需要学习 MCP 协议和 FastMCP 特有的 API
- 高级功能(如 Horizon)可能需要商业授权
- 依赖活跃维护,但升级路径可能要求调整代码(如从 v2 到 v3)
- 文档和社区支持以英文为主,可能对非英语用户有门槛
这个 Agent 与同类方案有什么区别?
FastMCP 是 MCP 生态的标准框架,与官方 MCP SDK 紧密相关。对于 TypeScript 开发者,官方提供了 FastMCP-ts 作为对应库。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| FastMCP 当前 | 43 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 28k | 今天 | Python | — |
| BeeAI Framework | 51 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 3.4k | 今天 | Python | — |
| Jevbridge 决策桥 | 62 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 48 | 28 天前 | TypeScript | Codex · OpenAI API · Claude API |
| Microsoft Agent Framework 实战示例 | 50 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 385 | 4 个月前 | Jupyter Notebook | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示这是一个MCP框架,但未提供权限管理、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属的具体实现或文档。因此所有信任标准得分为0。
自一致性:README、pyproject.toml和SECURITY.md在描述和版本支持上一致,得2分。依赖可用性:pyproject.toml列出了依赖和版本约束,但未提供锁定文件或验证机制,得2分。失败消息:未提供错误处理或用户提示的文档,得1分。
受众和场景:README明确了服务器、客户端和应用三种场景,得2分。能力边界:文档描述了框架的功能范围,但未明确限制,得2分。触发精度:工具和资源的定义清晰,但未涉及触发机制,得2分。环境适配:支持Python 3.10+,但未提及操作系统或部署环境,得2分。
信息架构:README和文档链接清晰,得2分。安装说明:提供了uv安装命令,得2分。命名稳定性:项目名称和API命名一致,得2分。示例和FAQ:提供了示例代码,但无FAQ,得2分。已知限制:未明确列出,得1分。许可证:Apache-2.0,得2分。版本和变更日志:有版本升级指南,但无变更日志,得2分。维护责任:作者和Prefect公司明确,得2分。
输出可用性:工具和资源输出格式清晰,得2分。边际价值:框架提供了自动化schema和协议处理,得2分。成本效益:开源免费,得2分。
声明可追溯性:README中的声明未提供具体证据,得1分。跨来源佐证:仅依赖单一来源,得1分。事实与推断分离:未明确区分,得1分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 未提供权限管理、用户确认、数据流透明性等安全机制,使用前需自行评估。
- 依赖安全未验证,建议检查依赖锁定和漏洞扫描。
- 未提供回滚机制,升级前需备份。
- 未明确已知限制,可能隐藏兼容性问题。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v4.1.1 v4.1.1: Regex Marks the Spot
发布说明摘录
Regex tool search now rejects patterns over 1,000 characters and stops after about a second, and SkillsDirectoryProvider discovers skill folders that are links again, including links to folders outside the skills root; a skill's own files must still resolve inside the folder it links to. All 4.x users are encouraged to upgrade. Thanks to our 4 contributors, including 1 first-time contributor. <!-- Release notes generated using configuration in .github/release.yml at main --> What's Changed Security 🔒 …在 GitHub 查看 ↗ -
v3.4.9 v3.4.9: Contain Yourself
发布说明摘录
This release backports security fixes from 4.1: OpenAPI path parameters reject . and .. segments, a skill's SKILL.md must stay inside its skill folder, regex tool search is bounded in time and pattern length, and JWT verifiers share JWKS refreshes instead of fetching on every unknown key ID. All 3.x users are encouraged to upgrade. Thanks to our 6 contributors, including 3 first-time contributors. <!-- Release notes generated using configuration in .github/release.yml at release/3.x --> What's Changed Security 🔒 …在 GitHub 查看 ↗ -
v4.1.0 v4.1.0: Fourth and One
发布说明摘录
FastMCP 4.1.0 is a maintenance release at heart: a broad sweep of fixes across OpenAPI, proxies, auth, tasks, and the CLI, plus full Python 3.15 support. It doesn't change how most servers behave. A few security fixes do tighten inputs that FastMCP previously accepted, though, and our versioning policy keeps breaking changes out of patch releases, so this ships as a point-one release. Check these before upgrading: - MultiAuth now qualifies client IDs by source, so existing MultiAuth sessions and tasks start new ownership scopes. Finish pending tasks before upgrading. …在 GitHub 查看 ↗