Перейти к содержимому
Выберите тему

Prompts: шаблоны запросов

Шаблоны запросов MCP в редакции 2026-07-28 - prompts/list и prompts/get, аргументы, состав сообщений, ошибки и чем шаблоны отличаются от инструментов

описана редакция 2026-07-28, сверено со спецификацией 4 октября 2026

Источник - страница Prompts спецификации. В примерах для краткости опущено поле _meta; в настоящем запросе оно обязательно.

Шаблонами управляет пользователь. Спецификация уточняет: речь о том, кто решает применить шаблон, а не о том, кто написал его текст. Текст задаёт сервер.

Примитив Кто решает Страница
Tools модель Tools
Resources приложение Resources
Prompts пользователь эта страница

Способ показа протокол не предписывает. Частый вариант - команды, начинающиеся с косой черты.

{
"capabilities": {
"prompts": { "listChanged": true }
}
}
Ответ на prompts/list
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resultType": "complete",
"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 }
]
}
],
"ttlMs": 300000,
"cacheScope": "public"
}
}
Поле Что это
name уникальное имя шаблона
title необязательное название для показа человеку
description необязательное описание
arguments необязательный список аргументов
icons необязательные значки

Список не зависит от соединения, но может зависеть от прав, с которыми пришёл запрос. Результат несёт подсказки для кэша ttlMs и cacheScope.

Запрос
{
"jsonrpc": "2.0",
"id": 2,
"method": "prompts/get",
"params": {
"name": "code_review",
"arguments": { "code": "def hello():\n print('world')" }
}
}
Ответ
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"description": "Code review prompt",
"messages": [
{
"role": "user",
"content": { "type": "text", "text": "Please review this Python code:\ndef hello():\n print('world')" }
}
]
}
}

У каждого сообщения есть роль (user или assistant) и содержимое одного из типов: text, image, audio, resource_link или resource. Изображение и звук передаются в Base64 с указанием MIME-типа.

Сервер может ответить на prompts/get просьбой о дополнительных данных - см. «Многошаговые запросы».

Серверу, объявившему listChanged, следует присылать уведомление notifications/prompts/list_changed клиентам, которые открыли поток subscriptions/listen и попросили об этом.

Ситуация Код
неизвестное имя шаблона -32602
не передан обязательный аргумент -32602
внутренняя ошибка -32603

Реализации обязаны проверять все входные и выходные данные шаблонов, чтобы не допустить атак внедрением и несанкционированного доступа к ресурсам. Текст шаблона приходит с сервера, поэтому к нему относится всё, что сказано о недоверенном содержимом на странице «Отравление инструментов и внедрение инструкций».