Skip to content

FastMCP compatibility

The dependency is declared as fastmcp>=2.12.2,<5. The ceiling moves up once a new major version passes the test suite.

FastMCPStatus
2.12.2Tested in CI on every push, on SQLite and PostgreSQL
2.14.3Tested in CI on every push
3.0.2, 3.3.1, 3.4.7Tested before release; CI runs the newest 3.x (>=3.3,<4)
4.0.10Tested before release; CI runs the newest 4.x, on SQLite and PostgreSQL
5.xNot supported yet. A non-blocking CI job runs the suite against the newest FastMCP with no ceiling, to show what breaks before users find out.

CI also runs weekly, so a new FastMCP release inside the range is tested even when nothing is pushed.

Python 3.11 or newer is required. CI runs Python 3.13; the examples on this site were run on Python 3.12 with FastMCP 4.0.10.

The package hides these, but they explain some choices:

  • Composition. import_server() became async in FastMCP 2.14 and was removed in 4. Use mount(server, "prefix"), which works on every supported version.
  • HTTP client. FastMCP 2 and 3 depend on httpx, FastMCP 4 on httpx2. OpenAIEmbedder uses whichever is installed.
  • MCP errors. From FastMCP 3.4, a result marked isError keeps the flag on the tool result rather than in its payload; the classifier sees it either way.
  • Sessions. Clients on MCP protocol 2026-07-28, including FastMCP 4’s own Client, open no session over HTTP. See How correlation works.