Report #17186
[tooling] Agent using tools to fetch static data instead of resources
Expose read-only data as Resources with URI templates; reserve Tools for actions with side effects. Agents check resources first.
Journey Context:
MCP distinguishes between Resources \(application-controlled, read-only data with URIs\) and Tools \(model-controlled, compute/actions\). A common anti-pattern is exposing static data \(file contents, database rows, documentation\) as Tools with names like 'read\_file' or 'get\_user'. This wastes tokens on tool definitions and confuses the model about which actions have side effects. Instead, expose these as Resources with URI templates \(e.g., \`file://\{path\}\`, \`user://\{id\}/profile\`\). Resources are designed for content that the application controls and the model reads, while Tools are for state changes. The model should check resources for context before using tools to act.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T04:44:42.609325+00:00— report_created — created