v2.12.4: OIDC What You Did There
FastMCP 2.12.4 adds comprehensive OIDC support and expands authentication options with AWS Cognito and Descope providers. The release also includes improvements to logging middleware, URL handling for nested resources, persistent OAuth client registration storage, and various fixes to the experimental OpenAPI parser.
What's Changed
New Features 🎉
Enhancements 🔧
- feat: Move the Starlette context middleware to the front by @akkuman in #1812
- Refactor Logging and Structured Logging Middleware by @strawgate in #1805
- Update pull_request_template.md by @jlowin in #1824
- chore: Set redirect_path default in function by @ruhulio in #1833
- feat: Set instructions in code by @attiks in #1838
- Automatically Create inline Snapshots by @strawgate in #1779
- chore: Cleanup Auth0 redirect_path initialization by @ruhulio in #1842
- feat: Add support for Descope Authentication by @anvibanga in #1853
- Update descope version badges by @jlowin in #1870
- Update welcome images by @jlowin in #1884
- Fix rounded edges of image by @jlowin in #1886
- optimize test suite by @zzstoatzz in #1893
- Enhancement: client completions support context_arguments by @isijoe in #1906
- Update Descope icon by @anvibanga in #1912
- Add AWS Cognito OAuth Provider for Enterprise Authentication by @stephaneberle9 in #1873
- Fix typos discovered by codespell by @cclauss in #1922
- Use lowercase namespace for fastmcp logger by @jlowin in #1791
Fixes 🐞
- Update quickstart.mdx by @radi-dev in #1821
- Remove extraneous union import by @jlowin in #1823
- Delay import of Provider classes until FastMCP Server Creation by @strawgate in #1820
- fix: correct documentation link in deprecation warning by @strawgate in #1828
- fix: Increase default 3s timeout on Pytest by @dacamposol in #1866
- fix: Improve URL handling in OIDCConfiguration by @ruhulio in #1850
- fix: correct typing for on_read_resource middleware method by @strawgate in #1858
- feat(experimental/openapi): replace $ref in additionalProperties; add tests by @jlowin in #1735
- Honor client supplied scopes during registration by @dmikusa in #1860
- Fix: FastAPI list parameter parsing in experimental OpenAPI parser by @jlowin in #1834
- Add log level support for stdio and HTTP transports by @jlowin in #1840
- Fix OAuth pre-flight check to accept HTTP 200 responses by @jlowin in #1874
- Fix: Preserve OpenAPI parameter descriptions in experimental parser by @shlomo666 in #1877
- Add persistent storage for OAuth client registrations by @jlowin in #1879
- docs: update release dates based on github releases by @lodu in #1890
- Small updates to Sampling types by @strawgate in #1882
- remove lockfile smart_home example by @zzstoatzz in #1892
- Fix: Remove JSON schema title metadata while preserving parameters named 'title' by @jlowin in #1872
- Fix: get_resource_url nested URL handling by @raphael-linx in #1914
- Clean up code for creating the resource url by @jlowin in #1916
- Fix route count logging in OpenAPI server by @zzstoatzz in #1928
Docs 📚
- docs: make Gemini CLI integration discoverable by @jackwotherspoon in #1827
- docs: update NEW tags for AI assistant integrations by @jackwotherspoon in #1829
- Update wordmark by @jlowin in #1832
- docs: improve OAuth and OIDC Proxy documentation by @jlowin in #1880
- Update readme + welcome docs by @jlowin in #1883
- Update dark mode image in README by @jlowin in #1885
New Contributors
- @radi-dev made their first contribution in #1821
- @akkuman made their first contribution in #1812
- @ruhulio made their first contribution in #1817
- @attiks made their first contribution in #1838
- @anvibanga made their first contribution in #1853
- @shlomo666 made their first contribution in #1877
- @lodu made their first contribution in #1890
- @isijoe made their first contribution in #1906
- @raphael-linx made their first contribution in #1914
- @stephaneberle9 made their first contribution in #1873
- @cclauss made their first contribution in #1922
Full Changelog: v2.12.3...v2.12.4