You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have checked that this question would not be more appropriate as an issue in a specific repository
I have searched existing discussions and documentation for answers
Question Category
Protocol Specification
SDK Usage
Server Implementation
General Implementation
Documentation
Other
Your Question
I have a question about the intended usage of Resource in MCP.
From the protocol, resources appear to be client-initiated and read-oriented, but there is no explicit guidance on whether resource handlers are expected to be side-effect free.
In particular:
Is it considered acceptable for a resource handler to:
perform sampling (LLM calls), and
persist derived results (enrichment, annotations, insights) to a database?
This would not be an authoritative state change, but rather post-processing or enrichment based on existing domain events. The authoritative mutation happens elsewhere; the resource materializes insights.
I understand tools are intended for LLM-initiated actions, which makes them a poor fit for client-initiated enrichment workflows.
Is this usage:
considered acceptable but undocumented?
discouraged?
or something the protocol intentionally leaves open?
Clarification on whether resources are expected to be logically read-only vs side-effect free would be very helpful.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Question Category
Your Question
I have a question about the intended usage of
Resourcein MCP.From the protocol, resources appear to be client-initiated and read-oriented, but there is no explicit guidance on whether resource handlers are expected to be side-effect free.
In particular:
This would not be an authoritative state change, but rather post-processing or enrichment based on existing domain events. The authoritative mutation happens elsewhere; the resource materializes insights.
I understand tools are intended for LLM-initiated actions, which makes them a poor fit for client-initiated enrichment workflows.
Is this usage:
Clarification on whether resources are expected to be
logically read-onlyvsside-effect freewould be very helpful.Thanks.
Beta Was this translation helpful? Give feedback.
All reactions