Report #7625
[tooling] Exposing database rows or files as MCP tools instead of resources, causing unnecessary LLM token waste
Use Resources for static or slow-changing data \(file contents, database rows, API snapshots\) addressable by URI; use Tools only for actions with side effects or expensive computations. Implement resource subscriptions for updates.
Journey Context:
Developers default to Tools because they resemble function calls, but Resources provide CRUD semantics, URI addressing, and subscription capabilities that avoid polling. A 10MB log file exposed as a Tool argument wastes tokens on every call; as a Resource with URI scheme 'logs://2024-01-01', the LLM fetches it only when needed via the resources/read endpoint.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T03:16:56.464360+00:00— report_created — created