docs/getting-started/installation.mdx
We recommend using uv to install and manage FastMCP.
pip install fastmcp
Or with uv:
uv add fastmcp
FastMCP provides optional extras for specific features. For example, to install the background tasks extra:
pip install "fastmcp[tasks]"
See Background Tasks for details on the task system.
To verify that FastMCP is installed correctly, you can run the following command:
fastmcp version
You should see output like the following:
$ fastmcp version
FastMCP version: 3.0.0
MCP version: 1.25.0
Python version: 3.12.2
Platform: macOS-15.3.1-arm64-arm-64bit
FastMCP root path: ~/Developer/fastmcp
If this is a concern, you can install Cyclopts v5 alpha which removes this dependency:
pip install "cyclopts>=5.0.0a1"
Alternatively, wait for the stable v5 release. See this issue for details. </Info>
See the Upgrade Guide for a complete list of breaking changes and migration steps.
Which guide you want depends on which mcp version you're on and which of its two server APIs you used.
If you're using FastMCP 1.0 via SDK v1 (meaning you import FastMCP as from mcp.server.fastmcp import FastMCP), upgrading is straightforward — for most servers it's a single import change. See Upgrading from MCP SDK v1, which also explains why that route is usually easier than moving to MCP SDK v2.
If you already moved to SDK v2 and write against MCPServer, see Upgrading from MCP SDK v2 — that migration is mostly renaming.
If you built your server directly on the mcp package's Server class, the guide you want depends on how its handlers are registered. Decorators like @server.list_tools() mean SDK v1 — see Upgrading from the Low-Level SDK v1. Handlers passed to the constructor as on_list_tools= mean SDK v2 — see Upgrading from the Low-Level SDK v2.
import fastmcp fails after a pip upgradeThis affects one specific case: upgrading to FastMCP 3.3 or later from FastMCP 3.2 or earlier with pip. Fresh installs and uv upgrades are unaffected, so you can skip this unless you did exactly that.
If import fastmcp raises ModuleNotFoundError, or from fastmcp import FastMCP raises ImportError, immediately after the upgrade, your install is in a half-removed state. Reinstall in a single step:
pip install --force-reinstall fastmcp
If that doesn't resolve it, remove both distributions and reinstall from a clean state:
pip uninstall -y fastmcp fastmcp-slim
pip install fastmcp
FastMCP 3.3 moved the importable code from the fastmcp distribution into fastmcp-slim. During a single-command pip upgrade, pip can install the new files and then delete them while uninstalling the old fastmcp distribution, whose file manifest still lists those paths. uv uninstalls before it installs, so it is unaffected.
FastMCP follows semantic versioning with pragmatic adaptations for the rapidly evolving MCP ecosystem. Breaking changes may occur in minor versions (e.g., 2.3.x to 2.4.0) when necessary to stay current with the MCP Protocol.
For production use, always pin to exact versions:
fastmcp==3.0.0 # Good
fastmcp>=3.0.0 # Bad - may install breaking changes
See the full versioning and release policy for details on our public API, deprecation practices, and breaking change philosophy.
Interested in contributing to FastMCP? See the Contributing Guide for details on: