FastMCP 3.0 introduces session-specific visibility control via ctx.enable_components() / ctx.disable_components(). This could let us adapt available tools per session — e.g. hide write operations (resolve, reply) until the agent explicitly opts in, or scope tools based on configuration.
What's available:
ctx.enable_components() / ctx.disable_components() per session
- Granular authorization on individual components with async auth checks
Potential use cases:
- Progressive disclosure: start with read-only tools, enable write tools after agent confirms intent
- Role-based access: different tool sets for different MCP clients
- Could replace or complement our
WriteOperationMiddleware
Ref: https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.0
FastMCP 3.0 introduces session-specific visibility control via
ctx.enable_components()/ctx.disable_components(). This could let us adapt available tools per session — e.g. hide write operations (resolve, reply) until the agent explicitly opts in, or scope tools based on configuration.What's available:
ctx.enable_components()/ctx.disable_components()per sessionPotential use cases:
WriteOperationMiddlewareRef: https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.0