Skip to main content
FastMCP 4.2 raises the Python floor and deprecates the 4.1 skills API. Everything else in 4.1 keeps working. This page covers what to check before upgrading and what to move before 4.3.

Python 3.11 or newer

FastMCP 4.2 requires Python 3.11. On Python 3.10, your installer keeps resolving to 4.1.x, so a project that must stay on 3.10 should pin fastmcp<4.2. To take 4.2, move the project to Python 3.11 and raise requires-python to match:

The 4.1 skills API

The providers in fastmcp.server.providers.skills and the helpers in fastmcp.utilities.skills still work in 4.2 and are removed in 4.3. Each emits a deprecation warning that names its replacement. The new API lives in fastmcp.skills: author skills with Skill, serve a folder with SkillsDirectoryProvider from fastmcp.skills.provider, and read them from a client with client.read_skill(). The usual change is one import:
The new provider refuses folders the old one accepted, such as a SKILL.md whose frontmatter name doesn’t match its folder. The 4.1 provider’s warning lists each folder it would refuse and the fix, so start the server once on 4.2, fix what it reports, then switch. The Skills page has the full migration table and the client-side details.

Annotated dependencies

4.2 also accepts dependencies as Annotated metadata. This is optional; Depends() defaults keep working. An alias declares a dependency once and gives the parameter its real type for type checkers:
A parameter takes one form or the other: an Annotated dependency combined with a Depends() default raises TypeError. See Annotated Dependencies.