IT · Model Context Protocol
Шаблони запитів для типових сценаріїв агента
Урок 8
Блок 1
Від tools до prompts
Вступ
У qauto MCP server уже працюють tools: signup, signin, add_car, get_cars.
Сьогодні додаємо інтерфейс prompts — готові шаблони запитів для типових сценаріїв.
Блок 2
Готові шаблони взаємодії
Що таке prompts
Prompts — попередньо визначені шаблони взаємодії для типових сценаріїв.
Вони уніфікують складні запити і зменшують варіативність формулювань користувача.
Що таке prompts
Що таке prompts
code-review — ревʼю коду з чеклистомsummarize-meeting — підсумок зустрічіanalyze_cars — аналіз авто: таблиця, mileage, статусиЩо таке prompts
Користувач явно обирає prompt у Host (Cursor, Claude Desktop) — prompts є user-controlled.
За потреби підставляє аргументи — і модель одразу працює за готовою структурою, без довгого пояснення в чаті.
Блок 3
Практичні правила + протокол
Навіщо і коли
Навіщо і коли
Під час ініціалізації Server повідомляє Host список prompts.
Host викликає prompts/get — Server повертає текст або messages. У коді: декоратор @mcp.prompt().
Блок 4
Prompt analyze_cars для qauto
Приклад
Користувач не пише довгий текст вручну. Обирає prompt analyze_cars — і отримує стандартизовану інструкцію.
Модель аналізує всі авто, сортує за mileage і будує таблицю зі статусами.
Приклад
get_cars, за потреби signinmileage: від більшого до меншогоПриклад
mileage < 10000 → зелений10000–50000 → жовтийmileage > 50000 → червонийПриклад
@mcp.prompt()
def analyze_cars() -> str:
"""Аналіз авто: таблиця, mileage, статуси."""
return (
"Проаналізуй усі авто користувача.\n"
"1) signin якщо треба · 2) get_cars\n"
"3) уся інформація по авто\n"
"4) сортуй за mileage DESC\n"
"5) markdown-таблиця\n"
"6) статус: <10k зелений, "
"10k–50k жовтий, >50k червоний"
)
Приклад
Блок 5
Іменування, description, аргументи
Опис prompts
Docstring tool читає модель — вона вирішує, викликати чи ні.
Prompt обирає користувач або клієнт (список як slash-команди). Модель бачить контент уже після вибору.
Тому опис пишемо «для людини в списку», а не «для LLM, яка приймає рішення».
Опис prompts
Дієслово + предмет, коротко, як команда. Назва — це UI.
# Добре
@mcp.prompt()
async def summarize_ticket(...): ...
@mcp.prompt()
async def draft_release_notes(...): ...
# Погано
@mcp.prompt()
async def ticket_stuff(...): ...
Опис prompts
Пишіть для вибору зі списку: що видає, межа застосування, що на вході.
@mcp.prompt()
async def summarize_ticket(ticket_id: str):
"""
Стислий саммарі одного тікета:
суть, статус, останні коментарі.
Для одного тікета за ID — не для
списку і не для аналітики по кількох.
"""
Опис prompts
Prompt може бути без аргументів. Якщо вони є — description пишіть для людини в формі клієнта.
@mcp.prompt()
async def draft_release_notes(
version: str,
tone: str = "neutral",
):
"""
Чернетка release notes для версії.
Args:
version: Номер, наприклад "2.4.0".
tone: "neutral", "casual"
або "marketing".
"""
Блок 6
Завдання і чекліст
Фінал заняття
На цій лекції ми розібрали prompts у MCP: що це за інтерфейс, як додати їх до сервера і як описувати назву, description та аргументи для людини в списку.
Також зібрали практичний приклад — prompt analyze_cars з таблицею та статусами за mileage.
У наступній лекції перейдемо до resources в MCP.