Skip to main content
Glama
AryanBansal-launch

observer-launch-mcp

observer-launch-mcp

Задавайте Клоду вопросы о ваших данных Observe — недавние ошибки, частые сбои, объем логов по подам — не написав OPAL вручную. Это MCP-сервер, который дает Клоду прямой живой доступ к вашему тенанту Observe.

Настройка (2 шага)

1. Запустите мастер настройки. Он запрашивает ваши учетные данные Observe и алиасы наборов данных, затем автоматически регистрирует себя в Claude Code:

npx @aryanbansal-launch/observer-launch-mcp init

Вас попросят указать:

  • Observe customer ID — число, находится в вашем URL Observe.

  • Observe API key — создайте его в Manage account → My API tokens. (Не токен ingest/datastream — они выглядят похоже, но здесь не работают.)

  • Cluster — например, eu-1. Оставьте пустым, если вы на стандартном US-тенанте.

  • Алиасы наборов данных (необязательно) — удобные имена для наборов данных, о которых вы часто спрашиваете, например, launch-management41249178. Найдите ID в интерфейсе Observe: откройте набор данных, он в URL. Можно пропустить это и использовать сырые ID наборов данных, или добавить алиасы позже.

2. Перезапустите Claude Code (или начните новую сессию), чтобы он подхватил новый сервер. Подтвердите, что всё работает:

Is the Observe connection working?

Вот и всё — остальные инструменты ниже теперь доступны в чате.

claude mcp add observe -s user \
  -e OBSERVE_CUSTOMER_ID=<your id> \
  -e OBSERVE_API_KEY=<your token> \
  -e OBSERVE_CLUSTER=eu-1 \
  -e OBSERVE_DATASETS='{"launch-management":"41249178"}' \
  -- node <path to installed server.js>

Сначала запустите npx @aryanbansal-launch/observer-launch-mcp init, если вам нужен абсолютный путь — он выводит точную команду, которую выполнит, прямо перед её запуском. Используйте прямую команду node <path>, а не npx <package> в качестве финальной записи — Claude Code запускает зарегистрированные серверы с пустым окружением (без PATH), и собственный shebang npx требует PATH для поиска node, поэтому npx-как-команда молча показывает "Failed to connect." Мастер уже избегает этого за вас.

Related MCP server: Fathom AI MCP Server

Что можно спросить

После настройки просто общайтесь с Клодом естественно:

  • «Работает ли соединение с Observe?»

  • «Какие алиасы сервисов/наборов данных у меня настроены?»

  • «Покажи недавние ошибки из launch-management за последний час»

  • «Какая у нас самая частая ошибка в launch-nginx на этой неделе?»

  • «Какие поды сейчас больше всего логируют в launch-management-bg?»

  • «Сколько вывода stderr генерирует launch-nginx за последние 6 часов?»

  • «Подсчитай строки логов на под в launch-telemetry за последний час»

  • «Получи последние 20 сырых строк логов из launch-logs-bg-exporter»

Для всего, что не покрыто конкретной формой вопроса, просто опишите, что вам нужно — Клод напишет OPAL-конвейер с помощью общего инструмента запросов.

Справочник инструментов

Инструмент

Назначение

observe_health_check

«Работает ли соединение?»

list_known_services

«Какие наборы данных/алиасы у меня есть?»

get_service_errors

Недавние сырые ошибки для одного сервиса, сначала самые новые

get_error_summary

Топ повторяющихся ошибок по количеству — быстро даже за дни/недели

get_log_stats

Количество логов, сгруппированных по поду/узлу/контейнеру/потоку/namespace

run_opal_query

Всё остальное — произвольный OPAL-конвейер для любого набора данных

get_error_summary и get_log_stats агрегируют на стороне сервера, поэтому они остаются быстрыми независимо от временного окна. get_service_errors и run_opal_query добавят предупреждение, если вы запрашиваете окно 6 часов и более без агрегации, поскольку сырые выгрузки строк за широкое окно рискуют упереться в лимит Observe в 100k строк.

Форматы логов

Наборы данных в одном тенанте редко имеют общую схему логов, поэтому get_service_errors и get_error_summary определяют формат для каждого набора данных (один раз на процесс) и строят соответствующий запрос:

Формат

Выглядит как

Ошибки — это

level

{"level":"error","message":...,"context":...} — сервисы приложений

level в error/fatal/critical/panic/…

http

{"http.status":"500","http.method":...} — логи nginx/access

http.status 5xx (передайте minStatus=400 для 4xx тоже)

text

что угодно неструктурированное

сопоставление по ключевым словам в сырой строке

Каждый результат сообщает, какой формат был определен. Чтобы пропустить проверку, укажите его в конфигурации набора данных:

{ "launch-nginx": { "id": "41250854", "shape": "http" } }

Простые записи "alias": "id" по-прежнему работают и определяются автоматически.

Покрытие сообщается, а не скрывается. В наборах данных level некоторые строки не имеют разбираемого поля level (стек-трейс, голая строка, не-JSON вывод), и фильтр по серьезности не может их увидеть. Когда эта доля превышает 1%, инструменты сообщают об этом:

Note: 529 of 2136 rows (24.8%) have no parseable "level" field and were not
scanned. Pass includeUnparsed=true to keyword-match those too.

includeUnparsed=true выполняет поиск по ключевым словам в этих строках. Это опционально, потому что сопоставление по ключевым словам также помечает строки info, которые просто содержат слово "error".

Справочник конфигурации

Переменная

Обязательна

Описание

OBSERVE_CUSTOMER_ID

да

Ваш ID клиента Observe (числовой).

OBSERVE_API_KEY

да

Bearer-токен из Manage account → My API tokens (или токен сервисного аккаунта для долгосрочного использования).

OBSERVE_CLUSTER

нет

например, eu-1. Оставьте не заданным для стандартного (US) тенанта.

OBSERVE_BASE_URL

нет

Полное переопределение, если ваш тенант не следует шаблону {id}.{cluster}.observeinc.com.

OBSERVE_LOOKUP_TIMEOUT_SEC

нет

Таймаут запроса в секундах (по умолчанию 300).

OBSERVE_DATASETS

нет

Встроенное JSON-сопоставление алиаса → ID набора данных, например, {"logs":"41001999"}. Запись может быть {"id":"...","shape":"level|http|text"} для пропуска определения формата.

OBSERVE_DATASETS_FILE

нет

Путь к JSON-файлу с той же структурой, для больших конфигураций.

OBSERVE_MAX_RESPONSE_BYTES

нет

Лимит на один ответ инструмента (по умолчанию 200000). После него строки отбрасываются, и ответ сообщает об этом.

OBSERVE_KEEP_INTERNAL_COLS

нет

Установите 1, чтобы сохранить столбцы link_*, containerId и clusterUid, которые по умолчанию удаляются.

ID наборов данных специфичны для тенанта и намеренно не включены в этот пакет. Если ничего не настроено, поиск по алиасам не сработает, и вы можете передавать сырые числовые ID наборов данных напрямую любому инструменту.

Устранение неполадок

  • Проверка работоспособности не проходит → вероятно, ваш API-ключ — это токен ingest/datastream, а не из Manage account → My API tokens. Перегенерируйте его.

  • claude mcp list показывает "Failed to connect" для вручную зарегистрированной записи → проверьте, что команда — node <path>, а не npx <package> (см. примечание выше).

  • Инструмент возвращает "Unknown service/dataset" → запустите list_known_services, чтобы увидеть, что настроено, или передайте сырой числовой ID набора данных.

  • get_service_errors/get_error_summary не возвращают ничего полезного → проверьте примечание "Detected log format" в результате. Если формат определен неверно, укажите его явно с помощью {"alias": {"id": "...", "shape": "http"}} (см. Форматы логов). Если указано text, в ваших логах нет поля серьезности, и сопоставление основано на ключевых словах.

  • Ошибки, которые вы видите в интерфейсе Observe, отсутствуют в результатах → обратите внимание на примечание о покрытии. Строки без разбираемого level по умолчанию пропускаются; передайте includeUnparsed=true.

Вклад в проект

npm install
npm run build   # tsc, then chmod +x on the bin entry
npm publish      # only if you intend to ship a new version

Скопируйте шаблон get_error_summary/get_log_stats в src/run-server.ts для других повторяющихся OPAL-запросов (например, стоимость по сервисам, процентили задержки) — дайте инструменту описательное имя/описание, чтобы Клод выбирал его вместо run_opal_query, когда это уместно.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AryanBansal-launch/Observe-launch-mcp-draft'

If you have feedback or need assistance with the MCP directory API, please join our Discord server