Skip to content

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

Terminal window
npx mcp-stateless --stdio "node dist/server.js" --only MCP017

Suppressing it

If this check does not apply to your server, skip it:

Terminal window
npx mcp-stateless --stdio "node dist/server.js" --skip MCP017

Rule 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.