Lesson 10 / 25
Tools, Resources and Prompts
Know the three server primitives and who controls each.
Who decides what runs
Tools are functions the model can choose to call (model-controlled), such as "create issue". Resources are read-only data the application can attach, such as a file or a database row (application-controlled). Prompts are reusable templates the user picks, such as a slash command (user-controlled). Choosing the right primitive keeps control where it belongs.
Comparing the three
Use a tool when an action or computation is needed, a resource when you only supply data, and a prompt when the user triggers a ready-made workflow.
Primitive Controlled by Example
Tool the model create_issue(title, body)
Resource the app file:///reports/q3.csv
Prompt the user /review-pull-requestDo not make everything a tool
Too many tools confuse the model and use context. Expose static reference data as resources, and keep each tool small and clearly named.
Quick check: Which MCP primitive is chosen by the user, like a slash command?
- Tool
- Resource
- Prompt
- Transport
Answer
Prompt — Prompts are user-invoked templates; tools are model-invoked and resources are app-attached.