Публикация была переведена автоматически. Исходный язык: Русский
В какой-то момент я понял: мне надоело каждый раз объяснять ИИ одно и то же. Контекст проекта, стиль кода, какие инструменты использовать. Каждый новый чат - как знакомство с нуля. И тогда я попробовал собрать в Cursor полноценного ИИ-агента, который знает мой проект, умеет вызывать внешние сервисы и работает по моим правилам. Оказалось, архитектура Cursor для этого уже готова и нужно просто разобраться в нескольких файлах.
Всё крутится вокруг папки .cursor
В корне проекта создаёшь папку .cursor - и именно она превращает редактор в среду для агента. Внутри живут три ключевых конфига.
Первый - rules. Папка с .mdc-файлами, где ты описываешь правила для ИИ: стиль кода, архитектурные решения, запреты, предпочтения. Агент читает их каждый раз перед тем, как что-то сделать. Правила можно привязывать к конкретным файлам через паттерны и тогда они включаются автоматически.
Второй - mcp.json. Конфиг для подключения внешних MCP-серверов (Model Context Protocol). Указываешь имя сервера, команду для запуска, переменные окружения и агент получает доступ к внешним инструментам: API, базам данных, чему угодно. Именно MCP превращает чат-бота в агента, который может действовать, а не просто отвечать.
Третий - hooks.json. Хуки заслуживают отдельного внимания.
Хуки: контроль над агентом
Хуки перехватывают действия агента на разных этапах. Основные типы:
beforeShellExecution - перед выполнением команды в терминале. Можно проверить или заблокировать опасные команды.
beforeMCPExecution - перед вызовами к MCP-серверам. Полезно для логирования или валидации параметров.
beforeReadFile - контроль доступа к файлам. Можно замаскировать секреты до попадания в контекст модели.
afterFileEdit - после редактирования файла агентом. Место для автоформатирования, линтинга или тестов.
stop - уведомление о завершении. Для финальных проверок или отправки отчёта.
Без хуков ты отдаёшь ИИ полный контроль. С ними - задаёшь рамки.
Пример: агент для креативов Google Ads UAC
Конкретный кейс. Мне нужно регулярно генерировать текстовые креативы для Google Ads UAC - заголовки и описания под разные аудитории. Раньше это был ручной процесс: открываешь чат, объясняешь контекст, просишь варианты, правишь.
Теперь в .cursor/rules лежит файл с описанием продукта, тоном коммуникации и лимитами по символам (30 для заголовков, 90 для описаний). В mcp.json подключен сервер, который забирает из Google Ads API статистику по креативам - что работает, что выгорело. В hooks.json стоит afterFileEdit, который автоматически проверяет длину креативов и отсеивает те, что не влезают в лимит.
Итог: пишу «сгенерируй 10 заголовков для сегмента casual gamers» - получаю готовый список, уже отфильтрованный по длине и с учётом прошлой статистики.
Почему это важно
Агент в Cursor - не магия. Это три JSON-файла и набор правил, которые пишешь один раз, а дальше они работают за тебя каждый день. Сила не в самом ИИ, а в том, что ты даёшь ему правильный контекст и правильные инструменты.
В какой-то момент я понял: мне надоело каждый раз объяснять ИИ одно и то же. Контекст проекта, стиль кода, какие инструменты использовать. Каждый новый чат - как знакомство с нуля. И тогда я попробовал собрать в Cursor полноценного ИИ-агента, который знает мой проект, умеет вызывать внешние сервисы и работает по моим правилам. Оказалось, архитектура Cursor для этого уже готова и нужно просто разобраться в нескольких файлах.
Всё крутится вокруг папки .cursor
В корне проекта создаёшь папку .cursor - и именно она превращает редактор в среду для агента. Внутри живут три ключевых конфига.
Первый - rules. Папка с .mdc-файлами, где ты описываешь правила для ИИ: стиль кода, архитектурные решения, запреты, предпочтения. Агент читает их каждый раз перед тем, как что-то сделать. Правила можно привязывать к конкретным файлам через паттерны и тогда они включаются автоматически.
Второй - mcp.json. Конфиг для подключения внешних MCP-серверов (Model Context Protocol). Указываешь имя сервера, команду для запуска, переменные окружения и агент получает доступ к внешним инструментам: API, базам данных, чему угодно. Именно MCP превращает чат-бота в агента, который может действовать, а не просто отвечать.
Третий - hooks.json. Хуки заслуживают отдельного внимания.
Хуки: контроль над агентом
Хуки перехватывают действия агента на разных этапах. Основные типы:
beforeShellExecution - перед выполнением команды в терминале. Можно проверить или заблокировать опасные команды.
beforeMCPExecution - перед вызовами к MCP-серверам. Полезно для логирования или валидации параметров.
beforeReadFile - контроль доступа к файлам. Можно замаскировать секреты до попадания в контекст модели.
afterFileEdit - после редактирования файла агентом. Место для автоформатирования, линтинга или тестов.
stop - уведомление о завершении. Для финальных проверок или отправки отчёта.
Без хуков ты отдаёшь ИИ полный контроль. С ними - задаёшь рамки.
Пример: агент для креативов Google Ads UAC
Конкретный кейс. Мне нужно регулярно генерировать текстовые креативы для Google Ads UAC - заголовки и описания под разные аудитории. Раньше это был ручной процесс: открываешь чат, объясняешь контекст, просишь варианты, правишь.
Теперь в .cursor/rules лежит файл с описанием продукта, тоном коммуникации и лимитами по символам (30 для заголовков, 90 для описаний). В mcp.json подключен сервер, который забирает из Google Ads API статистику по креативам - что работает, что выгорело. В hooks.json стоит afterFileEdit, который автоматически проверяет длину креативов и отсеивает те, что не влезают в лимит.
Итог: пишу «сгенерируй 10 заголовков для сегмента casual gamers» - получаю готовый список, уже отфильтрованный по длине и с учётом прошлой статистики.
Почему это важно
Агент в Cursor - не магия. Это три JSON-файла и набор правил, которые пишешь один раз, а дальше они работают за тебя каждый день. Сила не в самом ИИ, а в том, что ты даёшь ему правильный контекст и правильные инструменты.