60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
116 lines
5.0 KiB
Plaintext
116 lines
5.0 KiB
Plaintext
---
|
|
title: "Welcome to FastMCP 2.0!"
|
|
sidebarTitle: "Welcome!"
|
|
description: The fast, Pythonic way to build MCP servers and clients.
|
|
icon: hand-wave
|
|
---
|
|
|
|
<img
|
|
src="/assets/brand/f-watercolor-waves.png"
|
|
|
|
alt="'F' logo on a watercolor background"
|
|
noZoom
|
|
className="rounded-2xl block dark:hidden"
|
|
/>
|
|
<img
|
|
src="/assets/brand/f-watercolor-waves-dark.png"
|
|
alt="'F' logo on a watercolor background"
|
|
noZoom
|
|
className="rounded-2xl hidden dark:block"
|
|
/>
|
|
|
|
|
|
**FastMCP is the standard framework for building MCP applications.** The [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) provides a standardized way to connect LLMs to tools and data, and FastMCP makes it production-ready with clean, Pythonic code:
|
|
|
|
```python {1}
|
|
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()
|
|
```
|
|
|
|
## Beyond Basic MCP
|
|
|
|
FastMCP pioneered Python MCP development, and FastMCP 1.0 was incorporated into the [official MCP SDK](https://github.com/modelcontextprotocol/python-sdk) in 2024.
|
|
|
|
**This is FastMCP 2.0,** the actively maintained version that extends far beyond basic protocol implementation. While the SDK provides core functionality, FastMCP 2.0 delivers everything needed for production: advanced MCP patterns (server composition, proxying, OpenAPI/FastAPI generation, tool transformation), enterprise auth (Google, GitHub, Azure, Auth0, WorkOS, and more), deployment tools, testing frameworks, and comprehensive client libraries.
|
|
|
|
Ready to build? Start with our [installation guide](/v2/getting-started/installation) or jump straight to the [quickstart](/v2/getting-started/quickstart).
|
|
|
|
FastMCP is made with 💙 by [Prefect](https://www.prefect.io/).
|
|
|
|
<Warning>
|
|
**FastMCP 3.0** is in development and may include breaking changes. To avoid unexpected issues, pin your dependency to v2: `fastmcp<3`
|
|
</Warning>
|
|
|
|
## What is MCP?
|
|
|
|
The Model Context Protocol lets you build servers that expose data and functionality to LLM applications in a secure, standardized way. It is often described as "the USB-C port for AI", providing a uniform way to connect LLMs to resources they can use. It may be easier to think of it as an API, but specifically designed for LLM interactions. MCP servers can:
|
|
|
|
- Expose data through `Resources` (think of these sort of like GET endpoints; they are used to load information into the LLM's context)
|
|
- Provide functionality through `Tools` (sort of like POST endpoints; they are used to execute code or otherwise produce a side effect)
|
|
- Define interaction patterns through `Prompts` (reusable templates for LLM interactions)
|
|
- And more!
|
|
|
|
FastMCP provides a high-level, Pythonic interface for building, managing, and interacting with these servers.
|
|
|
|
## Why FastMCP?
|
|
|
|
FastMCP handles all the complex protocol details so you can focus on building. In most cases, decorating a Python function is all you need — FastMCP handles the rest.
|
|
|
|
🚀 **Fast**: High-level interface means less code and faster development
|
|
|
|
🍀 **Simple**: Build MCP servers with minimal boilerplate
|
|
|
|
🐍 **Pythonic**: Feels natural to Python developers
|
|
|
|
🔍 **Complete**: Everything for production — enterprise auth (Google, GitHub, Azure, Auth0, WorkOS), deployment tools, testing frameworks, client libraries, and more
|
|
|
|
FastMCP provides the shortest path from idea to production. Deploy locally, to the cloud with [Prefect Horizon](https://horizon.prefect.io?utm_source=gofastmcp&utm_medium=docs) (free for personal projects), or to your own infrastructure.
|
|
|
|
<Tip>
|
|
**This documentation reflects FastMCP's `main` branch**, meaning it always reflects the latest development version. Features are generally marked with version badges (e.g. `New in version: 2.13.1`) to indicate when they were introduced. Note that this may include features that are not yet released.
|
|
</Tip>
|
|
|
|
## LLM-Friendly Docs
|
|
|
|
The FastMCP documentation is available in multiple LLM-friendly formats:
|
|
|
|
### MCP Server
|
|
|
|
The FastMCP docs are accessible via MCP! The server URL is `https://gofastmcp.com/mcp`.
|
|
|
|
In fact, you can use FastMCP to search the FastMCP docs:
|
|
|
|
```python
|
|
import asyncio
|
|
from fastmcp import Client
|
|
|
|
async def main():
|
|
async with Client("https://gofastmcp.com/mcp") as client:
|
|
result = await client.call_tool(
|
|
name="search_fast_mcp",
|
|
arguments={"query": "deploy a FastMCP server"}
|
|
)
|
|
print(result)
|
|
|
|
asyncio.run(main())
|
|
```
|
|
|
|
### Text Formats
|
|
|
|
The docs are also available in [llms.txt format](https://llmstxt.org/):
|
|
- [llms.txt](https://gofastmcp.com/llms.txt) - A sitemap listing all documentation pages
|
|
- [llms-full.txt](https://gofastmcp.com/llms-full.txt) - The entire documentation in one file (may exceed context windows)
|
|
|
|
Any page can be accessed as markdown by appending `.md` to the URL. For example, this page becomes `https://gofastmcp.com/getting-started/welcome.md`.
|
|
|
|
You can also copy any page as markdown by pressing "Cmd+C" (or "Ctrl+C" on Windows) on your keyboard.
|