T
Tools
Functions the LLM can call
Model-controlled. The LLM decides when to use them based on context.
R
Resources
Data the app can read
App-controlled. The host application decides when to fetch and inject them.
P
Prompts
Reusable prompt templates
User-controlled. The user selects which prompt template to use.
A common mistake is putting everything into tools. MCP gives you three distinct primitives, each with different control semantics. Using the right one for the right job makes your server more predictable, secure, and useful.