Пейджер

🌍 Добрай раніцы! 👋🏻

TL;DR
  • Sentry MCP обрезает HTTP body, headers и breadcrumbs
  • Sentry CLI возвращает полный event JSON через bash
  • 80+ breadcrumbs, логи и контекст окружения
🌍 Добрай раніцы! 👋🏻

Как вы знаете, я усиленно готовлюсь к HolyJS , и работаю над тем, чтобы улучшить процесс автоматического исправления инцидентов, в моем случае инциденты это issue зафиксированные системой мониторинга Sentry.

У меня был подключен официальный Sentry MCP, я радовался, так как это был быстрый способ получения информации об инциденте, агент дергал get_issue_details, получал данные и дальше уже с ними работал.
И сначала результаты были где-то положительные, где-то отрицательные, но в общем и целом, все было хорошо.
А потом работая над одним из тикетов, я понял что решение которое предлагает агент, сильно отличается от корректного, я стал выяснять, и каково было мое удивление 😕, когда в исходниках Sentry MCP я нашел ответ...

🤷‍♀️ В чём проблема использования MCP?

MCP (Model Context Protocol) это способ подключать внешние сервисы к AI-агентам. У Sentry есть официальный MCP сервер, и на первый взгляд всё окей — тулы работают, данные приходят, контекст для агента есть.

Но когда я полез в исходники @sentry/mcp-server, обнаружил, что есть функция formatRequestInterfaceOutput которая формирует данные о HTTP request из event:

function formatRequestInterfaceOutput(event, data) {
    if (!data.method || !data.url) return "";
    return `**Method:** ${data.method}\n**URL:** ${data.url}\n\n`;
}


Все обрезается и остается только method и URL. Request body, headers, cookies — всё выбрасывается 🗑.

✏️ Что не отдает MCP, а по моему мнению для дебага было бы очень полезно:

Request body — (а там всякие ids, фильтры и так далее)
Request headers — (user, auth context)
Breadcrumbs — (а это цепочка HTTP вызовов и console логов ДО ошибки)
Console logs

Без этих данных агент будет двигаться по наитию, и очень уверенно рассказывать вам дорогу =)

🪛 Решение — Sentry CLI вместо MCP

У Sentry есть официальный CLI современная тулза на Bun (кстати лично я еще ни разу не использовал bun, нужно это исправить), cli как раз заточена под разработчиков и AI-агентов. И вот через этот пакет мы действительно можем получить всю информацию.

Вместо MCP агент отправляет CLI команды:

➡️ sentry issue view <org>/<project>/<id> — обзор issue: status, tags, частота, latest event ID
➡️ sentry event view <org>/<project> <event_id> --json — полный event JSON со stacktrace, breadcrumbs, request body, headers — вообще всё что есть в Sentry API
➡️ sentry api issues/{id}/events/ — все events для поиска паттернов и дупликатов

🔖 Разница на реальном примере:

MCP вернул:
"Error: workflowStateId must be defined, POST /api/pipelines/move, stacktrace, 2 occurrences"


CLI вернул то же самое ПЛЮС:
➡️ Request body — конкретные candidateId, jobId, entryPoint
➡️ 80+ breadcrumbs — цепочка HTTP вызовов к ElasticSearch, ClickHouse, Sentry
➡️ Console logs — предыдущие ошибки в том же процессе
➡️ Headers — user groups, auth context
➡️ Extra context — node v20.19.2, 8GB RAM, AWS server

Агент, работая с CLI, имеет возможность корректно идентифицировать root cause проблемы и создать решение.

✏️ Как я настроил в AI-агенте

Почти все AI coding tools поддерживают rules/instructions файлы:

➡️ Claude CodeCLAUDE.md
➡️ Cursor — .cursor/rules
➡️ Windsurf — .windsurfrules
➡️ Copilot — .github/copilot-instructions.md

Просто описал инструкцию в rules файле, а-ля:
"Когда исследуешь Sentry issues, используй CLI вместо MCP. Вот команды: ..."


И всё. Агент будет использовать CLI и получать полные данные. CLI — это просто bash команда, а bash доступен в любом AI coding tool.

💡 Этот подход работает не только для Sentry. Jira CLI тоже быстрее и информативнее чем Jira MCP. Принцип один — если CLI отдаёт больше данных за один вызов, используйте CLI.

💬 Делитесь своим мнением в комментариях👇! Если вам понравился пост, не забудьте поставить лайк! 👍

#AI
Медиа 1
Хотите больше таких постов?
Подпишитесь на канал и читайте продолжение в Telegram.
Подписаться на @ivanchikovitclub Открыть пост в Telegram