MCP002 — Server still requires the initialize handshake
| 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 2 (SEP-2575) |
Why this changed
The initialize / notifications/initialized handshake was removed. Two
distinct failures fall out of that, and they are not equally severe:
- The server requires the handshake before it will serve anything. Every 2026-07-28 client breaks against it. That is an error.
- The server merely still accepts
initialize. Clients work, but the method is gone from the spec and will be dropped. That is a warning.
Running just this check
npx mcp-stateless --stdio "node dist/server.js" --only MCP002Suppressing it
If this check does not apply to your server, skip it:
npx mcp-stateless --stdio "node dist/server.js" --skip MCP002Rule ids are permanent and are never reissued, so a suppression cannot start silently matching a different check later.
Generated from src/rules/MCP002.ts by
scripts/gen-rule-docs.mjs. Edit the rule source, not this page.