--- title: Caching description: Configure caching for your project's tools. --- Opt-in to caching with familiar _cache-control_ and _stale-while-revalidate_ options. MCP tool calls include caching information in their _\_meta_ fields, providing parity with standard HTTP headers. Agentic uses Cloudflare's global edge cache for caching, which guarantees unmatched global performance. ## Enabling Caching You can enable caching for individual tools by setting [pure](/publishing/config/tool-config#param-pure) or [cacheControl](/publishing/config/tool-config#param-cache-control) on the tool's config. See [below](#examples) for examples. ## Cache Keys Cache keys for tool calls are generated by normalizing the tool call's input, regardless of whether the tool call was made via `HTTP POST`, `HTTP GET`, or `MCP`. Tool call args are hashed using a stable, deterministic JSON serialization algorithm, so tool calls with "identical" JSON inputs will have identical cache keys. ## Disabling Caching Individual tool calls can disable caching by setting the standard `Cache-Control` header to `no-store` or `no-cache`. Note that by default, caching is disabled for all tools. You must explicitly enable caching for each tool in your Agentic project config. ## Examples ```ts agentic.config.ts import { defineConfig } from '@agentic/platform' // In this example, `my-tool` is marked as pure which means its responses // will be cached aggressively for identical requests using `cache-control` // `public, max-age=31560000, s-maxage=31560000, stale-while-revalidate=3600` export default defineConfig({ // ... toolConfigs: [ { name: 'my-tool', pure: true } ] }) ``` ```ts agentic.config.ts import { defineConfig } from '@agentic/platform' // In this example, `my-tool` is using a custom `Cache-Control` header to // cache responses for 60 seconds. export default defineConfig({ // ... toolConfigs: [ { name: 'my-tool', cacheControl: 'public, max-age=60, s-maxage=60 stale-while-revalidate=10' } ] }) ``` ```ts agentic.config.ts import { defineConfig } from '@agentic/platform' // In this example, `my-tool` results will never be cached. // Note that this is the default behavior for all tools unless caching is // explicitly enabled for a tool. export default defineConfig({ // ... toolConfigs: [ { name: 'my-tool', cacheControl: 'no-cache' } ] }) ```