Промпты в клиенте

Чему научитесь

Видео 3:01 и текст урока

К концу урока вы сможете:

Видео и текст урока.

Смотреть урок на Skilljar Prompts in the client · 3:01

Промпты в MCP задают набор сообщений пользователя и ассистента, которые может использовать клиент. Они должны быть качественными, хорошо протестированными и соответствовать общему назначению MCP-сервера.

Код MCP-сервера с промптом format, который переписывает содержимое документа в Markdown.
Промпт format на сервере — переписывает документ в Markdown.

Метод list_prompts

Первый шаг — реализовать в MCP-клиенте метод list_prompts. Он получает все доступные промпты с сервера:

async def list_prompts(self) -> list[types.Prompt]:
    result = await self.session().list_prompts()
    return result.prompts

Простая реализация: вызываем метод сессии list_prompts и возвращаем массив промптов из результата.

Получение отдельного промпта

Метод get_prompt получает конкретный промпт с подставленными аргументами. Аргументы, которые вы передаёте при запросе, уходят в функцию промпта как именованные аргументы:

async def get_prompt(self, prompt_name, args: dict[str, str]):
    result = await self.session().get_prompt(prompt_name, args)
    return result.messages

Метод возвращает сообщения из результата — разговор, который можно сразу отправить Claude.

Как работают аргументы промпта

Функция промпта на сервере может принимать параметры. Например, промпт форматирования документа ожидает параметр doc_id:

def format_document(doc_id: str):
    # The doc_id gets interpolated into the prompt

Когда клиент вызывает get_prompt, в словаре аргументов должны быть ожидаемые ключи. MCP-сервер передаст их функции промпта как именованные аргументы, и в шаблон подставится нужное содержимое.

Проверка промптов в CLI

После реализации промпты можно проверить в интерфейсе командной строки. Когда вы вводите косую черту, доступные промпты появляются как команды. После выбора промпта может понадобиться выбрать значение аргумента (например, ID документа), и затем готовый промпт уходит Claude.

Терминал с uv run main.py, введено /format plan.md и список автодополнения файлов с выделенным plan.md.
В CLI: /format plan.md с автодополнением имени документа.

Порядок работы:

Markdown в терминале: строка таблицы ресурсов «Development Team 5 FTE Phases 1-5» и раздел Risk Management.
Результат: документ переоформлен в Markdown — таблица ресурсов и раздел Risk Management.

Рекомендации по промптам

Создавая промпты для MCP-сервера:

Промпты соединяют заранее заданную функциональность с текущими потребностями пользователя: дают Claude структурированную отправную точку для сложных задач и сохраняют гибкость за счёт параметров.

Дальше

Последний урок раздела — обзор: кто управляет инструментами, ресурсами и промптами.

Оригинал урока: Prompts in the client.