Resources
Not everything should be a tool call. Dumping a schema through a tool wastes a round trip. Resources are the shelf of reference books.
Tools are verbs. Resources are nouns. You open a cookbook (resource). You cook the meal (tool).
Visual Workflows
Start here — scroll inside each diagram frame to explore, then use + / − to zoom up to 200% if needed.
Overview
Scroll inside the frame to explore · use + / − to zoom up to 200%
Scroll inside the frame to explore · use + / − to zoom up to 200%
Preload a schema
Scroll inside the frame to explore · use + / − to zoom up to 200%
A Postgres server can expose db://schema/public so the agent knows tables before it queries.
Key Takeaways
- 1.Resources are readable data — files, schemas, docs — not actions. Each resource has a URI, a name, and usually a mime type.
- 2.Clients call list_resources then read_resource when they need context. Use a resource for lookup; use a tool when something must change.
- 3.URI schemes can be file://, db://, or your own (jira://project/KEY). Keep resources small enough to fit in context.
- 4.Huge dumps belong behind a search tool instead.
Learn elsewhere
- →Tool schemas — next module
- →Prompt templates — Prompts
Real Example
Scenario
A Postgres MCP server lists db://schema/public. At session start the client reads it once, so later SQL tools are aimed at real table names.
What you would do
In Model Context Protocol, apply Resources to this scenario: A Postgres MCP server lists db://schema/public. Identify the inputs, run the technique, validate the output, and note one thing you would monitor in production.
Commands
Commands to Remember
list_resources → metadataread_resource(uri) → text or blobResources = read; tools = doKeep resource payloads small
Cheat Sheet
Quick recap
quick ref- •Resource = readable URI
- •list_resources then read_resource
- •Nouns vs verbs (tools)
- •Do not stuff huge files into context
Common Mistakes
- ✕Making a write action a resource
- ✕Returning a 10 MB file as a resource
- ✕Forgetting a stable URI so the client cannot reload
