Discover / Development
FastMCP
by jlowinPython
Python framework for rapidly building Model Context Protocol servers and clients.
Maturity: active because commit 4d ago, latest release v3.4.5. Derived from release and commit history, not a rating.
- Stars
- 27k
- Forks
- 2.2k
- Downloads / mo
- 84.6M
- Last commit
- 2026-08-02
- License
- Apache-2.0
- Open issues
- 255
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidenceWriting an MCP application by hand means writing schemas, validation, transport negotiation and protocol lifecycle yourself.
Use it when
Use it when you want to turn ordinary Python functions into MCP tools and have the protocol details handled for you.
Not the right pick when
It is Python only, so a TypeScript project needs the separate FastMCP for TypeScript counterpart.
Capabilities
- declare tools with a decorated Python function
- automatic schema, validation and documentation generation
- clients that connect to local or remote servers
- apps that render interactive UIs in the conversation
- transport negotiation, authentication and lifecycle managed
Cost: Free and open source
Install
Derived from the published package name in the repository, not from a model.
Video walkthroughs
You Can Build an MCP Server Yourself?! (Python + FastMCP Tutorial)
MCP Elicitation Tutorial — How to Build Interactive Tools with FastMCP (Python)
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release v3.4.5
Published 2026-07-27
FastMCP 3.4.5 collects five fixes for the 3.x line. The one that prompted it: a single Ed25519 key in a JWKS — which Rauthy, Ory Hydra, and some Keycloak configurations publish by default — made JWTVerifier reject every token, including ones correctly signed by supported keys in the same set.
<!-- Release notes generated using configuration in .github/release.yml at release/3.x -->
What's Changed
Fixes 🐞
- Backport #4517 to release/3.x: skip unsupported JWKS keys (#4515) by @kakiii in https://github.com/PrefectHQ/fastmcp/pull/4631
- Backport #4469 to release/3.x: fix Azure scope fallback by @jlowin in https://github.com/PrefectHQ/fastmcp/pull/4662
- Backport #4523 to release/3.x: serialize deep object query parameters by @jlowin in https://github.com/PrefectHQ/fastmcp/pull/4664
- Backport #4564 to release/3.x: make transformed tool required order deterministic by @jlowin in https://github.com/PrefectHQ/fastmcp/pull/4665
- Backport #4492 to release/3.x: don't mutate the caller's schema in compress_schema by @jlowin in https://github.com/PrefectHQ/fastmcp/pull/4663
Docs 📚
- Docs: add v3.4.5 changelog entries by @jlowin in https://github.com/PrefectHQ/fastmcp/pull/4673
New Contributors
- @kakiii made their first contribution in https://github.com/PrefectHQ/fastmcp/pull/4631
Full Changelog: https://github.com/PrefectHQ/fastmcp/compare/v3.4.4...v3.4.5
Tags
README
<div align="center">
<!-- omit in toc -->
<picture>
<source width="550" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/brand/f-watercolor-waves-4-dark.png">
<source width="550" media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/brand/f-watercolor-waves-4.png">
<img width="550" alt="FastMCP Logo" src="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/brand/f-watercolor-waves-2.png">
</picture>
FastMCP 🚀
<strong>Move fast and make things.</strong>
Made with 💙 by Prefect
<a href="https://trendshift.io/repositories/21461" target="_blank"><img src="https://trendshift.io/api/badge/repositories/21461" alt="prefecthq%2Ffastmcp | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>
The Model Context Protocol (MCP) connects LLMs to tools and data. FastMCP is a full MCP application framework for servers, clients, and interactive apps. A server starts with ordinary Python:
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()
Why FastMCP
Building an effective MCP application is harder than it looks. FastMCP handles all of it. Declare a tool with a Python function, and the schema, validation, and documentation are generated automatically. Connect to a server with a URL, and transport negotiation, authentication, and protocol lifecycle are managed for you. You focus on your logic, and the MCP part just works: with FastMCP, best practices are built in.
That's why FastMCP is the standard framework for working with MCP. FastMCP 1.0 was incorporated into the official MCP Python SDK in 2024. Today, the actively maintained standalone project is downloaded a million times a day, and some version of FastMCP powers 70% of MCP servers across all languages.
FastMCP has three pillars:
<table>
<tr>
<td align="center" valign="top" width="33%">
<a href="https://gofastmcp.com/servers/server">
<img src="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/images/servers-card.png" alt="Servers" />
<br /><strong>Servers</strong>
</a>
<br />Expose tools, resources, and prompts to LLMs.
</td>
<td align="center" valign="top" width="33%">
<a href="https://gofastmcp.com/apps/overview">
<img src="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/images/apps-card.png" alt="Apps" />
<br /><strong>Apps</strong>
</a>
<br />Give your tools interactive UIs rendered directly in the conversation.
</td>
<td align="center" valign="top" width="33%">
<a href="https://gofastmcp.com/clients/client">
<img src="https://raw.githubusercontent.com/PrefectHQ/fastmcp/main/docs/assets/images/clients-card.png" alt="Clients" />
<br /><strong>Clients</strong>
</a>
<br />Connect to any MCP server — local or remote, programmatic or CLI.
</td>
</tr>
</table>
Servers wrap your Python functions into MCP-compliant tools, resources, and prompts. Clients connect to any server with full protocol support. And Apps give your tools interactive UIs rendered directly in the conversation.
Building in TypeScript? FastMCP for TypeScript is the official counterpart, built and maintained by the same team. Same pillars, same ideas, npm install @prefecthq/fastmcp-ts.
Ready to build? Start with the installation guide or jump straight to the quickstart.
Scale MCP with Horizon
FastMCP handles the MCP application layer. Prefect Horizon is the enterprise MCP gateway for scaling servers and tools across teams, with centralized governance over how they are deployed, discovered, secured, and used.
FastMCP and Horizon are built by the same team at Prefect.
Deploy FastMCP servers from GitHub with branch previews and instant rollback. Create a private registry of every MCP your company uses. Secure access with SSO and tool-level RBAC. Get audit logs, observability, and governance across your MCP stack. Remix approved tools into purpose-built endpoints for teams and agents.
Start with FastMCP. Scale with Horizon →
Installation
We recommend adding FastMCP to your project with uv:
uv add fastmcp
For full installation instructions, including verification and upgrading, see the Installation Guide.
Upgrading? We have guides for:
- Upgrading from FastMCP 3
- Upgrading from FastMCP 2
- Upgrading from MCP SDK v1 or v2
- Upgrading from the low-level SDK v1 or v2
📚 Documentation
FastMCP's complete documentation is available at gofastmcp.com, including detailed guides, API references, and advanced patterns.
Documentation is also available in llms.txt format, which is a simple markdown standard that LLMs can consume easily:
llms.txtis essentially a sitemap, listing all the pages in the documentation.llms-full.txtcontains the entire documentation. Note this may exceed the context window of your LLM.
Community: Join our Discord server to connect with other FastMCP developers and share what you're building.
Contributing
We welcome contributions! See the Contributing Guide for setup instructions, testing requirements, and PR guidelines.