v2.12.2
2025-09-03
v2.12.2: Perchance to StreamThis is a hotfix for a bug where the streamable-http transport was not recognized as a valid option in fastmcp.json configuration files, despite being supported by the CLI. This resulted in a parsing error when the CLI arguments were merged against the configuration spec.

What’s Changed

Fixes 🐞

  • Fix streamable-http transport validation in fastmcp.json config by @jlowin in #1739
Full Changelog: v2.12.1…v2.12.2
v2.12.1
2025-09-03
v2.12.1: OAuth to JoyFastMCP 2.12.1 strengthens the OAuth proxy implementation based on extensive community testing and feedback. This release improves client storage reliability, adds PKCE forwarding for enhanced security, introduces configurable token endpoint authentication methods, and expands scope handlingβ€”all addressing real-world integration challenges discovered since 2.12.0. The enhanced test suite with mock providers ensures these improvements are robust and maintainable.

Breaking Changes

  • OAuth Proxy: Users of built-in IDP integrations should note that resource_server_url has been renamed to base_url for clarity and consistency

What’s Changed

Enhancements πŸ”§

  • Make openai dependency optional by @jlowin in #1701
  • Remove orphaned OAuth proxy code by @jlowin in #1722
  • Expose valid scopes from OAuthProxy metadata by @dmikusa in #1717
  • OAuth proxy PKCE forwarding by @jlowin in #1733
  • Add token_endpoint_auth_method parameter to OAuthProxy by @jlowin in #1736
  • Clean up and enhance OAuth proxy tests with mock provider by @jlowin in #1738

Fixes 🐞

  • refactor: replace auth provider registry with ImportString by @jlowin in #1710
  • Fix OAuth resource URL handling and WWW-Authenticate header by @jlowin in #1706
  • Fix OAuth proxy client storage and add retry logic by @jlowin in #1732

Docs πŸ“š

  • Fix documentation: use StreamableHttpTransport for headers in testing by @jlowin in #1702
  • docs: add performance warnings for mounted servers and proxies by @strawgate in #1669
  • Update documentation around scopes for google by @jlowin in #1703
  • Add deployment information to quickstart by @seanpwlms in #1433
  • Update quickstart by @jlowin in #1728
  • Add development docs for FastMCP by @jlowin in #1719

Other Changes 🦾

New Contributors

Full Changelog: v2.12.0…v2.12.1
v2.12.0
2025-08-31
v2.12.0: Auth to the RacesFastMCP 2.12 represents one of our most significant releases to date, both in scope and community involvement. After extensive testing and iteration with the community, we’re shipping major improvements to authentication, configuration, and MCP feature adoption.πŸ” OAuth Proxy for Broader Provider Support addresses a fundamental challenge: while MCP requires Dynamic Client Registration (DCR), many popular OAuth providers don’t support it. The new OAuth proxy bridges this gap, enabling FastMCP servers to authenticate with providers like GitHub, Google, WorkOS, and Azure through minimal configuration. These native integrations ship today, with more providers planned based on community needs.πŸ“‹ Declarative JSON Configuration introduces a standardized, portable way to describe and deploy MCP servers. The fastmcp.json configuration file becomes the single source of truth for dependencies, transport settings, entrypoints, and server metadata. This foundation sets the stage for future capabilities like transformations and remote sources, moving toward a world where MCP servers are as portable and shareable as container images.🧠 Sampling API Fallback tackles the chicken-and-egg problem limiting adoption of advanced MCP features. Samplingβ€”where servers request LLM completions from clientsβ€”is powerful but underutilized due to limited client support. FastMCP now lets server authors define fallback handlers that generate sampling completions server-side when clients don’t support the feature, encouraging adoption while maintaining compatibility.This release took longer than usual to ship, and for good reason: the community’s aggressive testing and feedback on the authentication system helped us reach a level of stability we’re confident in. There’s certainly more work ahead, but these foundations position FastMCP to handle increasingly complex use cases while remaining approachable for developers.Thank you to our new contributors and everyone who tested preview builds. Your feedback directly shaped these features.

What’s Changed

New Features πŸŽ‰

  • Add OAuth proxy that allows authentication with social IDPs without DCR support by @jlowin in #1434
  • feat: introduce declarative JSON configuration system by @jlowin in #1517
  • ✨ Fallback to a Completions API when Sampling is not available by @strawgate in #1145
  • Implement typed source system for FastMCP declarative configuration by @jlowin in #1607

Enhancements πŸ”§

  • Support importing custom_route endpoints when mounting servers by @jlowin in #1470
  • Remove unnecessary asserts by @jlowin in #1484
  • Add Claude issue triage by @jlowin in #1510
  • Inline dedupe prompt by @jlowin in #1512
  • Improve stdio and mcp_config clean-up by @strawgate in #1444
  • involve kwargs to pass parameters on creating RichHandler for logging customization. by @itaru2622 in #1504
  • Move SDK docs generation to post-merge workflow by @jlowin in #1513
  • Improve label triage guidance by @jlowin in #1516
  • Add code review guidelines for agents by @jlowin in #1520
  • Remove trailing slash in unit tests by @jlowin in #1535
  • Update OAuth callback UI branding by @jlowin in #1536
  • Fix Marvin workflow to support development tools by @jlowin in #1537
  • Add mounted_components_raise_on_load_error setting for debugging by @jlowin in #1534
  • feat: Add β€”workspace flag to fastmcp install cursor by @jlowin in #1522
  • switch from pyright to ty by @zzstoatzz in #1545
  • feat: trigger Marvin workflow on PR body content by @jlowin in #1549
  • Add WorkOS and Azure OAuth providers by @jlowin in #1550
  • Adjust timeout for slow MCP Server shutdown test by @strawgate in #1561
  • Update banner by @jlowin in #1567
  • Added import of AuthProxy to auth init by @KaliszS in #1568
  • Add configurable redirect URI validation for OAuth providers by @jlowin in #1582
  • Remove invalid-argument-type ignore and fix type errors by @jlowin in #1588
  • Remove generate-schema from public CLI by @jlowin in #1591
  • Skip flaky windows test / mulit-client garbage collection by @jlowin in #1592
  • Add setting to disable logging configuration by @isra17 in #1575
  • Improve debug logging for nested Servers / Clients by @strawgate in #1604
  • Add GitHub pull request template by @strawgate in #1581
  • chore: Automate docs and schema updates via PRs by @jlowin in #1611
  • Experiment with haiku for limited workflows by @jlowin in #1613
  • feat: Improve GitHub workflow automation for schema and SDK docs by @jlowin in #1615
  • Consolidate server loading logic into FileSystemSource by @jlowin in #1614
  • Prevent Haiku Marvin from commenting when there are no duplicates by @jlowin in #1622
  • chore: Add clarifying note to automated PR bodies by @jlowin in #1623
  • feat: introduce inline snapshots by @strawgate in #1605
  • Improve fastmcp.json environment configuration and project-based deployments by @jlowin in #1631
  • fix: allow passing query params in OAuthProxy upstream authorization url by @danb27 in #1630
  • Support multiple β€”with-editable flags in CLI commands by @jlowin in #1634
  • feat: support comma separated oauth scopes by @jlowin in #1642
  • Add allowed_client_redirect_uris to OAuth provider subclasses by @jlowin in #1662
  • Consolidate CLI config parsing and prevent infinite loops by @jlowin in #1660
  • Internal refactor: mcp server config by @jlowin in #1672
  • Refactor Environment to support multiple runtime types by @jlowin in #1673
  • Add type field to Environment base class by @jlowin in #1676

Fixes 🐞

  • Fix breaking change: restore output_schema=False compatibility by @jlowin in #1482
  • Fix #1506: Update tool filtering documentation from _meta to meta by @maybenotconnor in #1511
  • Fix pytest warnings by @jlowin in #1559
  • nest schemas under assets by @jlowin in #1593
  • Skip flaky windows test by @jlowin in #1596
  • ACTUALLY move schemas to fastmcp.json by @jlowin in #1597
  • Fix and centralize CLI path resolution by @jlowin in #1590
  • Remove client info modifications by @jlowin in #1620
  • Fix $defs being discarded in input schema of transformed tool by @pldesch-chift in #1578
  • Fix enum elicitation to use inline schemas for MCP compatibility by @jlowin in #1632
  • Reuse session for StdioTransport in Client.new by @strawgate in #1635
  • Feat: Configurable LoggingMiddleware payload serialization by @vl-kp in #1636
  • Fix OAuth redirect URI validation for DCR compatibility by @jlowin in #1661
  • Add default scope handling in OAuth proxy by @romanusyk in #1667
  • Fix OAuth token expiry handling by @jlowin in #1671
  • Add resource_server_url parameter to OAuth proxy providers by @jlowin in #1682

Breaking Changes πŸ›«

  • Enhance inspect command with structured output and format options by @jlowin in #1481

Docs πŸ“š

Dependencies πŸ“¦

Other Changes 🦾

New Contributors

Full Changelog: v2.11.3…v2.12.0
v2.11.3
2025-08-11
v2.11.3: API-tite for ChangeThis release includes significant enhancements to the experimental OpenAPI parser and fixes a significant bug that led schemas not to be included in input/output schemas if they were transitive dependencies (e.g. A β†’ B β†’ C implies A depends on C). For users naively transforming large OpenAPI specs into MCP servers, this may result in ballooning payload sizes and necessitate curation.

What’s Changed

Enhancements πŸ”§

  • Improve redirect handling to address 307’s by @jlowin in #1387
  • Ensure resource + template names are properly prefixed when importing/mounting by @jlowin in #1423
  • fixes #1398: Add JWT claims to AccessToken by @panargirakis in #1399
  • Enable Protected Resource Metadata to provide resource_name and resou… by @yannj-fr in #1371
  • Pin mcp SDK under 2.0 to avoid breaking changes by @jlowin in #1428
  • Clean up complexity from PR #1426 by @jlowin in #1435
  • Optimize OpenAPI payload size by 46% by @jlowin in #1452
  • Update static checks by @jlowin in #1448

Fixes 🐞

  • Fix client-side logging bug #1394 by @chi2liu in #1397
  • fix: Fix httpx_client_factory type annotation to match MCP SDK (#1402) by @chi2liu in #1405
  • Fix OpenAPI allOf handling at requestBody top level (#1378) by @chi2liu in #1425
  • Fix OpenAPI transitive references and performance (#1372) by @jlowin in #1426
  • fix(type): lifespan is partially unknown by @ykun9 in #1389
  • Ensure transformed tools generate structured content by @jlowin in #1443

Docs πŸ“š

  • docs(client/logging): reflect corrected default log level mapping by @jlowin in #1403
  • Add documentation for get_access_token() dependency function by @jlowin in #1446

Other Changes 🦾

  • Add comprehensive tests for utilities.components module by @chi2liu in #1395
  • Consolidate agent instructions into AGENTS.md by @jlowin in #1404
  • Fix performance test threshold to prevent flaky failures by @jlowin in #1406
  • Update agents.md; add github instructions by @jlowin in #1410
  • Add Marvin assistant by @jlowin in #1412
  • Marvin: fix deprecated variable names by @jlowin in #1417
  • Simplify action setup and add github tools for Marvin by @jlowin in #1419
  • Update marvin workflow name by @jlowin in #1421
  • Improve GitHub templates by @jlowin in #1422

New Contributors

Full Changelog: v2.11.2…v2.11.3
v2.11.2
2025-08-06

v2.11.2: Satis-factory

What’s Changed

Enhancements πŸ”§

  • Support factory functions in fastmcp run by @jlowin in #1384
  • Add async support to client_factory in FastMCPProxy (#1286) by @bianning in #1375

Fixes 🐞

  • Fix server_version field in inspect manifest by @jlowin in #1383
  • Fix Settings field with both default and default_factory by @jlowin in #1380

Other Changes 🦾

New Contributors

Full Changelog: v2.11.1…v2.11.2
v2.11.1
2025-08-04

v2.11.1: You’re Better Auth Now

What’s Changed

New Features πŸŽ‰

  • Introduce RemoteAuthProvider for cleaner external identity provider integration, update docs by @jlowin in #1346

Enhancements πŸ”§

  • perf: optimize string operations in OpenAPI parameter processing by @chi2liu in #1342

Fixes 🐞

  • Fix method-bound FunctionTool schemas by @strawgate in #1360
  • Manually set _key after model_copy() to enable prefixing Transformed Tools by @strawgate in #1357

Docs πŸ“š

New Contributors

Full Changelog: v2.11.0…v2.11.1
v2.11.0
2025-08-01

v2.11.0: Auth to a Good Start

FastMCP 2.11 doubles down on what developers need most: speed and simplicity. This massive release delivers significant performance improvements and a dramatically better developer experience.πŸ” Enterprise-Ready Authentication brings comprehensive OAuth 2.1 support with WorkOS’s AuthKit integration. The new AuthProvider interface leverages MCP’s support for separate resource and authorization servers, handling API keys and remote authentication with Dynamic Client Registration. AuthKit integration means you can plug into existing enterprise identity systems without rebuilding your auth stack, setting the stage for plug-and-play auth that doesn’t require users to become security experts overnight.⚑ The Experimental OpenAPI Parser delivers dramatic performance improvements through single-pass schema processing and optimized memory usage. OpenAPI integrations are now significantly faster, with cleaner, more maintainable code. (Note: the experimental parser is disabled by default, set FASTMCPEXPERIMENTALENABLENEWOPENAPIPARSER=1 to enable it. A message will be shown to all users on the legacy parser encouraging them to try the new one before it becomes the default.)🧠 Context State Management finally gives you persistent state across tool calls with a simple dict interface, while enhanced meta support lets you expose rich component metadata to clients. Combined with improved type annotations, string-based argument descriptions, and UV transport support, this release makes FastMCP feel more intuitive than ever.This release represents a TON of community contributions and sets the foundation for even more ambitious features ahead.

What’s Changed

New Features πŸŽ‰

  • Introduce experimental OpenAPI parser with improved performance and maintainability by @jlowin in #1209
  • Add state dict to Context (#1118) by @mukulmurthy in #1160
  • Expose FastMCP tags to clients via component meta dict by @jlowin in #1281
  • Add _fastmcp meta namespace by @jlowin in #1290
  • Add TokenVerifier protocol support alongside existing OAuthProvider authentication by @jlowin in #1297
  • Add comprehensive OAuth 2.1 authentication system with WorkOS integration by @jlowin in #1327

Enhancements πŸ”§

  • [🐢] Transform MCP Server Tools by @strawgate in #1132
  • Add β€”python, β€”project, and β€”with-requirements options to CLI commands by @jlowin in #1190
  • Support fastmcp run mcp.json by @strawgate in #1138
  • Support from future import annotations by @jlowin in #1199
  • Optimize OpenAPI parser performance with single-pass schema processing by @jlowin in #1214
  • Log tool name on transform validation error by @strawgate in #1238
  • Refactor get_http_request and context.session_id by @hopeful0 in #1242
  • Support creating tool argument descriptions from string annotations by @jlowin in #1255
  • feat: Add Annotations support for resources and resource templates by @chughtapan in #1260
  • Add UV Transport by @strawgate in #1270
  • Improve OpenAPI-to-JSONSchema conversion utilities by @jlowin in #1283
  • Ensure proxy components forward meta dicts by @jlowin in #1282
  • fix: server argument passing in CLI run command by @chughtapan in #1293
  • Add meta support to tool transformation utilities by @jlowin in #1295
  • feat: Allow Resource Metadata URL as field in OAuthProvider by @dacamposol in #1287
  • Use a simple overwrite instead of a merge for meta by @jlowin in #1296
  • Remove unused TimedCache by @strawgate in #1303
  • refactor: standardize logging usage across OpenAPI utilities by @chi2liu in #1322
  • perf: optimize OpenAPI parsing by reducing dict copy operations by @chi2liu in #1321
  • Structured client-side logging by @cjermain in #1326

Fixes 🐞

  • fix: preserve def reference when referenced in allOf / oneOf / anyOf by @algirdasci in #1208
  • fix: add type hint to custom_route decorator by @zzstoatzz in #1210
  • chore: typo by @richardkmichael in #1216
  • fix: handle non-string $ref values in experimental OpenAPI parser by @jlowin in #1217
  • Skip repeated type conversion and validation in proxy client elicitation handler by @chughtapan in #1222
  • Ensure default fields are not marked nullable by @jlowin in #1224
  • Fix stateful proxy client mixing in multi-proxies sessions by @hopeful0 in #1245
  • Fix invalid async context manager usage in proxy documentation by @zzstoatzz in #1246
  • fix: experimental FastMCPOpenAPI server lost headers in request when init(client with headers) by @itaru2622 in #1254
  • Fix typing, add tests for tool call middleware by @jlowin in #1269
  • Fix: prune hidden parameter defs by @muhammadkhalid-03 in #1257
  • Fix nullable field handling in OpenAPI to JSON Schema conversion by @jlowin in #1279
  • Ensure fastmcp run supports v1 servers by @jlowin in #1332

Breaking Changes πŸ›«

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.10.6…v2.11.0
v2.10.6
2025-07-19

v2.10.6: Hymn for the Weekend

A special Saturday release with many fixes.

What’s Changed

Enhancements πŸ”§

Fixes 🐞

  • Fix OpenAPI empty parameters by @FabrizioSandri in #1128
  • Fix title field preservation in tool transformations by @jlowin in #1131
  • Fix optional parameter validation in OpenAPI integration by @jlowin in #1135
  • Do not silently exclude the β€œcontext” key from JSON body by @melkamar in #1153
  • Fix tool output schema generation to respect Pydantic serialization aliases by @zzstoatzz in #1148
  • fix: _replace_ref_with_defs; ensure ref_path is string by @itaru2622 in #1164
  • Fix nesting when making OpenAPI arrays and objects optional by @melkamar in #1178
  • Fix mcp-json output format to include server name by @jlowin in #1185
  • Only configure logging one time by @jlowin in #1187

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.10.5…v2.10.6
v2.10.5
2025-07-11

v2.10.5: Middle Management

A maintenance release focused on OpenAPI refinements and middleware fixes, plus console improvements.

What’s Changed

Enhancements πŸ”§

  • Fix Claude Code CLI detection for npm global installations by @jlowin in #1106
  • Fix OpenAPI parameter name collisions with location suffixing by @jlowin in #1107
  • Add mirrored component support for proxy servers by @jlowin in #1105

Fixes 🐞

  • Fix OpenAPI deepObject style parameter encoding by @jlowin in #1122
  • xfail when github token is not set (” or None) by @jlowin in #1123
  • fix: replace oneOf with anyOf in OpenAPI output schemas by @MagnusS0 in #1119
  • Fix middleware list result types by @jlowin in #1125
  • Improve console width for logo by @jlowin in #1126

Docs πŸ“š

Other Changes 🦾

  • Update github remote server tests with secret by @jlowin in #1112

New Contributors

Full Changelog: v2.10.4…v2.10.5
v2.10.4
2025-07-09

v2.10.4: Transport-ation

A quick fix to ensure the CLI accepts β€œstreamable-http” as a valid transport option.

What’s Changed

Fixes 🐞

  • Ensure the CLI accepts β€œstreamable-http” as a valid transport by @jlowin in #1099
Full Changelog: v2.10.3…v2.10.4
v2.10.3
2025-07-09

v2.10.3: CLI Me a River

A major CLI overhaul featuring a complete refactor from typer to cyclopts, new IDE integrations, and comprehensive OpenAPI improvements.

What’s Changed

New Features πŸŽ‰

  • Refactor CLI from typer to cyclopts and add comprehensive tests by @jlowin in #1062
  • Add output schema support for OpenAPI tools by @jlowin in #1073

Enhancements πŸ”§

  • Add Cursor support via CLI integration by @jlowin in #1052
  • Add Claude Code install integration by @jlowin in #1053
  • Generate MCP JSON config output from CLI as new fastmcp install command by @jlowin in #1056
  • Use isawaitable instead of iscoroutine by @jlowin in #1059
  • feat: Add --path Option to CLI for HTTP/SSE Route by @davidbk-legit in #1087
  • Fix concurrent proxy client operations with session isolation by @jlowin in #1083

Fixes 🐞

  • Refactor Client context management to avoid concurrency issue by @hopeful0 in #1054
  • Keep json schema $defs on transform by @strawgate in #1066
  • Ensure fastmcp version copy is plaintext by @jlowin in #1071
  • Fix single-element list unwrapping in tool content by @jlowin in #1074
  • Fix max recursion error when pruning OpenAPI definitions by @dimitribarbot in #1092
  • Fix OpenAPI tool name registration when modified by mcp_component_fn by @jlowin in #1096

Docs πŸ“š

Other Changes 🦾

  • Remove asserts and add documentation following #1054 by @jlowin in #1057
  • Add β€”copy flag for fastmcp version by @jlowin in #1063
  • Fix docstring format for fastmcp.client.Client by @neilconway in #1094

New Contributors

Full Changelog: v2.10.2…v2.10.3
v2.10.2
2025-07-05

v2.10.2: Forward March

The headline feature of this release is the ability to β€œforward” advanced MCP interactions like logging, progress, and elicitation through proxy servers. If the remote server requests an elicitation, the proxy client will pass that request to the new, β€œultimate” client.

What’s Changed

New Features πŸŽ‰

Enhancements πŸ”§

Fixes 🐞

Docs πŸ“š

Other Changes 🦾

  • Split giant openapi test file into smaller files by @jlowin in #1034
  • Add comprehensive OpenAPI 3.0 vs 3.1 compatibility tests by @jlowin in #1035
  • Update banner and use console.log by @jlowin in #1041

New Contributors

Full Changelog: v2.10.1…v2.10.2
v2.10.1
2025-07-02

v2.10.1: Revert to Sender

A quick patch to revert the CLI banner that was added in v2.10.0.

What’s Changed

Docs πŸ“š

Full Changelog: v2.10.0…v2.10.1
v2.10.0
2024-07-01

v2.10.0: Great Spec-tations

FastMCP 2.10 brings full compliance with the 6/18/2025 MCP spec update, introducing elicitation support for dynamic server-client communication and output schemas for structured tool responses. Please note that due to these changes, this release also includes a breaking change to the return signature of client.call_tool().

Elicitation Support

Elicitation allows MCP servers to request additional information from clients during tool execution, enabling more interactive and dynamic server behavior. This opens up new possibilities for tools that need user input or confirmation during execution.

Output Schemas

Tools can now define structured output schemas, ensuring that responses conform to expected formats and making tool integration more predictable and type-safe.

What’s Changed

New Features πŸŽ‰

  • MCP 6/18/25: Add output schema to tools by @jlowin in #901
  • MCP 6/18/25: Elicitation support by @jlowin in #889

Enhancements πŸ”§

  • Update types + tests for SDK changes by @jlowin in #888
  • MCP 6/18/25: Update auth primitives by @jlowin in #966
  • Add OpenAPI extensions support to HTTPRoute by @maddymanu in #977
  • Add title field support to FastMCP components by @jlowin in #982
  • Support implicit Elicitation acceptance by @jlowin in #983
  • Support β€˜no response’ elicitation requests by @jlowin in #992
  • Add Support for Configurable Algorithms by @sstene1 in #997

Fixes 🐞

  • Improve stdio error handling to raise connection failures immediately by @jlowin in #984
  • Fix type hints for FunctionResource:fn by @CfirTsabari in #986
  • Update link to OpenAI MCP example by @mossbanay in #985
  • Fix output schema generation edge case by @jlowin in #995
  • Refactor array parameter formatting to reduce code duplication by @jlowin in #1007
  • Fix OpenAPI array parameter explode handling by @jlowin in #1008

Breaking Changes πŸ›«

Docs πŸ“š

Examples & Contrib πŸ’‘

Other Changes 🦾

New Contributors

Full Changelog: v2.9.2…v2.10.0
v2.9.2
2024-06-26

v2.9.2: Safety Pin

This is a patch release to pin mcp below 1.10, which includes changes related to the 6/18/2025 MCP spec update and could potentially break functionality for some FastMCP users.

What’s Changed

Docs πŸ“š

Dependencies πŸ“¦

Full Changelog: v2.9.1…v2.9.2
v2.9.1
2024-06-26

v2.9.1: Call Me Maybe

FastMCP 2.9.1 introduces automatic MCP list change notifications, allowing servers to notify clients when tools, resources, or prompts are dynamically updated. This enables more responsive and adaptive MCP integrations.

What’s Changed

New Features πŸŽ‰

  • Add automatic MCP list change notifications and client message handling by @jlowin in #939

Enhancements πŸ”§

  • Add debug logging to bearer token authentication by @jlowin in #952

Fixes 🐞

  • Fix duplicate error logging in exception handlers by @jlowin in #938
  • Fix parameter location enum handling in OpenAPI parser by @jlowin in #953
  • Fix external schema reference handling in OpenAPI parser by @jlowin in #954

Docs πŸ“š

Examples & Contrib πŸ’‘

  • Add create_thread tool to bsky MCP server by @zzstoatzz in #927
  • Update mount_example.py to work with current fastmcp API by @rajephon in #957

New Contributors

Full Changelog: v2.9.0…v2.9.1
v2.9.0
2024-06-23

v2.9.0: Stuck in the Middleware With You

FastMCP 2.9 introduces two important features that push beyond the basic MCP protocol: MCP Middleware and server-side type conversion.

MCP Middleware

MCP middleware lets you intercept and modify requests and responses at the protocol level, giving you powerful capabilities for logging, authentication, validation, and more. This is particularly useful for building production-ready MCP servers that need sophisticated request handling.

Server-side Type Conversion

This release also introduces server-side type conversion for prompt arguments, ensuring that data is properly formatted before being passed to your functions. This reduces the burden on individual tools and prompts to handle type validation and conversion.

What’s Changed

New Features πŸŽ‰

  • Add File utility for binary data by @gorocode in #843
  • Consolidate prefix logic into FastMCP methods by @jlowin in #861
  • Add MCP Middleware by @jlowin in #870
  • Implement server-side type conversion for prompt arguments by @jlowin in #908

Enhancements πŸ”§

  • Fix tool description indentation issue by @zfflxx in #845
  • Add version parameter to FastMCP constructor by @mkyutani in #842
  • Update version to not be positional by @jlowin in #848
  • Add key to component by @jlowin in #869
  • Add session_id property to Context for data sharing by @jlowin in #881
  • Fix CORS documentation example by @jlowin in #895

Fixes 🐞

  • β€œreport_progress missing passing related_request_id causes notifications not working” by @alexsee in #838
  • Fix JWT issuer validation to support string values per RFC 7519 by @jlowin in #892
  • Fix BearerAuthProvider audience type annotations by @jlowin in #894

Docs πŸ“š

Examples & Contrib πŸ’‘

New Contributors

Full Changelog: v2.8.1…v2.9.0
v2.8.1
2024-06-15

v2.8.1: Sound Judgement

2.8.1 introduces audio support, as well as minor fixes and updates for deprecated features.

Audio Support

This release adds support for audio content in MCP tools and resources, expanding FastMCP’s multimedia capabilities beyond text and images.

What’s Changed

New Features πŸŽ‰

Enhancements πŸ”§

  • Add flag for disabling deprecation warnings by @jlowin in #802
  • Add examples to Tool Arg Param transformation by @strawgate in #806

Fixes 🐞

  • Restore .settings access as deprecated by @jlowin in #800
  • Ensure handling of false http kwargs correctly; removed unused kwarg by @jlowin in #804
  • Bump mcp 1.9.4 by @jlowin in #835

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.8.0…v2.8.1
v2.8.0
2024-06-10

v2.8.0: Transform and Roll Out

FastMCP 2.8.0 introduces powerful new ways to customize and control your MCP servers!

Tool Transformation

The highlight of this release is first-class Tool Transformation, a new feature that lets you create enhanced variations of existing tools. You can now easily rename arguments, hide parameters, modify descriptions, and even wrap tools with custom validation or post-processing logicβ€”all without rewriting the original code. This makes it easier than ever to adapt generic tools for specific LLM use cases or to simplify complex APIs. Huge thanks to @strawgate for partnering on this, starting with #591 and #599 and continuing offline.

Component Control

This release also gives you more granular control over which components are exposed to clients. With new tag-based filtering, you can selectively enable or disable tools, resources, and prompts based on tags, perfect for managing different environments or user permissions. Complementing this, every component now supports being programmatically enabled or disabled, offering dynamic control over your server’s capabilities.

Tools-by-Default

Finally, to improve compatibility with a wider range of LLM clients, this release changes the default behavior for OpenAPI integration: all API endpoints are now converted to Tools by default. This is a breaking change but pragmatically necessitated by the fact that the majority of MCP clients available today are, sadly, only compatible with MCP tools. Therefore, this change significantly simplifies the out-of-the-box experience and ensures your entire API is immediately accessible to any tool-using agent.

What’s Changed

New Features πŸŽ‰

  • First-class tool transformation by @jlowin in #745
  • Support enable/disable for all FastMCP components (tools, prompts, resources, templates) by @jlowin in #781
  • Add support for tag-based component filtering by @jlowin in #748
  • Allow tag assignments for OpenAPI by @jlowin in #791

Enhancements πŸ”§

  • Create common base class for components by @jlowin in #776
  • Move components to own file; add resource by @jlowin in #777
  • Update FastMCP component with eq and repr by @jlowin in #779
  • Remove open-ended and server-specific settings by @jlowin in #750

Fixes 🐞

  • Ensure client is only initialized once by @jlowin in #758
  • Fix field validator for resource by @jlowin in #778
  • Ensure proxies can overwrite remote tools without falling back to the remote by @jlowin in #782

Breaking Changes πŸ›«

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.7.1…v2.8.0
v2.7.1
2024-06-08

v2.7.1: The Bearer Necessities

This release primarily contains a fix for parsing string tokens that are provided to FastMCP clients.

New Features πŸŽ‰

  • Respect cache setting, set default to 1 second by @jlowin in #747

Fixes 🐞

  • Ensure event store is properly typed by @jlowin in #753
  • Fix passing token string to client auth & add auth to MCPConfig clients by @jlowin in #754

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.7.0…v2.7.1
v2.7.0
2024-06-05

v2.7.0: Pare Programming

This is primarily a housekeeping release to remove or deprecate cruft that’s accumulated since v1. Primarily, this release refactors FastMCP’s internals in preparation for features planned in the next few major releases. However please note that as a result, this release has some minor breaking changes (which is why it’s 2.7, not 2.6.2, in accordance with repo guidelines) though not to the core user-facing APIs.

Breaking Changes πŸ›«

  • decorators return the objects they create, not the decorated function
  • websockets is an optional dependency
  • methods on the server for automatically converting functions into tools/resources/prompts have been deprecated in favor of using the decorators directly

New Features πŸŽ‰

  • allow passing flags to servers by @zzstoatzz in #690
  • replace ref pointing to `#/components/schemas/` with `#/defs/` by @phateffect in #697
  • Split Tool into Tool and FunctionTool by @jlowin in #700
  • Use strict basemodel for Prompt; relax from_function deprecation by @jlowin in #701
  • Formalize resource/functionresource replationship by @jlowin in #702
  • Formalize template/functiontemplate split by @jlowin in #703
  • Support flexible @tool decorator call patterns by @jlowin in #706
  • Ensure deprecation warnings have stacklevel=2 by @jlowin in #710
  • Allow naked prompt decorator by @jlowin in #711

Fixes 🐞

Happily, this release DOES permit the use of β€œnaked” decorators to align with Pythonic practice:
@mcp.tool
def my_tool():
    ...
Full Changelog: v2.6.2…v2.7.0
v2.6.1
2024-06-03

v2.6.1: Blast Auth (second ignition)

This is a patch release to restore py.typed in #686.

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.6.0…v2.6.1
v2.6.0
2024-06-02

v2.6.0: Blast Auth

New Features πŸŽ‰

  • Introduce MCP client oauth flow by @jlowin in #478
  • Support providing tools at init by @jlowin in #647
  • Simplify code for running servers in processes during tests by @jlowin in #649
  • Add basic bearer auth for server and client by @jlowin in #650
  • Support configuring bearer auth from env vars by @jlowin in #652
  • feat(tool): add support for excluding arguments from tool definition by @deepak-stratforge in #626
  • Add docs for server + client auth by @jlowin in #655

Fixes 🐞

  • fix: Support concurrency in FastMcpProxy (and Client) by @Sillocan in #635
  • Ensure Client.close() cleans up client context appropriately by @jlowin in #643
  • Update client.mdx: ClientError namespace by @mjkaye in #657

Docs πŸ“š

  • Make FastMCPTransport support simulated Streamable HTTP Transport (didn’t work) by @jlowin in #645
  • Document exclude_args by @jlowin in #653
  • Update welcome by @jlowin in #673
  • Add Anthropic + Claude desktop integration guides by @jlowin in #674
  • Minor docs design updates by @jlowin in #676

Other Changes 🦾

New Contributors

Full Changelog: v2.5.2…v2.6.0
v2.5.2
2024-05-29

v2.5.2: Stayin’ Alive

New Features πŸŽ‰

  • Add graceful error handling for unreachable mounted servers by @davenpi in #605
  • Improve type inference from client transport by @jlowin in #623
  • Add keep_alive param to reuse subprocess by @jlowin in #624

Fixes 🐞

  • Fix handling tools without descriptions by @jlowin in #610
  • Don’t print env vars to console when format is wrong by @jlowin in #615
  • Ensure behavior-affecting headers are excluded when forwarding proxies/openapi by @jlowin in #620

Docs πŸ“š

  • Add notes about uv and claude desktop by @jlowin in #597

Other Changes 🦾

  • add init_timeout for mcp client by @jfouret in #607
  • Add init_timeout for mcp client (incl settings) by @jlowin in #609
  • Support for uppercase letters at the log level by @ksawaray in #625

New Contributors

Full Changelog: v2.5.1…v2.5.2
v2.5.1
2024-05-24

v2.5.1: Route Awakening (Part 2)

Fixes 🐞

  • Ensure content-length is always stripped from client headers by @jlowin in #589

Docs πŸ“š

Full Changelog: v2.5.0…v2.5.1
v2.5.0
2024-05-24

v2.5.0: Route Awakening

This release introduces completely new tools for generating and customizing MCP servers from OpenAPI specs and FastAPI apps, including popular requests like mechanisms for determining what routes map to what MCP components; renaming routes; and customizing the generated MCP components.

New Features πŸŽ‰

  • Add FastMCP 1.0 server support for in-memory Client / Testing by @jlowin in #539
  • Minor addition: add transport to stdio server in mcpconfig, with default by @jlowin in #555
  • Raise an error if a Client is created with no servers in config by @jlowin in #554
  • Expose model preferences in Context.sample for flexible model selection. by @davenpi in #542
  • Ensure custom routes are respected by @jlowin in #558
  • Add client method to send cancellation notifications by @davenpi in #563
  • Enhance route map logic for include/exclude OpenAPI routes by @jlowin in #564
  • Add tag-based route maps by @jlowin in #565
  • Add advanced control of openAPI route creation by @jlowin in #566
  • Make error masking configurable by @jlowin in #550
  • Ensure client headers are passed through to remote servers by @jlowin in #575
  • Use lowercase name for headers when comparing by @jlowin in #576
  • Permit more flexible name generation for OpenAPI servers by @jlowin in #578
  • Ensure that tools/templates/prompts are compatible with callable objects by @jlowin in #579

Docs πŸ“š

Full Changelog: v2.4.0…v2.5.0
v2.4.0
2024-05-21

v2.4.0: Config and Conquer

Note: this release includes a backwards-incompatible change to how resources are prefixed when mounted in composed servers. However, it is only backwards-incompatible if users were running tests or manually loading resources by prefixed key; LLMs should not have any issue discovering the new route. See Resource Prefix Formats for more.

New Features πŸŽ‰

  • Allow * Methods and all routes as tools shortcuts by @jlowin in #520
  • Improved support for config dicts by @jlowin in #522
  • Support creating clients from MCP config dicts, including multi-server clients by @jlowin in #527
  • Make resource prefix format configurable by @jlowin in #534

Fixes 🐞

  • Avoid hanging on initializing server session by @jlowin in #523

Breaking Changes πŸ›«

  • Remove customizable separators; improve resource separator by @jlowin in #526

Docs πŸ“š

Other Changes 🦾

  • Ensure openapi path params are handled properly by @jlowin in #519
  • better error when missing lifespan by @zzstoatzz in #521
Full Changelog: v2.3.5…v2.4.0
v2.3.5
2024-05-20

v2.3.5: Making Progress

New Features πŸŽ‰

Fixes 🐞

  • Remove patch and use upstream SSEServerTransport by @jlowin in #425

Docs πŸ“š

  • Update transport docs by @jlowin in #458
  • update proxy docs + example by @zzstoatzz in #460
  • doc(asgi): Change custom route example to PlainTextResponse by @mcw0933 in #477
  • Store FastMCP instance on app.state.fastmcp_server by @jlowin in #489
  • Improve AGENTS.md overview by @jlowin in #492
  • Update release numbers for anticipated version by @jlowin in #516

Other Changes 🦾

New Contributors

Full Changelog: v2.3.4…v2.3.5
v2.3.4
2024-05-15

v2.3.4: Error Today, Gone Tomorrow

New Features πŸŽ‰

  • logging stack trace for easier debugging by @jbkoh in #413
  • add missing StreamableHttpTransport in client exports by @yihuang in #408
  • Improve error handling for tools and resources by @jlowin in #434
  • feat: add support for removing tools from server by @davenpi in #437
  • Prune titles from JSONSchemas by @jlowin in #449
  • Declare toolsChanged capability for stdio server. by @davenpi in #450
  • Improve handling of exceptiongroups when raised in clients by @jlowin in #452
  • Add timeout support to client by @jlowin in #455

Fixes 🐞

  • Pin to mcp 1.8.1 to resolve callback deadlocks with SHTTP by @jlowin in #427
  • Add reprs for OpenAPI objects by @jlowin in #447
  • Ensure openapi defs for structured objects are loaded properly by @jlowin in #448
  • Ensure tests run against correct python version by @jlowin in #454
  • Ensure result is only returned if a new key was found by @jlowin in #456

Docs πŸ“š

  • Add documentation for tool removal by @jlowin in #440

Other Changes 🦾

  • Deprecate passing settings to the FastMCP instance by @jlowin in #424
  • Add path prefix to test by @jlowin in #432

New Contributors

Full Changelog: v2.3.3…v2.3.4
v2.3.3
2024-05-10

v2.3.3: SSE you later

This is a hotfix for a bug introduced in 2.3.2 that broke SSE servers

Fixes 🐞

  • Fix bug that sets message path and sse path to same value by @jlowin in #405

Docs πŸ“š

Other Changes 🦾

  • Add test for no prefix when importing by @jlowin in #404
Full Changelog: v2.3.2…v2.3.3
v2.3.2
2024-05-10

v2.3.2: Stuck in the Middleware With You

New Features πŸŽ‰

  • Allow users to pass middleware to starlette app constructors by @jlowin in #398
  • Deprecate transport-specific methods on FastMCP server by @jlowin in #401

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.3.1…v2.3.2
v2.3.1
2024-05-09

v2.3.1: For Good-nests Sake

This release primarily patches a long-standing bug with nested ASGI SSE servers.

Fixes 🐞

  • Fix tool result serialization when the tool returns a list by @strawgate in #379
  • Ensure FastMCP handles nested SSE and SHTTP apps properly in ASGI frameworks by @jlowin in #390

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.3.0…v2.3.1
v2.3.0
2024-05-08

v2.3.0: Stream Me Up, Scotty

New Features πŸŽ‰

  • Add streaming support for HTTP transport by @jlowin in #365
  • Support streaming HTTP transport in clients by @jlowin in #366
  • Add streaming support to CLI by @jlowin in #367

Fixes 🐞

  • Fix streaming transport initialization by @jlowin in #368

Docs πŸ“š

  • Update transport documentation for streaming support by @jlowin in #369
Full Changelog: v2.2.10…v2.3.0
v2.2.10
2024-05-06

v2.2.10: That’s JSON Bourne

Fixes 🐞

Other Changes 🦾

New Contributors

Full Changelog: v2.2.9…v2.2.10
v2.2.9
2024-05-06

v2.2.9: Str-ing the Pot (Hotfix)

This release is a hotfix for the issue detailed in #330

Fixes 🐞

Docs πŸ“š

Other Changes 🦾

  • Update quickstart.mdx example to include import by @discdiver in #329

New Contributors

Full Changelog: v2.2.8…v2.2.9
v2.2.8
2024-05-05

v2.2.8: Parse and Recreation

New Features πŸŽ‰

  • Replace custom parsing with TypeAdapter by @jlowin in #314
  • Handle *args/**kwargs appropriately for various components by @jlowin in #317
  • Add timeout-graceful-shutdown as a default config for SSE app by @jlowin in #323
  • Ensure prompts return descriptions by @jlowin in #325

Fixes 🐞

  • Ensure that tool serialization has a graceful fallback by @jlowin in #310

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.2.7…v2.2.8
v2.2.7
2024-05-03

v2.2.7: You Auth to Know Better

New Features πŸŽ‰

Other Changes 🦾

Full Changelog: v2.2.6…v2.2.7
v2.2.6
2024-04-30

v2.2.6: The REST is History

New Features πŸŽ‰

Fixes 🐞

  • Ensure openapi tool responses are properly converted by @jlowin in #283
  • Fix OpenAPI examples by @jlowin in #285
  • Fix client docs for advanced features, add tests for logging by @jlowin in #284

Other Changes 🦾

  • add testing doc by @jlowin in #264
  • #267 Fix openapi template resource to support multiple path parameters by @jeger-at in #278

New Contributors

Full Changelog: v2.2.5…v2.2.6
v2.2.5
2024-04-26

v2.2.5: Context Switching

New Features πŸŽ‰

  • Add tests for tool return types; improve serialization behavior by @jlowin in #262
  • Support context injection in resources, templates, and prompts (like tools) by @jlowin in #263

Docs πŸ“š

  • Update wildcards to 2.2.4 by @jlowin in #257
  • Update note in templates docs by @jlowin in #258
  • Significant documentation and test expansion for tool input types by @jlowin in #261
Full Changelog: v2.2.4…v2.2.5
v2.2.4
2024-04-25

v2.2.4: The Wild Side, Actually

The wildcard URI templates exposed in v2.2.3 were blocked by a server-level check which is removed in this release.

New Features πŸŽ‰

  • Allow customization of inspector proxy port, ui port, and version by @jlowin in #253

Fixes 🐞

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v2.2.3…v2.2.4
v2.2.3
2024-04-25

v2.2.3: The Wild Side

New Features πŸŽ‰

  • Add wildcard params for resource templates by @jlowin in #246

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.2.2…v2.2.3
v2.2.2
2024-04-24

v2.2.2: Prompt and Circumstance

New Features πŸŽ‰

Fixes 🐞

  • Ensure that resource templates are properly exposed by @jlowin in #238

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.2.1…v2.2.2
v2.2.1
2024-04-23

v2.2.1: Template for Success

New Features πŸŽ‰

Fixes 🐞

  • Ensure that resource templates are properly exposed by @jlowin in #231

Docs πŸ“š

  • Update docs for resource templates by @jlowin in #232

Other Changes 🦾

Full Changelog: v2.2.0…v2.2.1
v2.2.0
2024-04-22

v2.2.0: Compose Yourself

New Features πŸŽ‰

  • Add support for mounting FastMCP servers by @jlowin in #175
  • Add support for duplicate behavior == ignore by @jlowin in #169

Breaking Changes πŸ›«

Docs πŸ“š

Other Changes 🦾

  • Add transport kwargs for mcp.run() and fastmcp run by @jlowin in #161
  • Allow resource templates to have optional / excluded arguments by @jlowin in #164
  • Update resources.mdx by @jlowin in #165

New Contributors

Full Changelog: v2.1.2…v2.2.0
v2.1.2
2024-04-14

v2.1.2: Copy That, Good Buddy

The main improvement in this release is a fix that allows FastAPI / OpenAPI-generated servers to be mounted as sub-servers.

Fixes 🐞

  • Ensure objects are copied properly and test mounting fastapi by @jlowin in #153

Docs πŸ“š

Other Changes 🦾

Full Changelog: v2.1.1…v2.1.2
v2.1.1
2024-04-14

v2.1.1: Doc Holiday

FastMCP’s docs are now available at gofastmcp.com.

Docs πŸ“š

Fixes 🐞

Other Changes 🦾

Full Changelog: v2.1.0…v2.1.1
v2.1.0
2024-04-13

v2.1.0: Tag, You’re It

The primary motivation for this release is the fix in #128 for Claude desktop compatibility, but the primary new feature of this release is per-object tags. Currently these are for bookkeeping only but will become useful in future releases.

New Features πŸŽ‰

  • Add tags for all core MCP objects by @jlowin in #121
  • Ensure that openapi tags are transferred to MCP objects by @jlowin in #124

Fixes 🐞

  • Change default mounted tool separator from / to _ by @jlowin in #128
  • Enter mounted app lifespans by @jlowin in #129
  • Fix CLI that called mcp instead of fastmcp by @jlowin in #128

Breaking Changes πŸ›«

  • Changed configuration for duplicate resources/tools/prompts by @jlowin in #121
  • Improve client return types by @jlowin in #123

Other Changes 🦾

Full Changelog: v2.0.0…v2.1.0
v2.0.0
2024-04-11

v2.0.0: Second to None

New Features πŸŽ‰

  • Support mounting FastMCP instances as sub-MCPs by @jlowin in #99
  • Add in-memory client for calling FastMCP servers (and tests) by @jlowin in #100
  • Add MCP proxy server by @jlowin in #105
  • Update FastMCP for upstream changes by @jlowin in #107
  • Generate FastMCP servers from OpenAPI specs and FastAPI by @jlowin in #110
  • Reorganize all client / transports by @jlowin in #111
  • Add sampling and roots by @jlowin in #117

Fixes 🐞

  • Fix bug with tools that return lists by @jlowin in #116

Other Changes 🦾

Full Changelog: v1.0…v2.0.0
v1.0
2024-04-11

v1.0: It’s Official

This release commemorates FastMCP 1.0, which is included in the official Model Context Protocol SDK:
from mcp.server.fastmcp import FastMCP
To the best of my knowledge, v1 is identical to the upstream version included with mcp.

Docs πŸ“š

  • Update readme to redirect to the official SDK by @jlowin in #79

Other Changes 🦾

  • fix: use Mount instead of Route for SSE message handling by @samihamine in #77

New Contributors

Full Changelog: v0.4.1…v1.0
v0.4.1
2024-12-09

v0.4.1: String Theory

Fixes 🐞

  • fix: handle strings containing numbers correctly by @sd2k in #63

Docs πŸ“š

Other Changes 🦾

New Contributors

Full Changelog: v0.4.0…v0.4.1
v0.4.0
2024-12-05

v0.4.0: Nice to MIT You

This is a relatively small release in terms of features, but the version is bumped to 0.4 to reflect that the code is being relicensed from Apache 2.0 to MIT. This is to facilitate FastMCP’s inclusion in the official MCP SDK.

New Features πŸŽ‰

Fixes 🐞

  • fix: use stderr for logging by @sd2k in #51

Docs πŸ“š

Other Changes 🦾

New Contributors

  • @sd2k made their first contribution in #51
Full Changelog: v0.3.5…v0.4.0
v0.3.5
2024-12-03

v0.3.5: Windows of Opportunity

This release is highlighted by the ability to handle complex JSON objects as MCP inputs and improved Windows compatibility.

New Features πŸŽ‰

Docs πŸ“š

  • Make AI labeler more conservative by @jlowin in #46

Other Changes 🦾

  • Additional Windows Fixes for Dev running and for importing modules in a server by @justjoehere in #43

New Contributors

Full Changelog: v0.3.4…v0.3.5
v0.3.4
2024-12-02

v0.3.4: URL’s Well That Ends Well

Fixes 🐞

  • Handle missing config file when installing by @jlowin in #37
  • Remove BaseURL reference and use AnyURL by @jlowin in #40
Full Changelog: v0.3.3…v0.3.4
v0.3.3
2024-12-02

v0.3.3: Dependence Day

New Features πŸŽ‰

Docs πŸ“š

Full Changelog: v0.3.2…v0.3.3
v0.3.2
Green with ENVy

v0.3.2: Green with ENVy

New Features πŸŽ‰

  • Support env vars when installing by @jlowin in #27

Docs πŸ“š

Full Changelog: v0.3.1…v0.3.2
v0.3.1
2024-12-01

v0.3.1

New Features πŸŽ‰

  • Update README.md by @jlowin in #23
  • add rich handler and dotenv loading for settings by @zzstoatzz in #22
  • print exception when server can’t start by @jlowin in #25

Docs πŸ“š

Other Changes 🦾

Full Changelog: v0.3.0…v0.3.1
v0.3.0
2024-12-01

v0.3.0: Prompt and Circumstance

New Features πŸŽ‰

Other Changes 🦾

New Contributors

Full Changelog: v0.2.0…v0.3.0
v0.2.0
2024-11-30
v0.1.0
2024-11-30

v0.1.0

The very first release of FastMCP! πŸŽ‰Full Changelog: Initial commits