Report #4946
[tooling] MCP server capabilities not recognized by client despite correct implementation
Explicitly declare capabilities in InitializeResult \(e.g., \`capabilities: \{ tools: \{\}, resources: \{\}, prompts: \{\} \}\`\) even if empty objects; absence implies non-support
Journey Context:
The MCP protocol uses capability negotiation during initialization. The client inspects the \`capabilities\` object in \`InitializeResult\` to determine which methods it can legally call. If you implement \`tools/list\` but don't declare \`capabilities.tools\`, the client assumes your server doesn't support tools and will never call those methods. This is a common pitfall where developers implement the handlers but forget the capability flags, leading to 'empty' tool listings or silent failures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:20:46.527910+00:00— report_created — created