createmcps.com

MCP-STL-008

tools/list does not vary per connection

List endpoints (tools/list, resources/list, prompts/list) no longer vary per-connection.spec anchor

How to fix this

Return the same tool list on every connection. `tools/list`, `resources/list` and `prompts/list` no longer vary per connection, so per-connection filtering has to move into the tools themselves.

How the validator checks this

Probe P1.2, against a streamable-http server on the modern protocol. What it reports:

pass
tools/list returned the same … tool… on two separate requests
fail
tools/list varied between two requests — … tool(s) disappeared, … appeared. List endpoints no longer vary per connection in this revision.
skip
tools/list did not return a readable tools array on both samples, so per-connection variance could not be compared

Quoted from the probe that runs this check, so it cannot drift from what the validator actually reports.

This rule is checked heuristically: a fail is inferred rather than certain, so it bumps the overall grade up one level instead of being treated as certain non-compliance.

Checked in the same request as MCP-STL-004.

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 Statelessness and session removal rules

  • MCP-STL-001Server never mints or echoes Mcp-Session-Id
  • MCP-STL-002A client-supplied Mcp-Session-Id is ignored, not required
  • MCP-STL-003A cold modern request succeeds with no prior handshake
  • MCP-STL-004Server does not rely on prior requests over the same connection
  • MCP-STL-005GET on the MCP endpoint returns 405
  • MCP-STL-006DELETE on the MCP endpoint returns 405
  • MCP-STL-007Last-Event-ID is ignored — streams are not resumable