MCP005 — List results are missing the required ttlMs and cacheScope fields
| Severity | error |
| Fixed by | Upgrading your MCP SDK to a release targeting 2026-07-28 |
| Transports | stdio, http |
| Specification | 2026-07-28 |
| Changelog entry | Minor change 5 (SEP-2549) |
Why this changed
SEP-2549 made list and read results cacheable, requiring ttlMs and
cacheScope. Now that list endpoints no longer vary per connection, these
are what let clients and intermediaries stop re-polling — a large part of
the practical win from going stateless.
Findings are grouped by field, not by method. The fields are emitted by the SDK’s result plumbing, so one missing field is one defect however many methods show it, and a finding per method would inflate the error count of a server that needs a single upgrade.
Running just this check
npx mcp-stateless --stdio "node dist/server.js" --only MCP005Suppressing it
If this check does not apply to your server, skip it:
npx mcp-stateless --stdio "node dist/server.js" --skip MCP005Rule ids are permanent and are never reissued, so a suppression cannot start silently matching a different check later.
Generated from src/rules/MCP005.ts by
scripts/gen-rule-docs.mjs. Edit the rule source, not this page.