Prompts публикуют шаблон, а не скрытую власть
MCP-prompt - это discoverable-шаблон сообщений с аргументами. Он помогает host предложить пользователю готовый workflow: "подготовить проверку релиза" одним действием. Но именно из-за удобства важно понимать его границу - prompt не заменяет system policy и не должен незаметно выдавать серверу дополнительные права.
Наш prompt заполняет сообщение с указанием нужного инструмента и требуемого формата ответа.
server.registerPrompt(
"prepare-release-review",
{
title: "Подготовить проверку релиза",
description: "Создаёт пользовательское сообщение с указанием нужного tool и требуемого формата ответа.",
argsSchema: z.object({
service: z.string().min(2),
version: z.string().regex(/^\d+\.\d+\.\d+$/u)
})
},
({ service, version }) => ({
description: `Проверка ${service}@${version}`,
messages: [{
role: "user",
content: {
type: "text",
text: [
`Проверь готовность ${service}@${version}.`,
"Используй review_release и политику runbook://release-policy.",
"Верни решение, непройденные проверки и доказательства."
].join(" ")
}
}]
})
);Разница между хорошим и плохим применением здесь очень наглядна. Хорошее - это команда в IDE "Подготовить review релиза", которая явно заполняет service и version и показывает получившийся текст до запуска: пользователь видит, что именно уйдёт модели. Плохое - скрытая инструкция игнорировать policy, автоматически вызвать разрушительный инструмент или передать серверу лишние данные. Один и тот же механизм, противоположный уровень доверия.
Ключ - в том, кто чем управляет. Сервер предлагает шаблон. Клиент его запрашивает. Host решает, как показать и вставить сообщения. Пользователь должен видеть важные последствия, а system- и developer-инструкции host остаются выше любого server-provided текста. Если этот порядок нарушить, prompt превращается из удобства в канал скрытой власти.
Инструмент, ресурс или prompt. Если нужен побочный эффект или вычисление - это инструмент. Если нужен адресуемый факт - это ресурс. Если нужен переиспользуемый шаблон взаимодействия - это prompt. Не делайте три поверхности для одной операции без ясной причины.
Три поверхности MCP разобраны. Но всё, что мы писали, живёт по правилам конкретной редакции протокола - а она в 2026 году серьёзно изменилась. Пора понять, чем именно.