Client capability matrix
Client capability matrix
Section titled “Client capability matrix”The MCP specification covers five capabilities that affect what discord-mcp can
do once connected: tools, resources, resources/subscribe, sampling, and
elicitation. Not every client implements all five. This page is the
operator’s quick-reference for what works where, as of the Plan 10 cut
(2026-Q2).
The matrix
Section titled “The matrix”| Capability | Claude Desktop | Claude Code | Cursor | Generic stdio | Notes |
|---|---|---|---|---|---|
tools | yes | yes | yes | yes | Universal — every MCP client supports tool calls. |
resources (read) | yes | yes | yes | varies | List + read URIs. Cursor exposes them in the MCP panel; Claude products surface them inline. |
resources/subscribe | yes | yes | no | varies | Push notifications via notifications/resources/updated. Cursor lacks this as of 2026-Q2; fall back to REST polling. See gateway-subscribe recipe. |
sampling | yes | yes | yes (since 0.42) | varies | Lets the server call back into the client’s LLM. Required by the 5 intelligence tools. See Architecture → Sampling. |
elicitation | yes | yes | no | rare | Mid-tool human-in-the-loop confirmation. discord-mcp uses it for destructive ops; falls back to the __confirm contract when absent. |
Per-client notes
Section titled “Per-client notes”Claude Desktop
Section titled “Claude Desktop”- Min version: 0.7.5 (sampling shipped late 2025).
- Known limitations: stdio only; no HTTP transport. Server config lives
in
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows). - Best for: developer workstations, single-tenant operator UI. Supports all five capabilities.
- Setup: Get started → Client setup.
Claude Code
Section titled “Claude Code”- Min version: any 1.x (MCP support is part of the core CLI).
- Known limitations: same stdio-only constraint as Desktop. The CLI
manages MCP servers via
claude mcp addand stores config in the user’s home directory. - Best for: agent-driven workflows, scripted/CI use, operators who prefer terminal over GUI. Supports all five capabilities.
- Setup: Get started → Client setup.
Cursor
Section titled “Cursor”- Min version: 0.42 for stable sampling support; resource subscriptions remain unsupported as of the Plan 10 cut.
- Known limitations: no
resources/subscribeand noelicitation— destructive tools fall back to the__confirm:truecontract (see Architecture → Confirmation). - Best for: in-editor agent workflows where Discord is one of several MCP servers in scope. Tools and resources both render in the MCP panel.
- Setup: Get started → Client setup.
Generic stdio (custom clients)
Section titled “Generic stdio (custom clients)”- Min version: any client implementing MCP spec ≥ 2025-03-26.
- Known limitations: capability set depends entirely on the client
implementation. The server gracefully advertises only what’s relevant; a
minimum-viable client that only handles
toolswill see 192 tool entries and no resources. - Best for: bespoke agent harnesses, integration tests, or wrapping discord-mcp inside a higher-level orchestrator.
- Setup: configure the client to spawn
npx discord-mcpwith the required env vars (DISCORD_TOKEN,MCP_DRY_RUN, etc.). See Get started → Installation.
Gateway-mode caveat
Section titled “Gateway-mode caveat”--gateway adds resources/subscribe semantics to five URIs (see
gateway-subscribe recipe). The
matrix above shows which clients can take advantage of those subscriptions.
Clients in the “no” column will still see the resources but cannot subscribe
to push updates — they’d have to re-read on a timer to get fresh state.
What the server advertises
Section titled “What the server advertises”discord-mcp announces capabilities at initialize based on:
--gatewayflag → enablesresources/subscribe.MCP_SCOPESenv → restrictstoolslist to the scoped subset.OTEL_ENABLED→ does NOT affect capabilities; observability is server-side only.
Clients then negotiate their side. If both server and client advertise a capability, it’s enabled for the session; if either side lacks it, the feature is invisible.
Related
Section titled “Related”- Get started → Client setup — concrete config snippets per client.
gateway-subscriberecipe — the workflow that exercises subscriptions.intelligence-summarizerecipe — the workflow that exercises sampling.- Architecture → Confirmation — fallback when a client lacks elicitation.