IT · Model Context Protocol

Використання prompts в MCP

Шаблони запитів для типових сценаріїв агента

Урок 8

План заняття

  1. 01 Вступ
  2. 02 Що таке prompts
  3. 03 Навіщо і коли використовувати
  4. 04 Приклад: аналіз авто
  5. 05 Як описувати prompts
  6. 06 Практика

Блок 1

Вступ

Від tools до prompts

Вступ

Що вже є

У qauto MCP server уже працюють tools: signup, signin, add_car, get_cars.

Сьогодні додаємо інтерфейс prompts — готові шаблони запитів для типових сценаріїв.

Блок 2

Що таке prompts

Готові шаблони взаємодії

Що таке prompts

Визначення

Prompts — попередньо визначені шаблони взаємодії для типових сценаріїв.

Вони уніфікують складні запити і зменшують варіативність формулювань користувача.

Що таке prompts

Не tools і не resources

  • Tools — дії (API, створення запису, запуск процесу)
  • Resources — дані й контекст (файли, схеми, документи)
  • Prompts — стандартизований спосіб постановки задачі моделі

Що таке prompts

Приклади

  • code-review — ревʼю коду з чеклистом
  • summarize-meeting — підсумок зустрічі
  • analyze_cars — аналіз авто: таблиця, mileage, статуси

Що таке prompts

Як це виглядає для користувача

Користувач явно обирає prompt у Host (Cursor, Claude Desktop) — prompts є user-controlled.

За потреби підставляє аргументи — і модель одразу працює за готовою структурою, без довгого пояснення в чаті.

Блок 3

Навіщо і коли використовувати

Практичні правила + протокол

Навіщо і коли

Навіщо

  • Уніфікувати повторювані запити команди
  • Не писати довгий промпт щоразу вручну
  • Дати моделі стабільну інструкцію
  • Контролювати формат відповіді

Навіщо і коли

У FastMCP

Під час ініціалізації Server повідомляє Host список prompts.

Host викликає prompts/get — Server повертає текст або messages. У коді: декоратор @mcp.prompt().

Блок 4

Приклад: аналіз авто

Prompt analyze_cars для qauto

Приклад

Ідея

Користувач не пише довгий текст вручну. Обирає prompt analyze_cars — і отримує стандартизовану інструкцію.

Модель аналізує всі авто, сортує за mileage і будує таблицю зі статусами.

Приклад

Що робить prompt

  • Tools: get_cars, за потреби signin
  • Повна інформація по кожному авто
  • Сортування за mileage: від більшого до меншого
  • Відповідь у вигляді таблиці

Приклад

Статуси за mileage

  • mileage < 10000 → зелений
  • 10000–50000 → жовтий
  • mileage > 50000 → червоний

Приклад

Код на FastMCP

@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

Як описувати prompts

Іменування, 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

Description

Пишіть для вибору зі списку: що видає, межа застосування, що на вході.

@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.