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.

Advertisement

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://..." } }
}
Advertisement

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.

Server-side prompt templates encode domain expertise once. Clients discover + parametrize. Goodbye prompt copy-paste.