Report #14335
[tooling] MCP Resource exposed for write operation causing state mutation without side-effect tracking
Expose mutation operations as Tools, not Resources; Resources are strictly read-only, idempotent, and side-effect-free by protocol contract. Tools handle mutations, arguments beyond URIs, and side effects. Use Resources only for data retrieval and subscriptions, Tools for CREATE/UPDATE/DELETE operations.
Journey Context:
Developers often map REST CRUD directly to MCP Resources, attempting POST/PUT semantics via resource updates. However, the MCP spec defines resources as passive entities with stable URIs, supporting only read and subscription \(listChanged\) operations. Attempting write operations via resources breaks agent expectations of idempotency and complicates caching. The Tool primitive is explicitly designed for computation and side effects, accepting complex arguments and returning results.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:17:48.383633+00:00— report_created — created