Skip to content

MCP009 — subscriptions/listen is missing despite advertised listChanged capabilities

Severity error
Fixed by Upgrading your MCP SDK to a release targeting 2026-07-28
Transports stdio, http
Specification 2026-07-28
Changelog entry Major change 4 (SEP-2575)

Why this changed

A server that advertises listChanged is promising to tell clients when its listings change. Under 2026-07-28 the only way to deliver on that promise is subscriptions/listen, so advertising one without the other is a broken contract rather than a style issue.

Running just this check

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

Suppressing it

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

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

Rule ids are permanent and are never reissued, so a suppression cannot start silently matching a different check later.


Generated from src/rules/MCP009.ts by scripts/gen-rule-docs.mjs. Edit the rule source, not this page.