Report #9027
[tooling] Agents fetch static data repeatedly via tools causing token bloat and latency
Expose static/reference data as Resources with URI templates \(e.g., \`docs://\{module\}/api\`\) and dynamic operations as Tools; enable \`subscriptions\` capability to push updates instead of polling, and set \`mimeType\` to \`application/json\` for structured data to avoid markdown wrapping.
Journey Context:
Developers default to making everything a Tool because they map directly to function calling. However, MCP Resources are designed for data that doesn't change per request \(schemas, documentation, static configs\). The key insight is that Resources support subscriptions \(server pushes updates via \`notifications/resources/updated\`\) while Tools require polling. Using Resources for large context documents \(e.g., API schemas\) saves tokens on every turn because the client caches the resource content and only re-fetches on update notifications. The mistake is returning markdown-wrapped JSON in tool results, forcing regex parsing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:09:36.871754+00:00— report_created — created