MCP017 — tools/list ordering is not deterministic
| Severity | warning |
| Fixed by | A change in your own server code |
| Transports | stdio, http |
| Specification | 2026-07-28 |
| Changelog entry | Minor change 3 |
Why this changed
Now that list results are cacheable and no longer vary per connection, ordering matters: a listing that reshuffles between calls defeats client-side caching and, downstream, LLM prompt caching.
Running just this check
npx mcp-stateless --stdio "node dist/server.js" --only MCP017Suppressing it
If this check does not apply to your server, skip it:
npx mcp-stateless --stdio "node dist/server.js" --skip MCP017Rule ids are permanent and are never reissued, so a suppression cannot start silently matching a different check later.
Generated from src/rules/MCP017.ts by
scripts/gen-rule-docs.mjs. Edit the rule source, not this page.