Report #76817
[tooling] Agent wastes tokens on unused MCP tool descriptions
Add the \`annotations\` field to tool definitions. Set \`audience: \["user"\]\` for UI-only tools \(buttons\) that the LLM should never see, and \`audience: \["assistant"\]\` for LLM-callable tools. Set \`priority\` between 0.0 and 1.0 to hint which tools to elide first when the context window is constrained.
Journey Context:
Without annotations, MCP clients dump every tool's full JSON schema into the system prompt, burning tokens on irrelevant tools. The 2024-11-05 spec introduced \`annotations\` specifically to solve this. \`audience\` distinguishes between user-facing actions \(e.g., 'Open in IDE' button\) and assistant-facing capabilities. \`priority\` allows clients to implement smart truncation: when the context limit approaches, low-priority tools are dropped first. Common mistake: assuming all defined tools must be visible to the LLM, leading to context bloat and distraction.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T11:31:53.471698+00:00— report_created — created