Навигация по ЦУП ААТех
Когда использовать
- Начало любого сценария с карточками (нужны
boardId,spaceId,columnId) - Пользователь спрашивает: «какие доски», «покажи пространства», «что на доске»
- Поиск нужной доски по названию («найди доску Закупки»)
- Проверка ограничений колонки (какие типы карточек разрешены)
Иерархия
Organization
└── Space (пространство — тема работы)
└── Board (доска — канбан)
└── Column (колонка — статус)
└── Card (карточка — задача)
Инструменты
| Инструмент | Параметры | Что возвращает |
|---|---|---|
list_spaces |
— | Пространства текущей организации |
list_boards |
spaceId |
Доски в пространстве |
get_board_columns |
boardId |
Колонки (JSONB) + title доски |
list_all_boards |
— | Все доски по всем пространствам: {id, title, boardType, spaceId, spaceName} |
archive_board |
boardId |
Soft-delete (без активных карточек) |
Сценарии
1. «Покажи доски»
Самый быстрый способ — list_all_boards. Он вернёт плоский список всех доступных досок с именами пространств. Не итерируй list_spaces → list_boards если пользователь не уточнил пространство.
2. «Найди доску по названию»
list_all_boards → фильтруй по title (case-insensitive contains)
Если нашёл одну — запомни её id. Если несколько — уточни у пользователя.
3. «Какие колонки на доске»
get_board_columns(boardId) → board.columns: [{id, title, isFinalColumn, attachedBoardId, allowedCardTypes?}]
Обрати внимание:
isFinalColumn: true— финальная колонка (завершение работы, автоматизация)attachedBoardId— колонка каскадит карточки на dispatch-доскуallowedCardTypes— ограничения по типам карточек в этой колонке (если задано)
4. Получить columnId для создания карточки
1. list_all_boards → найти primary доску
2. get_board_columns(boardId) → выбрать подходящую колонку
3. Запомнить columnId + проверить allowedCardTypes
Важные особенности
Primary vs Dispatch
| Тип | Создавать карточки? | Описание |
|---|---|---|
primary |
ДА — только здесь | Основная доска, хранит карточки |
dispatch |
НЕТ | Отображает карточки из primary через каскад |
personal |
ДА | Персональная доска пользователя |
card.boardId всегда указывает на primary. Если нужно переместить карточку на dispatch — используйте primary колонку с attachedBoardId, каскад сработает автоматически.
Доступ к доскам
- Доска с пустым
userIds(не personal) — видна всем в орге - Доска с заполненным
userIds— только перечисленным + owner/admin - Personal board (
userIdset) — только владельцу + owner/admin - MCP-клиент видит ровно те же доски, что пользователь в UI
Архивация
archive_board работает только если на доске нет активных (не-архивных) карточек. Если есть — предложи пользователю:
- Массово заархивировать карточки:
bulk_move_cardsв колонку +archive_card - Или переместить на другую доску
Типичные ошибки
| Ошибка | Причина |
|---|---|
Board not found |
ID неверный или доска в другой орге |
Access denied |
Нет в userIds доски |
Board has active cards |
Нельзя архивировать — сначала убери карточки |
Пример (типичное начало сценария)
Пользователь: «Создай карточку "Закупка подшипников" в Производстве»
1. list_all_boards
→ ищу spaceName="Производство" + boardType="primary"
→ нашёл boardId=42, spaceId=7
2. get_board_columns(42)
→ выбираю колонку "Новые" columnId="col_abc123"
3. (перехожу к create_card с найденными ID)