# Расширения: MCP, навыки, хуки и другое

> Свои MCP-серверы, навыки, команды, субагенты, память AGENTS.md и хуки — из настроек окна и консоли. Доверие к хукам и командам проекта.

Всё, чем можно дополнить агента, собрано в **«Настройки → Расширения»** — у вас лично (для всех
проектов) и в **настройках проекта** (для этого репозитория). Файлы конфигурации руками править
не нужно: формы пишут их сами и не трогают остальное содержимое файла.

Вкладки: **MCP**, **Плагины**, **Навыки**, **Команды**, **Субагенты**, **Хуки**, **Память**.

| Вкладка | Что это |
| --- | --- |
| **MCP** | свои MCP-серверы: инструменты, которые агент может вызывать |
| **Навыки** | инструкции агенту для типовой работы, файлы `SKILL.md` |
| **Команды** | свои команды `/…` — заготовленный текст запроса |
| **Субагенты** | агенты для отдельных поручений: свой режим, модель и инструкция |
| **Память** | файлы `AGENTS.md`: что агент знает о проекте с первого сообщения |
| **Хуки** | команда оболочки на событие: перед инструментом, после него, перед отправкой запроса |

## Где хранится: у меня или в проекте

У каждой записи — **область**:

- **у меня** — в каталоге конфигурации пользователя, действует во всех проектах, в репозиторий
  не попадает;
- **в проекте** — в файлах проекта (`buffcode.json`, `.buffcode/`; если в проекте уже есть
  прежние `opencode.json` и `.opencode/`, запись идёт в них), уезжает в репозиторий вместе
  с кодом и действует у всех, кто его откроет. Форма предупреждает об этом.

## MCP-серверы

_Иллюстрация: Серверы Buff Code — то, что даёт организация; ниже — свои серверы со статусом._

- **Серверы Buff Code** — `buff` (интеграции компании и MCP-серверы администратора через
  коннектор), `knowledge` (база знаний организации), `repos` (репозитории проекта, только
  чтение). Они подключаются сами после входа; их можно выключить, но не изменить. Подробно — [Инструменты
  подключений](/docs/buff-code/tools), [База знаний](/docs/buff-code/knowledge),
  [Репозитории проекта](/docs/buff-code/repositories).
- **Свои серверы** — «Добавить сервер»: локальный (команда) или удалённый (адрес). Форма — вкладки
  «Поля» и «JSON»; во вкладку JSON можно вставить запись из настроек другого агента, в том числе
  целый блок `mcpServers`.
- У сервера — **статус словами**: «Подключён», «Подключается…», «Выключен», «Нужен вход», «Не
  запустился — причина» («Команда не найдена…», «Сервер по этому адресу не отвечает…»).
  Выключатель записывается в файл и переживает перезапуск.
_Иллюстрация: Форма сервера: команда на этой машине или адрес в сети; во вкладке JSON — запись из другого агента._

- Подстановки вида `{env:TOKEN}` сохраняются как написаны — секрет из окружения в файл не
  попадёт.

## Навыки

Навык — файл `SKILL.md` с инструкцией для типовой работы: «как готовить заметки к выпуску», «как
проверять миграции». Агент сам решает, когда навык нужен, или вы называете его в сообщении
(`@навык`).

- Список с поиском по названию и описанию, группы по происхождению: **проект**, **мои**,
  **подключённые**. У каждого — описание и выключатель.
- **«Создать навык»** — название, описание, текст. **«Подключить каталог»** — папка или адрес с
  готовыми навыками команды.
- Выключенный навык остаётся на диске, но агент его не видит и в подсказках `@` его нет.

## Команды и субагенты

- **Команда** — заготовленный запрос под своим именем: `/release-notes`, `/git/sync`. Задаются
  описание, текст, агент, модель и где выполнять — в текущей сессии или отдельным субагентом.
- **Субагент** — агент для поручений: «когда вызывать», режим, модель, инструкция. Основной агент
  передаёт ему работу и получает итог.
- Встроенные команды и агенты видны в тех же списках, их можно выключить, но не править.
  Последнего основного агента выключить нельзя.

## Память

**Память** — файлы `AGENTS.md`: общий у вас и файлы проекта — от корня репозитория до открытой
папки. Агент читает их в начале каждой сессии.

- Текст правится на месте; видно, когда файл изменён.
- У каждого файла — выключатель, и есть общий выключатель памяти.

## Хуки

**Хук** — команда оболочки, которая выполняется на событие:

| Событие | Что делает команда |
| --- | --- |
| **перед инструментом** | ненулевой код выхода запрещает вызов, а её вывод уходит агенту как причина |
| **после инструмента** | получает событие и может что-то записать или проверить |
| **перед отправкой запроса** | её вывод дописывается к вашему сообщению |

Событие приходит команде в JSON — на вход и в переменной `BUFF_HOOK_EVENT`.

## Доверие к хукам и командам проекта

Хуки и команды проекта приходят вместе с репозиторием — их писали не вы. Поэтому они **не
выполняются, пока вы не посмотрели их текст и не подтвердили**.

- Над полем ввода появляется полоса о хуках и командах проекта, которые ждут проверки; в
  настройках у таких записей — пометка и «Проверить».
- Подтверждение привязано к содержимому: запись изменилась — Buff Code спросит снова.
- Выключатель «Проверять хуки и команды проекта» — во вкладке «Хуки» и в третьем шаге знакомства.
  Выключайте его только для своих проектов.

## В консоли

| Что | Команды |
| --- | --- |
| MCP | `/mcps` — список и статус; `/mcp-add`, `/mcp-edit`, `/mcp-remove` |
| навыки | `/skills` — список, `ctrl+s` — включить или выключить; `/skill-attach`, `/skill-detach` |
| команды | `/command-add`, `/command-edit`, `/command-remove`, `/command-toggle` |
| субагенты | `/agent-add`, `/agent-edit`, `/agent-remove`, `/agent-toggle` |
| память | `/memory` — выключатели и заметка в конец файла |
| хуки | `/hook-add`, `/hook-remove`, `/hook-toggle` |
| доверие | `/trust` — что ждёт проверки, просмотр и подтверждение |
