Prompts are server-defined, reusable message templates that users explicitly invoke. A prompt definition includes a name, title, description, and a list of typed arguments. Clients discover them via prompts/list and expand one via prompts/get, passing argument values; the server returns fully-formed messages (role plus content blocks) ready to insert into the conversation.
Prompt content can embed resources, so a template can pull in live data at expansion time.
{
"name": "review_code",
"description": "Review code for quality and security issues",
"arguments": [
{ "name": "language", "description": "Programming language", "required": true }
]
}
Because users choose prompts, hosts show them as commands, menu items, or buttons.
The value is that the server author, who knows the domain, can encode the best way to ask. That means the right framing, the right context to include, and the right output format.
Instead of every user hand-writing "summarize this incident and check the runbook," the incident-management server ships an analyze_incident prompt that does it consistently. Prompts also support argument autocompletion through the completion/complete request, so hosts can offer suggestions while the user fills in parameters.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓