Configuring prompt templates
Prompt templates, or just prompts, are parameterized quick-access prompts the user can invoke without typing the full prompt text manually. This is particularly useful as a starting point for common use cases, and to produce repeatable results from complex tasks.
Prompt messages are assigned a role User or Agent, indicating which party of the conversation the message belongs to.
Prompts are not general instructions, they are actively and explicitly invoked by the user. The process of invoking a prompt varies by agent framework, but in general they are either shown as buttons when starting a new conversation, invoked as /-commands or found in as menu options.
Single-shot prompts
Single-shot prompts simply add user-provided parameter values into a pre-defined prompt body:
User:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo {{PortfolioID}}? Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
The user supplies the PortfolioID parameter and not the entire prompt text.
Multi-shot prompts
Multi-shot prompts emulate a longer conversation between the user and the agent:
User:
Show me the high/low of the EUR/USD exchange rate 2026-06-09.
Instructions:
1. Read the ExchangeRateHistory dataset
2. Filter by value_date = 2026-06-09 and currency_pair = EUR/USD
Agent:
The EUR/USD exchange started low at 1.16 but climbed to 1.18 towards closing.
User:
Show me the high/low of the {{RatePair}} exchange rate {{ValueDate}}.
Multi-shot prompts can provide examples of expected output as well as give clues to the agent how to resolve a specific request.
Defining prompts
Prompts are defined in markdown files located in <web-installation-root>/MCP/Prompts. While the file is markdown, it follows a certain pattern using markdown headers and bullets to identify sections and parameters.
Sections
Sections are headers starting with one or more # marks and must end with a colon :.
Any heading without a trailing colon is treated as content within the
current section (useful for sub-headings inside prompt text).
Everything above the first section heading is ignored by the parser, so you can use this area for notes, authorship info, or version history.
# Description: — The content under this section is used as a prompt description. Since the prompt is invoked manually, the description is not an agent instruction, but user information.
# Parameters: — Each bullet under the Parameters section defines a prompt argument on the format :
* (default value) ParameterName - Description text. Parameters are always string data type and required, however supplying a default value makes the parameter optional.
# User: — You can supply any number of User and Agent prompt messages. You can reference parameters in a prompt message using the {{ParameterName}}-syntax. The last User message is typically what triggers the final response, and where parameter values are usually referenced.
# Agent: — The content of Agent messages are usually used to supply examples of expected output or clues how to resolve the request. Agent messages can also use parameters, but commonly use hard-coded example values instead.
Example
## Info
Version: 1.0.2
Author: [email protected]
## Description:
Searches for data in a specific dataset and presents results in the requested format.
## Parameters:
* DatasetName - The name or keyword of the dataset to query
* TimePeriod - The time range for the data (e.g. 'last 7 days', '2025-Q1')
* (table) OutputFormat - How to present results: table, summary, chart, or bullets
## User:
Show me a {{OutputFormat}} of {{DatasetName}} for {{TimePeriod}}.
## Instructions
1. Find the dataset matching "{{DatasetName}}".
2. Resolve "{{TimePeriod}}" to an absolute date range.
3. Query the data and present it as {{OutputFormat}}.
## Agent:
I will search for "{{DatasetName}}" and present the results as a {{OutputFormat}}.
Let me start by identifying the correct dataset.Note that the Info and Instructions headers are not sections. Info is a preamble that is ignored and Instructions is a part of the User prompt.
Updated 1 day ago