Битрикс24 глазами разработчика: канбан и MCP
≈ 3 минуты
В EORA мы живём в Битрикс24. Задачи, сделки, проекты, календарь, всё там. И там же главная боль: интерфейс задач сделан для того, чтобы задачу завести. Работать с ней день за днём в нём тяжело. Доска медленная, фильтры теряются, на телефоне проще не открывать.
Из этой боли выросли два проекта.
Первый: bitrix-flow, рабочее пространство в духе Asana поверх Битрикса. Заходишь через Битрикс24 OAuth, видишь свои проекты и задачи на доске, двигаешь карточки, фильтруешь, создаёшь новые. Всё это уходит в Битрикс через REST, а обратно приходит событиями: Битрикс стучится в /api/b24/handler, подпись проверяется, зеркало задач в MongoDB обновляется в фоне. Доска читает это зеркало, портал остаётся источником истины.
Под капотом Next.js 16 с React 19, MongoDB 7, Tailwind v4, Caddy с HSTS и frame-ancestors под встраивание в портал. 374 коммита. Сессии хранятся хешами, логаут отзывает конкретное устройство. Ошибки летят в GlitchTip через репортер на 80 строк вместо полного SDK. Дамп Mongo шифруется AES-256, потому что в нём OAuth-токены портала. UI-тесты на Playwright сравнивают девять экранов попиксельно в двух вьюпортах, плюс состояния вроде тёмной темы и открытой карточки; эталоны снимаются в том же образе, что в CI, иначе локальные шрифты ломали сравнение. Axe-core держит ноль нарушений WCAG 2.1 AA.
Отдельная история в README про 502: встроенный DNS докера на хосте дважды в сутки переставал резолвить имена сервисов. Приложение живое, Caddy пишет lookup app: server misbehaving. Лечится фиксированными адресами в подсети и скриптом, который пересоздаёт compose, если health-check упал.
Второй проект: форк templates-mcp, MCP-сервера, который Битрикс24 выпустил как официальный шаблон. Подключаешь его к Claude Code, Cursor или Claude Desktop, и дальше с порталом говоришь словами: ассистент сам находит человека по имени, заводит задачу, ставит чеклист, логирует время.
Апстрим сделан добротно: Nuxt 4 и официальный b24jssdk, три формы поставки, от одного .dxt-файла для бухгалтера до докера с TLS и OAuth на каждого пользователя, три слоя тестов, включая evals на выбор инструмента. Только он остановился в июле, и в нём 31 инструмент, почти все про задачи. Для ежедневной работы этого мало: нельзя прочитать чат задачи, нельзя увидеть канбан, нельзя написать человеку.
Поэтому у меня ветка local, и она живёт: 41 коммит с сентября, из них два от коллеги, 49 инструментов вместо 31. Что добавилось: комментарии задачи из обоих хранилищ, чата и старого форума, потому что старые задачи лежат в одном, новые в другом; колонки канбана, чтение доски и перенос задачи по имени колонки; теги и наблюдатели без затирания уже стоящих; файлы из карточки и из чата задачи с загрузкой новых; поиск проекта по имени; диалоги и отправка сообщений в мессенджер. Плюс починки: select без title опустошал весь список, батч терял строки при частичной ошибке, чеклист принимал чужие id. Логгер режет подписанные ссылки Диска и старые uf.php-ссылки, во вторых зашит сырой секрет вебхука.
Четыре починки и чтение комментариев ушли в апстрим пятью пулл-реквестами 3 сентября, все пять висят открытыми. Ветка идёт своим ходом, чтобы не ждать.
Оба для одной ситуации: компания с Битрикса не уйдёт, а разработчику внутри неё надоело ждать доску. Канбан для людей, MCP для агентов.