Cache and freshness policy
The MCP server should avoid broad response caching until result contracts consistently carry source/freshness metadata. Incorrectly cached blockchain data can mislead AI summaries and users.
Current cache
The only intentional application cache is the BLURT price helper cache. It is narrow and short-lived:
- external price feed only;
- approximately 60 seconds;
- best-effort;
- failures do not invalidate on-chain data;
- USD/BTC values may be
nullwhen unavailable.
No generic response cache yet
Do not add a generic cache layer for account, wallet, history, witness, vote, post, community or pending reward tools in Phase 4. These values have different freshness expectations and source layers:
- Layer 1 account/wallet/reward/vote/witness state changes with blocks and account activity;
- Nexus/Bridge ranked posts and community views have their own indexing freshness;
- external market prices have separate freshness and failure modes;
- mixed dashboard-style tools combine several sources.
Requirement before broader caching
Before introducing per-tool TTLs, structured results should expose provenance/freshness metadata such as:
- source layer (
layer1,nexus,external,mixed); - retrieval timestamp;
- head block or index/version when available;
- cache hit/miss or freshness age;
- caveats for best-effort external data.
Until then, prefer correctness and transparent latency over silent stale responses.
Deployment-level caching
Reverse proxies and CDNs should not cache /mcp responses by default. MCP requests are JSON-RPC POSTs whose results depend on tool arguments and upstream state. If an operator experiments with caching, it should be explicit, endpoint-specific, and validated against stale-data risk.