MCP-сервер, плагин «Пачка», раздел «Важное» и перевод в гости
Появился MCP-сервер Пачки: Claude Code, Cursor и другие программы с AI-агентами подключаются по адресу https://mcp.pachca.com/mcp и получают инструмент на каждый метод API. Права те же, что в API, а программу, подключённую через браузер, видно в списке «Авторизации» на странице «API». Через браузер входят Claude Code, приложение Claude, VS Code с GitHub Copilot, Codex и приложение ChatGPT на компьютере, а Cursor и многие другие программы подключаются персональным токеном. Подробнее — в разделах MCP-сервер и Подключение к MCP.
Скиллы для AI-агентов написаны заново: теперь это знание о том, как правильно делать задачи в Пачке. Куда писать и когда спрашивать перед действием, как найти и пересказать обсуждение, какой токен выбрать и почему не хватает прав. Справочник по аргументам агент берёт из описаний инструментов MCP-сервера и pachca <команда> --help. В Claude Code, приложении Claude, Codex, VS Code с GitHub Copilot и Cursor скиллы вместе с MCP-сервером ставит плагин «Пачка», в нём же команды для сводки пропущенного, пересказа треда, дайджеста, объявления и задач по итогам обсуждения. В SourceCraft Code Assistant, OpenCode и другие агенты восемь скиллов ставятся без плагина. Страницы «Сценарии», файл Arazzo и команда pachca guide убраны, их роль взяли скиллы. Семь прежних скиллов тоже убраны: если они у вас стоят, удалите их командой из раздела Скиллы без плагина. Подробнее — в разделе Плагин и скиллы.
Через API можно вести личный раздел «Важное»: получать список отмеченных сообщений, добавлять в него сообщение и убирать оттуда. Отметку видит только сам сотрудник, и она остаётся после выхода из чата. Методы работают с токеном сотрудника, токену бота они недоступны. У сообщений в ответах API появилось поле important. У добавления и удаления свой лимит.
Были добавлены новые методы:
Методом PUTРедактирование сотрудника сотрудника или мульти-гостя можно перевести в гости, указав чат, в котором он останется. Перевод снимает все теги, выводит из остальных бесед и каналов и отзывает все токены сотрудника, включая доступы, выданные ботам и программам с MCP. Повышение роли ничего из этого не возвращает. Подробнее — в разделе Перевод в гости.
Бот без публичного адреса может получать события сразу, как они происходят: по ссылке в формате Server-Sent Events. Так он успевает ответить на нажатие кнопки или отправку формы. Подробнее — в разделе События в реальном времени.
Был добавлен новый метод:
Ещё изменения:
- POSTНовый чат отвечает
422с кодомblankна пустое название и возвращает вmetaидентификаторы тегов, которых нет в пространстве. - POSTНовый тег и PUTРедактирование тега отвечают
400с кодомblankна пустое название. - Методы POSTНовый бот, PUTРедактирование бота, POSTРотация токена бота и POSTРотация секрета клиента отдают адрес входящего вебхука и секрет подписи при тех же правах, что GETИнформация о боте.
- Создатель нового самостоятельного треда становится его владельцем: исключает участников и удаляет чужие сообщения. Подробнее — в разделе Права в треде.
- POSTЭкспорт сообщений отвечает
422с кодомtoo_longна список больше 50 чатов и422с кодомinvalidна дату не в формате YYYY-MM-DD. - При правке сообщения файл, переданный с тем же
key, остаётся прежним вложением с тем жеidи названием. Размер файла можно не передавать: Пачка возьмёт его из хранилища. - Метод GETСкачивание файла отдаёт любое вложение, которое видно токену: защищённое — запросу из безопасного контура, остальные — всегда, кроме файла, в котором антивирус нашёл вирус. Запрос
HEADна тот же адрес отдаёт размер и имя файла без скачивания. Подробнее — в разделе Ссылка на скачивание. - Событие
updateо сообщении приходит и без правки, например когда сообщение добавили в «Важное». Подробнее — в разделе Сообщения. - Чат, сообщение, тред, файл и экспорт другого пространства отвечают
404, как несуществующие. - Курсор, который метод не может прочитать, отвечает
400с кодомinvalid. Подробнее — в разделе Пагинация. - Эмодзи статуса в текстовой форме принимается и возвращается с U+FE0F.
- Ошибка, не привязанная к полю, приходит с
systemвkey, а ошибки параметров — с именем поля и кодомrequired,blank,in,min_length,max_lengthилиinvalid. Отказ в правах на разворачивание ссылок приходит как400с кодомforbidden. - В журнале аудита отзыв токенов при переводе в гости отмечен
reason: guest_downgrade, аlimitв деталях поиска через API — запрошенный размер страницы. - Сообщения, отправленные после входа в CLI через браузер, помечены подсказкой «Отправлено через «Pachca CLI»».
- SDK, CLI и n8n повторяют ошибки
500,502,503и504только у запросов GET, PUT и DELETE, а ответ504с кодомtimeoutвозвращают сразу, без повторов. Подробнее — в разделе Повторные запросы. - SDK отдаёт ответ с ошибкой без тела или не в JSON обычной ошибкой
ApiError, а у каждойApiErrorпоявился код статуса ответа. Подробнее — в разделе Обработка ошибок. - Команда
pachca auth logoutзакрывает вход через браузер на сервере и тогда, когда сохранённый токен уже истёк. Подробнее — в разделе Выход.
Были обновлены следующие методы: PUTРедактирование сотрудника, POSTНовый чат, POSTНовый тег, PUTРедактирование тега, POSTНовый бот, PUTРедактирование бота, POSTРотация токена бота, POSTРотация секрета клиента, PUTСаморегистрация вебхука бота, POSTНовый самостоятельный тред, POSTЭкспорт сообщений, POSTНовое сообщение, PUTРедактирование сообщения, GETСкачивание файла, PUTНовый свой статус, PUTНовый статус сотрудника, GETЖурнал аудита событий, GETИстория событий.
Important Message: новый ресурс — операции Get Many, Create и Delete для раздела «Важное»Bot: операция Get Stream отдаёт ссылку на поток событий ботаUser: в операции Update роль Guest вместе с полем Chat IDs переводит сотрудника в гостиChat: операция Create отдаёт в not_found_group_tag_ids идентификаторы из Group Tag IDs, которых нет среди тегов пространстваimportant: сообщение в разделе «Важное» владельца токена500, 502, 503 и 504 у запросов GET, PUT и DELETE, а ответ 504 с кодом timeout (поиск не уложился по времени) сразу возвращается ошибкойpachca guide убрана вместе со сценариями: как решать задачи в Пачке, агенту рассказывают скиллы, а флаги каждой команды показывает pachca <команда> --help--help команд убран блок примеров со сценариямиpachca api ls и справка pachca api <МЕТОД> <путь> с флагами --describe, --spec и --docs работают без входа и без токена: они читают встроенную спецификацию и в API не обращаютсяpachca important-messages list, important-messages create и important-messages delete — раздел «Важное» владельца токена: список отмеченных сообщений, добавление и удалениеpachca bots get-stream — ссылка на поток событий ботаpachca users update: значение guest у --role вместе с флагом --chat-ids переводит сотрудника в гостиpachca chats create предупреждает в stderr об идентификаторах из --group-tag-ids, которых нет среди тегов пространстваimportant: сообщение в разделе «Важное» владельца токенаpachca auth logout — после входа через браузер закрывает вход на сервере и при истёкшем токене: сначала обновляет его, потом отзывает свежийpachca auth logout: token_revoked: true значит, что вход на сервере закрыт, в том числе если его закрыли раньше, а при false закрыть вход не удалось, и его нужно отозвать в списке «Токены CLI»500, 502, 503, 504 и сетевую ошибку CLI повторяет до трёх раз только у запросов GET, PUT и DELETE, POST и PATCH после них не повторяются, а 504 с кодом timeout (поиск не уложился по времени) приходит ошибкой сразуpachca skill …--no-retry уточнено: он отключает повторы после 429, 5xx и сетевой ошибкиlimit в деталях поиска через API (AuditDetailsSearch) стало nullable: null, когда в запросе не было limit401 без тела в формате OAuth приходит ошибкой ApiError с кодом 401, а ответ в формате OAuth приходит OAuthError, как и раньшеApiError с кодом статуса и пустым списком ошибок: так отвечает метод Поток событий (GET /webhooks/events/stream) кодом 404, когда история событий выключена, и прокси страницей при 5025xx SDK повторяет только у запросов GET, PUT и DELETE, а запрос POST сразу приходит ошибкой: сервер мог успеть его выполнить, и повтор создал бы дубль, например отправил бы сообщение второй раз504 с кодом timeout (поиск или GET /users с query не уложился по времени) сразу приходит ошибкой ApiError, без повторов: тот же запрос, скорее всего, снова не уложится, и его стоит сузитьApiError есть код статуса ответа: status в TypeScript, status_code в Python, StatusCode в Go и C#, statusCode в Kotlin и SwiftСписок важных сообщений (GET /important_messages), Добавление сообщения в важные (POST /important_messages) и Удаление сообщения из важных (DELETE /important_messages/{id}), значения important_messages:read и important_messages:write в OAuthScopeimportant в модели Message: сообщение в разделе «Важное» владельца токенаПоток событий (GET /webhooks/events/stream) и модель WebhookEventsStreamguest в UserRoleInput и поле chat_ids в запросе Редактирование сотрудника (PUT /users/{id}): перевод сотрудника в гостиnot_found_group_tag_ids в meta ответа Новый чат (POST /chats): идентификаторы из group_tag_ids, которых нет среди тегов пространстваreason в деталях токена журнала аудита (AuditDetailsToken): guest_downgrade, когда токен отозван при переводе сотрудника в гости5xx сгенерированный клиент повторяет только у идемпотентных методов GET, HEAD, OPTIONS, PUT и DELETE, а у POST и PATCH сразу возвращает ошибку: сервер мог успеть выполнить запрос, и повтор создал бы дубль504 с кодом ошибки timeout сгенерированный клиент возвращает сразу, без повторов, а 504 без этого кода, например от прокси, повторяет, как другие 5xxApiError есть код статуса ответа: status в TypeScript, status_code в Python, StatusCode в Go и C#, statusCode в Kotlin и Swift404 без тела, страница прокси при 502) сгенерированный клиент превращает в ApiError с кодом статуса и пустым списком ошибокApiError, и OAuthError, класс ошибки ответа 401 тоже выбирает тело: форма OAuth даёт OAuthError, а ответ без неё даёт ApiError с кодом 401