UNPKG

@inso_web/els-mcp

Version:

MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.

321 lines (202 loc) 13.1 kB
# Справочник инструментов 🇬🇧 **English version**: [`TOOLS.md`](./TOOLS.md) Полный справочник по 18 read-only инструментам, которые предоставляет `@inso_web/els-mcp`. Для каждого — назначение, основные параметры и **примеры промптов**, которые можно дать AI-агенту (Claude Code, Cursor, Windsurf, ChatGPT и др.), чтобы он естественно вызвал нужный инструмент. Все инструменты требуют API-ключ с правом `errors:mcp-read`. У `list_apps` дополнительное требование — master-key (для обычных ключей работает graceful fallback). ## Содержание - [Поиск и детали](#поиск-и-детали) - [`search_logs`](#search_logs) - [`get_log_details`](#get_log_details) - [`query_logs_jql`](#query_logs_jql) - [`errors_in_session`](#errors_in_session) - [Аналитика и тренды](#аналитика-и-тренды) - [`top_error_messages`](#top_error_messages) - [`error_histogram`](#error_histogram) - [`error_heatmap`](#error_heatmap) - [`traffic_stats`](#traffic_stats) - [`error_stats_breakdown`](#error_stats_breakdown) - [Группировка и корреляции](#группировка-и-корреляции) - [`find_similar_errors`](#find_similar_errors) - [`find_correlated_errors`](#find_correlated_errors) - [`grouped_errors`](#grouped_errors) - [Impact и регрессии](#impact-и-регрессии) - [`impact_analysis`](#impact_analysis) - [`baseline_compare`](#baseline_compare) - [`version_regression`](#version_regression) - [Триаж и AI](#триаж-и-ai) - [`triage_recent_critical`](#triage_recent_critical) - [`explain_error`](#explain_error) - [`list_apps`](#list_apps) --- ## Поиск и детали ### `search_logs` **Назначение**: Faceted-поиск по логам с полной поддержкой фильтров. Возвращает hits + facets (level, browser, urlPath и т. д.) + гистограмму одним вызовом. **Основные параметры**: `appSlug`, `from`, `to`, `level`, `serviceName`, `appVersion`, `urlPath`, `fingerprint`, `sessionId`, `search`, `response_format`, `limit`, `cursor`. **Примеры промптов**: - «Покажи последние 20 критических ошибок в production за последний час.» - «Найди WARNING-логи `auth-service` где URL содержит `/login`, последние 24 часа.» - «Список ошибок с appVersion `2.4.1` и serviceName `billing`.» --- ### `get_log_details` **Назначение**: Полные детали одной записи лога по `traceId` — stack trace, headers, контекст запроса, AI diagnosis если доступен. **Основные параметры**: `appSlug`, `traceId`. **Примеры промптов**: - «Покажи полные детали для traceId `abc-123-def-456`- «Достань весь stack и контекст для trace `xyz789`.» --- ### `query_logs_jql` **Назначение**: Поиск через JQL (JIRA-like Query Language). Поддерживает `AND`, `OR`, `NOT`, операторы сравнения и `IN` по whitelist-полям. **Основные параметры**: `appSlug`, `jql`, `from`, `to`, `limit`, `cursor`, `response_format`. **Примеры промптов**: - «Выполни JQL `level IN (ERROR, CRITICAL) AND serviceName = \"api-gateway\" AND NOT urlPath ~ \"/health\"` за последние 6 часов.» - «Через JQL найди ERROR-ошибки где browser = Safari и appVersion ≥ `3.0.0`- «Покажи пример JQL-запроса, который фильтрует по fingerprint и выводит только сообщения.» --- ### `errors_in_session` **Назначение**: Восстановление полной хронологии ошибок одной пользовательской сессии — для понимания причинно-следственной цепочки в рамках действий конкретного юзера. **Основные параметры**: `appSlug`, `sessionId`, `response_format`. **Примеры промптов**: - «Какие ошибки словил сессия `sess_abc`? Покажи по порядку.» - «Восстанови timeline сбоя для sessionId `01HX9Y…` — нужно понять что переживал пользователь.» --- ## Аналитика и тренды ### `top_error_messages` **Назначение**: Топ-N сообщений об ошибках по частоте (deduped по нормализованному message). **Основные параметры**: `appSlug`, `from`, `to`, `limit`, `level`, `serviceName`. **Примеры промптов**: - «Какие были топ-10 сообщений об ошибках на прошлой неделе?» - «Топ-25 ошибок для `payment-service` за 24 часа, только ERROR и CRITICAL.» --- ### `error_histogram` **Назначение**: Time-series гистограмма count'а ошибок с автоматическим выбором бакетов (`5m` / `30m` / `1h` / `1d`) в зависимости от окна. **Основные параметры**: `appSlug`, `from`, `to`, `level`, `serviceName`, `bucket` (auto по умолчанию). **Примеры промптов**: - «Построй гистограмму error rate за последние 7 дней, часовые бакеты.» - «Гистограмма CRITICAL ошибок для `lk` за последние 30 минут.» --- ### `error_heatmap` **Назначение**: Heatmap «день недели × час». Показывает когда обычно случаются ошибки. **Основные параметры**: `appSlug`, `from`, `to`, `level`. **Примеры промптов**: - «Heatmap ошибок за последние 30 дней — когда мы наиболее уязвимы?» - «Покажи heatmap по дням-часам для `payment-service`, только ERROR, последние 14 дней.» --- ### `traffic_stats` **Назначение**: Request rate (RPM) и percentile-латентность (p50, p95, p99) по сервису. **Основные параметры**: `appSlug`, `from`, `to`, `serviceName`. **Примеры промптов**: - «Покажи RPM и латентность p95/p99 для `api-gateway` за последний час.» - «Сравни traffic и latency `billing` и `payment` за последние 24 часа.» --- ### `error_stats_breakdown` **Назначение**: Статистическая разбивка ошибок по произвольному полю (browser, appVersion, deploymentEnv и т. д.). Возвращает counts и shares. **Основные параметры**: `appSlug`, `from`, `to`, `dimension`, `level`. **Примеры промптов**: - «Разбей ошибки по browser за 7 дней — какая доля мобильных?» - «Распределение ошибок по `appVersion` за 24 часа.» - «Stats по deploymentEnv за неделю.» --- ## Группировка и корреляции ### `find_similar_errors` **Назначение**: Агрегаты вокруг указанной ошибки (по fingerprint): `totalOccurrences`, счётчики lastHour / 24h / 7d, топ URL и IP, client/server split. **Основные параметры**: `appSlug`, `traceId`. **Примеры промптов**: - «Насколько распространена ошибка traceId `abc-123`? Покажи hour / 24h / 7d.» - «Найди похожие ошибки на `xyz789` — сколько юзеров словили, на каких URL?» --- ### `find_correlated_errors` **Назначение**: Ошибки, случившиеся в ±N минут вокруг указанного traceId — для диагностики каскадных сбоев. **Основные параметры**: `appSlug`, `traceId`, `windowMinutes` (default 5). **Примеры промптов**: - «Что ещё сломалось в 5 минутах вокруг traceId `abc-123`?» - «Покажи ошибки коррелирующие с `xyz789` в окне ±15 минут — кажется тут каскад.» --- ### `grouped_errors` **Назначение**: Группировка ошибок по fingerprint — список уникальных сигнатур с counts. **Основные параметры**: `appSlug`, `from`, `to`, `limit`, `level`, `serviceName`. **Примеры промптов**: - «Сгруппируй ошибки за 24 часа по fingerprint — сколько уникальных проблем?» - «Топ-15 уникальных fingerprint за неделю.» --- ## Impact и регрессии ### `impact_analysis` **Назначение**: Severity scoring ошибки — сколько юзеров, сессий, URL затронуто, с учётом URL-weight. **Основные параметры**: `appSlug`, `traceId` или `fingerprint`, `from`, `to`. **Примеры промптов**: - «Насколько серьёзна ошибка traceId `abc-123`? Посчитай impact.» - «Отранжируй impact топ-10 fingerprint за неделю — что чинить первым?» --- ### `baseline_compare` **Назначение**: Сравнение текущего окна с baseline-периодом. Детектит регрессии (рост error count, рост error rate, рост latency). **Основные параметры**: `appSlug`, `from`, `to`, `baselineFrom`, `baselineTo`. **Примеры промптов**: - «Сравни сегодняшние ошибки с тем же временем вчера — что регрессировало?» - «Baseline-сравнение последнего часа против среднего за 24 часа.» --- ### `version_regression` **Назначение**: Per-version timeline counts ошибок. Видно какой релиз ввёл или починил какую проблему. **Основные параметры**: `appSlug`, `from`, `to`, `serviceName`. **Примеры промптов**: - «Какие ошибки появились в `v2.4.1` приложения `lk` и не было в `v2.4.0`?» - «Покажи version-by-version regression timeline для `payment-service` за 30 дней.» --- ## Триаж и AI ### `triage_recent_critical` **Назначение**: Композитный инструмент для быстрого триажа CRITICAL ошибок за последние N минут. Объединяет `search_logs` + `find_similar_errors` + `impact_analysis` в одну приоритизированную сводку. **Основные параметры**: `appSlug`, `minutesBack` (default 30). **Примеры промптов**: - «Сделай триаж CRITICAL за последние 30 минут — отдай ранжированный список.» - «Что сейчас горит в `lk`? Покажи топ критических с impact.» --- ### `explain_error` **Назначение**: Возвращает контекст ошибки (stack, headers, similar counts, correlated traces), чтобы LLM мог сам синтезировать объяснение причины. Полноценный AI-summary запланирован на следующие релизы — сейчас LLM-клиент делает синтез сам. **Основные параметры**: `appSlug`, `traceId`. **Примеры промптов**: - «Объясни ошибку traceId `abc-123` — что могло быть причиной?» - «Пройдись по сбою `xyz789` и предложи фикс.» --- ### `list_apps` **Назначение**: Список приложений (tenants), к которым текущий API-ключ имеет доступ. Master-keys видят все приложения; обычные ключи получают `[{ slug: '(current-app)' }]` как graceful fallback. **Основные параметры**: нет. **Примеры промптов**: - «Какие приложения я могу запрашивать?» - «Список доступных appSlug для моего ключа.»