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