From 2491993327f977d731a600d907a6dbba90e51f76 Mon Sep 17 00:00:00 2001 From: Bill Easton Date: Fri, 27 Mar 2026 20:42:09 -0500 Subject: [PATCH] Fix prompt caching middleware missing wrap/unwrap round-trip (#3666) Co-authored-by: Claude Opus 4.6 (1M context) --- src/fastmcp/server/middleware/caching.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fastmcp/server/middleware/caching.py b/src/fastmcp/server/middleware/caching.py index b8c290954..cb2b49866 100644 --- a/src/fastmcp/server/middleware/caching.py +++ b/src/fastmcp/server/middleware/caching.py @@ -480,14 +480,15 @@ class ResponseCachingMiddleware(Middleware): return cached_value.unwrap() value: PromptResult = await call_next(context=context) + cached_value = CachablePromptResult.wrap(value) await self._get_prompt_cache.put( key=cache_key, - value=CachablePromptResult.wrap(value), + value=cached_value, ttl=self._get_prompt_settings.get("ttl", ONE_HOUR_IN_SECONDS), ) - return value + return cached_value.unwrap() def _matches_tool_cache_settings(self, tool_name: str) -> bool: """Check if the tool matches the cache settings for tool calls."""