Whatever message this page gives is out now! Go check it out!

Prompt Structure

Last update:
May 18, 2026
In an MCP-backed system, a prompt is a reusable, named template that defines how the model should behave for a specific task.

Overview

In an MCP-backed system, a prompt is a reusable, named template that defines how the model should behave for a specific task. Instead of rewriting instructions in every request, you:
  • Define a prompt once on the server (e.g., summarize_document).
  • Optionally parameterize it with arguments (e.g., tone, audience).
  • Call it via MCP (prompts/list / prompts/get) and fill in arguments at runtime.
A typical prompt definition includes:
  • A name – a unique identifier for the prompt.
  • A title – a human-friendly label.
  • A description – what the prompt is for and when to use it.
  • A list of arguments – named placeholders you can pass values into.
  • One or more messages – structured text the model receives (system, user, etc.).

Example Prompt Definition

Conceptually, a prompt might look like this:

{
  "name": "summarize_document",
  "title": "Summarize a document",
  "description": "Summarize a document for a specific audience and tone.",
  "arguments": [
    {
      "name": "document_text",
      "description": "Full text of the document to summarize.",
      "required": true
    },
    {
      "name": "audience",
      "description": "Target audience (e.g., 'executive', 'technical').",
      "required": false
    },
    {
      "name": "tone",
      "description": "Tone of the summary (e.g., 'formal', 'casual').",
      "required": false
    }
  ],
  "messages": [
    {
      "role": "system",
      "content": "You are an expert summarization assistant. Always respond in the requested tone and for the specified audience when provided."
    },
    {
      "role": "user",
      "content": "Summarize the following document:\n\n{{document_text}}\n\nAudience: {{audience}}\nTone: {{tone}}"
    }
  ]
}
      
From a user standpoint:
  • You don’t need to write this JSON yourself, but this is what your tools/clients are working with behind the scenes.
  • You’ll see prompts by their name, title, and argument list when you inspect them via MCP.

How Prompts Are Used at Runtime

At runtime, your MCP client (or agent) will:
  • Call prompts/list to discover available prompts.
Call prompts/get with a prompt name and an arguments map, for example:

{
  "name": "summarize_document",
  "arguments": {
    "document_text": "Long document text here...",
    "audience": "executive",
    "tone": "formal"
  }
}
      
The server returns a ready-to-use message sequence with all placeholders filled.
The client sends those messages to the model as the basis for the completion.
You don’t have to manage the string interpolation or message assembly yourself; you focus on choosing the prompt and providing the arguments.

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page