unstale

pypi / fastmcp

fastmcp

What changed in fastmcp 3 to 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.

2 breaking3 security2 new APIs and options1 behavior and defaults27 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

fastmcp 434 changes

Breaking changes 2

  • Certifi-backed server dependencies and optional SDK integrations now require certifi 2026.10.19 or later following the eMudhra CA compromise.

    3.4.11, 4.1.3release notesrelease notes

  • FastMCP 4 uses system trust by default; developers may need to update operating-system, container, custom, and installer trust stores because upgrading FastMCP alone is insufficient.

    4.1.3release notes

Security 3

  • Authorization now applies after component transforms, so transformed components are authorized before use.

    4.1.2release notes

  • OAuth client credentials can be bound to a configured issuer across fresh and cached-token flows. Users of ClientCredentialsOAuthProvider or PrivateKeyJWTOAuthProvider must set issuer to enable this protection.

    4.1.2release notes

  • Denied or disabled resources can no longer be served through matching templates.

    4.1.2release notes

New APIs and options 2

  • Adds a foundation for the SEP-2640 Skills extension.

    4.1.2release notes

  • Adds experimental Skills discovery to SkillsDirectoryProvider.

    4.1.2release notes

Behavior and default changes 1

  • The upstream token auth method now defaults to none when there is no client secret, fixing public-client OAuth authentication.

    4.1.3release notes

Fixes and other changes 26

  • Ordinary requests now honor timeout settings in per-server MCP configuration.

    4.1.3release notes

  • Empty session visibility selections are now preserved.

    4.1.3release notes

  • A TimeoutError raised by a tool body's own code is no longer classified as the tool timeout.

    4.1.3release notes

  • Generator results from transform_fn are now materialized when run, fixing handling of generator transforms.

    4.1.3release notes

  • Preserves public metadata in built-in read contents.

    4.1.2release notes

  • Accepts ES256 and other RSA/EC algorithms for CIMD private_key_jwt assertions.

    4.1.2release notes

  • Uses the client timeout when resolving claimed results if no other timeout applies.

    4.1.2release notes

  • Fixes ctx.log() when extra contains names that are attributes of LogRecord.

    4.1.2release notes

  • The MCP-format inspect output follows pagination and escapes server metadata in its text summary.

    4.1.2release notes

  • Keeps fastmcp.json resolvable when deployment.cwd changes the working directory.

    4.1.2release notes

  • Data-backed File resources are named consistently with their MIME subtype.

    4.1.2release notes

  • Respects an explicit is_binary=False value.

    4.1.2release notes

  • FileUpload and session visibility are scoped to a stable client on MCP 2026-07-28.

    4.1.2release notes

  • Adds discovery of Goose Streamable HTTP extensions.

    4.1.2release notes

  • Reports an unbindable OAuth callback port instead of raising SystemExit.

    4.1.2release notes

  • The OAuth callback server no longer requires websockets.

    4.1.2release notes

  • Accepts private_key_jwt without a form client_id.

    4.1.2release notes

  • Python stdio child processes now run in UTF-8 mode.

    4.1.2release notes

  • Synchronous resource templates now run in the threadpool.

    4.1.2release notes

  • Preserves component metadata for list[ResourceContent] returns.

    4.1.2release notes

  • Valid schema defaults are hydrated while invalid defaults are preserved.

    4.1.2release notes

  • Preserves shared dependency scopes without optional task dependencies.

    4.1.2release notes

  • Treats non-string skill frontmatter descriptions as absent.

    4.1.2release notes

  • Raises ToolError when a tool with an output schema returns an unserializable value.

    4.1.2release notes

  • Preserves icons on transformed tools.

    4.1.2release notes

  • The CLI now honors an explicitly specified URL transport.

    4.1.2release notes

fastmcp 31 changes

Fixes and other changes 1

  • Update custom, system, and installer trust stores too; upgrading FastMCP alone is insufficient.

    3.4.11release notes