docs(mcp): capabilities line omits declared-but-empty prompts/resources

2026-08-28 11:34:21 -06:00
parent 95d9bfa4ca
commit 4762748875
+5 -5
@@ -608,8 +608,8 @@ So a resources-only server still gets `mcp_search`, `mcp_describe`, and `mcp_rea
Note that *declaring* a capability and *serving* items for it are different things: some server SDKs advertise
prompts/resources unconditionally even when zero prompts or resources are actually registered. Gating (and prompt
completion) always reflects what the server actually serves, and `.info mcp-server <server>` makes the difference
visible by live-probing each declared capability.
completion) always reflects what the server actually serves, and `.info mcp-server <server>` live-probes each
declared capability so its `capabilities` line only lists what the server actually offers.
## Reading Resources
@@ -800,9 +800,9 @@ tools (2 allowed / 4 total)
* ✗ rows name the first layer that hid the tool.
* The `capabilities` line live-probes prompts and resources: capabilities with served items show a count (e.g.
`prompts (2)`, `resources (3)` — resources count includes templates), while a capability the server declares but
serves nothing for is annotated `prompts (declared, none served)`. That's why a server can "support" prompts yet
offer no `/prompt` completions. If the probe itself errors, the annotation is `(declared, list failed)`. `tools`
is never annotated — the tool table below it tells the full story.
serves nothing for is omitted entirely — some SDKs advertise prompts/resources unconditionally, and a capability
with zero items is not worth listing. If a probe errors, the capability can't be proven empty and is shown as
`prompts (declared, list failed)`. `tools` is never annotated — the tool table below it tells the full story.
* ⚠ lines flag **dead patterns**: patterns that match none of the server's allowed tools (usually typos). Dead
patterns are also logged as warnings when the server's catalog is fetched.
* With no active filter, the header shows `filter layers (none — all tools allowed)` and every tool is a bare ✓.