MCP servers can expose prompt templates — pre-written prompts with named parameters. Clients discover them via the protocol, fill in arguments, and feed the result to the LLM. This lets a server bundle domain expertise (good prompts for its data) without the client having to know how to write them.
Server exposes prompts
{
"method": "prompts/list",
"result": {
"prompts": [{
"name": "summarize_pr",
"description": "Summarize a pull request",
"arguments": [{ "name": "pr_url", "required": true }]
}]
}
}Client gets a filled prompt
{
"method": "prompts/get",
"params": { "name": "summarize_pr", "arguments": { "pr_url": "https://..." } }
}Returns ready-to-send messages
The server returns an array of MCP messages (user/assistant turns) ready for the LLM. The client doesn't need to know HOW to summarize a PR — the server's prompt expert encoded that.
Why this matters
Without prompt templates, every client must reinvent good prompts. With them, the server is the source of truth for its domain. Update the prompt once on the server; all clients benefit immediately.
Composing with tools
Prompts can suggest tool sequences. A 'debug_issue' prompt might guide the LLM to call search_logs, then read_recent_commits, then propose_fix. The server bundles tool knowledge with the prompt.