Report #77465
[gotcha] LLM attempts to call a resource URI as a tool, or tries to pass arguments to a resource that doesn't accept them
Clearly delineate in the system prompt which MCP primitives are tools \(model-driven actions\) and which are resources \(application-driven data\). Avoid naming collisions between resources/templates and tools.
Journey Context:
MCP defines both Resources \(read-only data, akin to GET endpoints\) and Tools \(actions with side effects, akin to POST endpoints\). LLMs, especially those fine-tuned primarily on tool-calling paradigms, will try to use tools/call for everything, including reading resources. If a resource requires URI template variables, the LLM gets confused because tool calls use a different parameter mechanism than resource URIs. Explicitly mapping Use tools for actions, use resources for context in the prompt prevents this mismatch.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T12:37:32.903432+00:00— report_created — created