История запусков и логи через MCP
Инструменты botcraft-builder используют API работающего приложения и его проверки доступа. Для удалённого MCP нужна авторизация Bearer PAT; для stdio — MCP_AGENT_TOKEN. Это чтение сохранённых логов, а не управление сроком хранения и не архив S3.
История запусков
db_list_bot_launches принимает token_id из db_list_bot_tokens, limit (по умолчанию 10, максимум 100) и необязательный before_id.
{"token_id":301,"limit":10}
Ответ содержит total — количество запусков в странице, launches, has_more и next_before_id. У запуска есть id, status, startedAt, stoppedAt, errorMessage, processId. Для следующей страницы передайте next_before_id в before_id. Это не общее количество запусков за всё время.
Существующий db_bot_launch_history остаётся доступен для совместимости.
Логи конкретного запуска
db_get_launch_logs принимает launch_id из истории, limit (по умолчанию 100, максимум 500) и необязательный before_id.
{"launch_id":3596,"limit":100}
Ответ содержит total, logs, has_more, next_before_id. Поля строки: id, launchId, content, type, timestamp. Выбираются последние строки страницы, возвращаются в хронологическом порядке. Следующая страница загружает более ранние ID. Существующий запуск без сохранённых строк возвращает пустой список; отсутствие запуска и отсутствие прав — ошибки.
Поиск по периоду
db_search_bot_logs выбирает строки заданного бота в диапазоне времени и фильтрует по тексту и типу вывода. Начало диапазона включительно, окончание исключительно; даты должны содержать часовой пояс, например 2026-10-11T01:00:00+03:00 или 2026-10-10T22:00:00Z.
Обязательны project_id, token_id, from, to. Необязательны text (до 500 символов), type, limit (по умолчанию 100, максимум 1000), before_id.
{"project_id":289,"token_id":301,"from":"2026-10-11T00:00:00+03:00","to":"2026-10-12T00:00:00+03:00","text":"connection was closed","type":"stderr","limit":100}
Ответ содержит logs, count, scanned, hasMore, nextBeforeId, order, retentionLimited. Для продолжения передайте nextBeforeId в before_id, сохранив границы и фильтры.
Поиск текста — подстрока без учёта регистра. Тип вывода — stdout, stderr или status; это не вычисленный уровень INFO/ERROR в интерфейсе.
Один вызов просматривает не более 1000 исходных строк. Поэтому пустая страница совпадений ещё не означает конец истории: проверяйте hasMore и курсор nextBeforeId. Курсор относится к просмотренным строкам, включая строки без совпадений. Порядок поиска — по убыванию ID.
Экспорт
db_export_bot_logs использует те же границы времени и фильтры, сохраняет результат в txt либо jsonl (по умолчанию). Экспорт ограничен количеством совпавших строк (по умолчанию 1000, максимум 5000), просмотром 10 000 исходных строк и размером 10 МиБ.
Вместо limit используется max_rows; остальные параметры совпадают с поиском.
{"project_id":289,"token_id":301,"from":"2026-10-11T00:00:00+03:00","to":"2026-10-12T00:00:00+03:00","format":"jsonl","max_rows":1000}
Ответ содержит путь path, формат, число строк и байтов, количество просмотренных строк, признак truncated и курсор продолжения. При усечении используйте курсор для отдельного следующего экспорта: один файл не гарантирует полноту большого периода.
Файлы создаются в фиксированной временной папке с автоматически выбранным именем. Произвольный путь записи не принимается. path — локальный путь на машине, где работает MCP, а не ссылка скачивания. Экспорт доступен только через stdio с включёнными файловыми инструментами (enableFileTools: true); удалённый HTTP MCP предоставляет только три инструмента чтения и поиска.
Ограничения и безопасность
- Доступ ограничен правами PAT на проект. Чтение истории и логов не запускает и не останавливает бота.
- Возвращаются только разрешённые поля записей; реквизиты токена и заголовок авторизации не добавляются в ответы.
- Содержимое
content— исходный текст бота: он может включать личные данные или секреты, если сам бот вывел их. Не публикуйте экспорт без проверки. - Очистка по сроку хранения и лимитам уже могла удалить строки. Поиск и экспорт не восстанавливают удалённую историю;
retentionLimited: trueсообщает об этом ограничении. - Для текущего запуска по-прежнему доступен
db_bot_logs. Для изоляции конкретного старого запуска используйте егоlaunch_id.
REST API
| MCP | API |
|---|---|
db_list_bot_launches | GET /api/tokens/:tokenId/launch-history |
db_get_launch_logs | GET /api/launch/:launchId/logs |
db_search_bot_logs, db_export_bot_logs | GET /api/projects/:projectId/tokens/:tokenId/logs с from, to, limit, beforeId |
Общее руководство: mcp/bot-builder. План архива S3: roadmaps/bot-logs-s3.