Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-06-11 | 5.8 kB | |
v2.8.0_ Transform and Roll Out source code.tar.gz | 2025-06-11 | 2.6 MB | |
v2.8.0_ Transform and Roll Out source code.zip | 2025-06-11 | 2.7 MB | |
Totals: 3 Items | 5.2 MB | 0 |
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 https://github.com/jlowin/fastmcp/discussions/591 and https://github.com/jlowin/fastmcp/pull/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 https://github.com/jlowin/fastmcp/pull/745
- Support enable/disable for all FastMCP components (tools, prompts, resources, templates) by @jlowin in https://github.com/jlowin/fastmcp/pull/781
- Add support for tag-based component filtering by @jlowin in https://github.com/jlowin/fastmcp/pull/748
- Allow tag assignments for OpenAPI by @jlowin in https://github.com/jlowin/fastmcp/pull/791
Enhancements 🔧
- Create common base class for components by @jlowin in https://github.com/jlowin/fastmcp/pull/776
- Move components to own file; add resource by @jlowin in https://github.com/jlowin/fastmcp/pull/777
- Update FastMCP component with eq and repr by @jlowin in https://github.com/jlowin/fastmcp/pull/779
- Remove open-ended and server-specific settings by @jlowin in https://github.com/jlowin/fastmcp/pull/750
Fixes 🐞
- Ensure client is only initialized once by @jlowin in https://github.com/jlowin/fastmcp/pull/758
- Fix field validator for resource by @jlowin in https://github.com/jlowin/fastmcp/pull/778
- Ensure proxies can overwrite remote tools without falling back to the remote by @jlowin in https://github.com/jlowin/fastmcp/pull/782
Breaking Changes 🛫
- Treat all openapi routes as tools by @jlowin in https://github.com/jlowin/fastmcp/pull/788
- Fix issue with global OpenAPI tags by @jlowin in https://github.com/jlowin/fastmcp/pull/792
Docs 📚
- Minor docs updates by @jlowin in https://github.com/jlowin/fastmcp/pull/755
- Add 2.7 update by @jlowin in https://github.com/jlowin/fastmcp/pull/756
- Reduce 2.7 image size by @jlowin in https://github.com/jlowin/fastmcp/pull/757
- Update updates.mdx by @jlowin in https://github.com/jlowin/fastmcp/pull/765
- Hide docs sidebar scrollbar by default by @jlowin in https://github.com/jlowin/fastmcp/pull/766
- Add "stop vibe testing" to tutorials by @jlowin in https://github.com/jlowin/fastmcp/pull/767
- Add docs links by @jlowin in https://github.com/jlowin/fastmcp/pull/768
- Fix: updated variable name under Gemini remote client by @yrangana in https://github.com/jlowin/fastmcp/pull/769
- Revert "Hide docs sidebar scrollbar by default" by @jlowin in https://github.com/jlowin/fastmcp/pull/770
- Add updates by @jlowin in https://github.com/jlowin/fastmcp/pull/773
- Add tutorials by @jlowin in https://github.com/jlowin/fastmcp/pull/783
- Update LLM-friendly docs by @jlowin in https://github.com/jlowin/fastmcp/pull/784
- Update oauth.mdx by @JeremyCraigMartinez in https://github.com/jlowin/fastmcp/pull/787
- Add changelog by @jlowin in https://github.com/jlowin/fastmcp/pull/789
- Add tutorials by @jlowin in https://github.com/jlowin/fastmcp/pull/790
- Add docs for tag-based filtering by @jlowin in https://github.com/jlowin/fastmcp/pull/793
Other Changes 🦾
- Create dependabot.yml by @jlowin in https://github.com/jlowin/fastmcp/pull/759
- Bump astral-sh/setup-uv from 3 to 6 by @dependabot in https://github.com/jlowin/fastmcp/pull/760
- Add dependencies section to release by @jlowin in https://github.com/jlowin/fastmcp/pull/761
- Remove extra imports for MCPConfig by @Maanas-Verma in https://github.com/jlowin/fastmcp/pull/763
- Split out enhancements in release notes by @jlowin in https://github.com/jlowin/fastmcp/pull/764
New Contributors
- @dependabot made their first contribution in https://github.com/jlowin/fastmcp/pull/760
- @Maanas-Verma made their first contribution in https://github.com/jlowin/fastmcp/pull/763
- @JeremyCraigMartinez made their first contribution in https://github.com/jlowin/fastmcp/pull/787
Full Changelog: https://github.com/jlowin/fastmcp/compare/v2.7.1...v2.8.0