MCP-CAC-001
ttlMs present on all five cacheable results
“Require ttlMs and cacheScope fields on results returned by tools/list, prompts/list, resources/list, resources/read, and resources/templates/list via a new CacheableResult interface.” — spec anchor
How to fix this
Add `ttlMs` to the results of `tools/list`, `prompts/list`, `resources/list`, `resources/read` and `resources/templates/list`. All five are cacheable results and the field is required on each.
How the validator checks this
Probe P2.1, against a streamable-http server on the modern protocol. What it reports:
- pass
- ttlMs present on all … list result(s) checked
- fail
- ttlMs missing on
- skip
- No list endpoint returned a usable result, so caching metadata could not be checked
Quoted from the probe that runs this check, so it cannot drift from what the validator actually reports.
This rule is checked deterministically: a fail here is a certain violation, not an inference.
Checked in the same request as MCP-HDR-008, MCP-HDR-009, MCP-RES-003, MCP-RES-006, MCP-RES-007, MCP-ERR-003, MCP-ERR-004, MCP-ERR-005, MCP-ERR-008, MCP-CAC-002, MCP-CAC-003, MCP-CAC-004, MCP-CAC-005, MCP-SCH-001, MCP-SCH-002, MCP-SCH-003, MCP-SCH-004, MCP-SCH-005, MCP-SCH-006, MCP-SCH-007, MCP-SEC-004, MCP-SEC-005, MCP-SEC-006, MCP-DEP-005.
Check your own server against this rule
The validator makes real protocol requests and reports this rule as pass, warn or fail alongside the other 78. Validate a server or read how the check works.
Other Caching metadata rules
- MCP-CAC-002cacheScope present on all five cacheable results
- MCP-CAC-003cacheScope is exactly "public" or "private"
- MCP-CAC-004ttlMs is a non-negative number
- MCP-CAC-005Authenticated or personalised results are not marked cacheScope: public