MCP Prompts: User-Picked Templates, prompts/list and prompts/get | MCP Hunter

prompts

Also written prompt templates

MCP prompts are reusable message templates a server offers to a client. They are user-controlled: the user picks one, often as a slash command, and the client fetches its messages with prompts/get. A server that offers them declares the prompts capability.

What are MCP prompts?

A prompt is a template the server wrote and the user chooses to run. A code_review prompt with a code argument is the specification's own example [1]. Clients usually show them as slash commands, though the protocol leaves the interface open.

Prompts or tools?

The difference is who decides to use it.

Prompts Tools
Who triggers it The user picks it The model calls it
What comes back Messages to send to the model The result of doing something
Listed with prompts/list tools/list
Run with prompts/get tools/call

The specification calls prompts "user-controlled" [1] and tools "model-controlled" [2]. Build a tool when the model should decide to act. Build a prompt when a person keeps typing the same instructions and you can write them better once.

How does a client use them?

A server offering prompts declares the prompts capability. The client then lists them, with any arguments each one takes:

{
  "prompts": [
    {
      "name": "code_review",
      "title": "Request Code Review",
      "description": "Asks the LLM to analyze code quality and suggest improvements",
      "arguments": [
        { "name": "code", "description": "The code to review", "required": true }
      ]
    }
  ]
}

When the user picks one, prompts/get sends the name and arguments, and the server returns finished messages:

{
  "description": "Code review prompt",
  "messages": [
    {
      "role": "user",
      "content": {
        "type": "text",
        "text": "Please review this Python code:\ndef hello():\n    print('world')"
      }
    }
  ]
}

A message can hold text, an image, audio or a resource. A wrong prompt name or a missing required argument should come back as -32602 [1].

What changed in the 2026-07-28 revision?

Prompts stay user-controlled, and four things around them moved [3][4]:

  • The capability arrives in the answer to server/discover, because the initialize handshake is gone.
  • prompts/list answers carry ttlMs and cacheScope, so a client knows how long to cache them. Every result also carries resultType.
  • The list can differ by the authorization on a request. It can no longer differ per connection.
  • prompts/get may ask for more input first, using the same retry as elicitation.

Example

Our MCP connection test and every listing's dated record read tools. A server offering only prompts has no tools for us to show, which describes what we read and says nothing about the server's quality. If prompts are what you built, say so in your listing's description so people know what they are getting.

Sources

  1. Prompts, MCP specification 2025-11-25
  2. Tools, MCP specification 2025-11-25
  3. Prompts, MCP specification 2026-07-28
  4. Key changes, MCP specification 2026-07-28

Go deeper

Related terms