mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
124 lines
7.2 KiB
Markdown
124 lines
7.2 KiB
Markdown
<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](https://www.prefect.io/)*
|
|
|
|
[](https://gofastmcp.com)
|
|
[](https://discord.gg/uu8dJCgttd)
|
|
[](https://pypi.org/project/fastmcp)
|
|
[](https://github.com/PrefectHQ/fastmcp-ts)
|
|
[](https://github.com/PrefectHQ/fastmcp/actions/workflows/run-tests.yml)
|
|
[](https://github.com/PrefectHQ/fastmcp/blob/main/LICENSE)
|
|
|
|
<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](https://modelcontextprotocol.io/) (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:
|
|
|
|
```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](https://gofastmcp.com/servers/server)** wrap your Python functions into MCP-compliant tools, resources, and prompts. **[Clients](https://gofastmcp.com/clients/client)** connect to any server with full protocol support. And **[Apps](https://gofastmcp.com/apps/overview)** give your tools interactive UIs rendered directly in the conversation.
|
|
|
|
**Building in TypeScript?** [FastMCP for TypeScript](https://github.com/PrefectHQ/fastmcp-ts) 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](https://gofastmcp.com/getting-started/installation) or jump straight to the [quickstart](https://gofastmcp.com/getting-started/quickstart).
|
|
|
|
## Scale MCP with Horizon
|
|
|
|
FastMCP handles the MCP application layer. **[Prefect Horizon](https://www.prefect.io/horizon?utm_source=github&utm_medium=readme&utm_campaign=readme_horizon&utm_content=readme_body)** 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](https://www.prefect.io/).
|
|
|
|
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 →](https://www.prefect.io/horizon?utm_source=github&utm_medium=readme&utm_campaign=readme_horizon&utm_content=readme_cta)
|
|
|
|
## Installation
|
|
|
|
We recommend adding FastMCP to your project with [uv](https://docs.astral.sh/uv/):
|
|
|
|
```bash
|
|
uv add fastmcp
|
|
```
|
|
|
|
For full installation instructions, including verification and upgrading, see the [**Installation Guide**](https://gofastmcp.com/getting-started/installation).
|
|
|
|
**Upgrading?** We have guides for:
|
|
- [Upgrading from FastMCP 3](https://gofastmcp.com/getting-started/upgrading/from-fastmcp-3)
|
|
- [Upgrading from FastMCP 2](https://gofastmcp.com/getting-started/upgrading/from-fastmcp-2)
|
|
- [Upgrading from MCP SDK v1](https://gofastmcp.com/getting-started/upgrading/from-mcp-sdk-v1) or [v2](https://gofastmcp.com/getting-started/upgrading/from-mcp-sdk-v2)
|
|
- [Upgrading from the low-level SDK v1](https://gofastmcp.com/getting-started/upgrading/from-low-level-sdk-v1) or [v2](https://gofastmcp.com/getting-started/upgrading/from-low-level-sdk-v2)
|
|
|
|
## 📚 Documentation
|
|
|
|
FastMCP's complete documentation is available at **[gofastmcp.com](https://gofastmcp.com)**, including detailed guides, API references, and advanced patterns.
|
|
|
|
Documentation is also available in [llms.txt format](https://llmstxt.org/), which is a simple markdown standard that LLMs can consume easily:
|
|
|
|
- [`llms.txt`](https://gofastmcp.com/llms.txt) is essentially a sitemap, listing all the pages in the documentation.
|
|
- [`llms-full.txt`](https://gofastmcp.com/llms-full.txt) contains the entire documentation. Note this may exceed the context window of your LLM.
|
|
|
|
**Community:** Join our [Discord server](https://discord.gg/uu8dJCgttd) to connect with other FastMCP developers and share what you're building.
|
|
|
|
## Contributing
|
|
|
|
We welcome contributions! See the [Contributing Guide](https://gofastmcp.com/development/contributing) for setup instructions, testing requirements, and PR guidelines.
|