Last9 MCP Server

официальный

Бесшовно переносите контекст реальной производственной среды — логи, метрики и трейсы — в ваше локальное окружение, чтобы быстрее автоматически исправлять код.

Документация

Last9 MCP Server

last9 mcp demo

Ваш ИИ-агент не знает, что сломалось в продакшене. Это исправляет ситуацию.

Last9 MCP Server подключает Claude, Cursor, Windsurf и любого другого ИИ-ассистента с поддержкой MCP напрямую к вашим производственным данным наблюдаемости — логам, метрикам, трассировкам, исключениям, запросам к базам данных, оповещениям и развертываниям. Агент перестает гадать и начинает считывать реальные сигналы.


Начало работы за 30 секунд (Облачное решение)

Никаких бинарников для установки. Никаких токенов для управления. Один URL, OAuth в вашем браузере — и готово.

Найдите ярлык вашей организации в вашем URL Last9: app.last9.io/<org_slug>/...

Claude Code

claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp

Введите /mcp, выберите last9, пройдите аутентификацию. Вот и всё.

Cursor

Settings > MCP > Add New MCP Server:

{
  "mcpServers": {
    "last9": {
      "type": "http",
      "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Нажмите Connect, завершите OAuth.

VS Code

Требуется версия 1.99+. Откройте Command Palette → MCP: Add Server, вставьте URL, пройдите аутентификацию.

Или напрямую в settings.json:

{
  "mcp": {
    "servers": {
      "last9": {
        "type": "http",
        "url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
      }
    }
  }
}

Windsurf

Settings > Cascade > Open MCP Marketplace > значок шестеренки (mcp_config.json):

{
  "mcpServers": {
    "last9": {
      "serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
    }
  }
}

Claude Web/Desktop

Settings > Connectors > Add custom connector. Назовите его last9, вставьте URL, пройдите аутентификацию.

Требуется административный доступ к вашей организации Claude.


Самостоятельное развертывание (STDIO)

Используйте этот способ, если ваш MCP-клиент не поддерживает транспорт HTTP или если вам нужен локально работающий сервер.

Установка

Homebrew:

brew install last9/tap/last9-mcp

NPM:

npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest

Бинарные релизы (Windows / ручная установка):

Скачайте с GitHub Releases:

ПлатформаАрхив
Windows (x64)last9-mcp-server_Windows_x86_64.zip
Windows (ARM64)last9-mcp-server_Windows_arm64.zip
Linux (x64)last9-mcp-server_Linux_x86_64.tar.gz
Linux (ARM64)last9-mcp-server_Linux_arm64.tar.gz
macOS (x64)last9-mcp-server_Darwin_x86_64.tar.gz
macOS (ARM64)last9-mcp-server_Darwin_arm64.tar.gz

Получение Refresh Token

Только администраторы могут создавать токены.

  1. Перейдите в API Access
  2. Нажмите Generate Token с правами на запись
  3. Скопируйте его

Конфигурация клиента

Homebrew:

{
  "mcpServers": {
    "last9": {
      "command": "/opt/homebrew/bin/last9-mcp",
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

NPM:

{
  "mcpServers": {
    "last9": {
      "command": "npx",
      "args": ["-y", "@last9/mcp-server@latest"],
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

Куда это вставить:

КлиентРасположение
Claude Web/DesktopSettings > Developer > Edit Config (claude_desktop_config.json)
CursorSettings > Cursor Settings > MCP > Add New Global MCP Server
WindsurfSettings > Cascade > MCP Marketplace > значок шестеренки (mcp_config.json)
VS CodeОберните в { "mcp": { "servers": { ... } } } в settings.jsonподробнее
Конфигурация VS Code STDIO
{
  "mcp": {
    "servers": {
      "last9": {
        "type": "stdio",
        "command": "/opt/homebrew/bin/last9-mcp",
        "env": {
          "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
        }
      }
    }
  }
}

Для NPM: используйте "command": "npx" и добавьте "args": ["-y", "@last9/mcp-server@latest"].

Windows

После скачивания с GitHub Releases распакуйте архив и укажите полный путь:

{
  "mcpServers": {
    "last9": {
      "command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
      "env": {
        "LAST9_REFRESH_TOKEN": "<your_refresh_token>"
      }
    }
  }
}

Путь через NPM проще в Windows — не нужно управлять путями.

Переменные окружения

ПеременнаяПо умолчаниюОписание
LAST9_REFRESH_TOKEN(обязательно)Refresh token из API Access
LAST9_DATASOURCEпо умолчанию для организацииИмя источника данных/кластера — полезно, если у вас несколько кластеров Levitate
LAST9_API_HOSTapp.last9.ioПереопределить хост API
LAST9_MAX_GET_LOGS_ENTRIES5000Максимальное количество записей для фрагментированных запросов get_logs
LAST9_DEBUG_CHUNKINGfalseУстановите true, чтобы логировать детали планирования фрагментов для get_logs, get_service_logs, get_traces
LAST9_DISABLE_TELEMETRYtrueУстановите false, чтобы включить внутреннюю трассировку OTel
OTEL_SDK_DISABLEDСтандартная переменная окружения OTel. Переопределяет LAST9_DISABLE_TELEMETRY
OTEL_EXPORTER_OTLP_ENDPOINTЭндпоинт коллектора OTLP (только если телеметрия включена)
OTEL_EXPORTER_OTLP_HEADERSЗаголовки аутентификации OTLP (только если телеметрия включена)

Что он умеет

Состояние сервисов

  • get_service_summary — Пропускная способность, частота ошибок, p95 время отклика по всем сервисам
  • get_service_environments — Доступные окружения для ваших сервисов. Запустите это первым — другим инструментам APM нужен env отсюда
  • get_service_performance_details — Полная разбивка: пропускная способность, частота ошибок, p50/p90/p95/среднее/макс, apdex, доступность
  • get_service_operations_summary — Операции, сгруппированные по HTTP-эндпоинтам, вызовам БД, обмену сообщениями, HTTP-клиентам
  • get_service_dependency_graph — Карта зависимостей с пропускной способностью, задержкой и частотой ошибок для upstream/downstream/инфраструктуры
  • get_exceptions — Серверные исключения с фильтрами по сервису и спанам

Наблюдаемость баз данных

Четыре инструмента, которые напрямую работают с производительностью вашей базы данных, извлекая данные из спанов трассировки OpenTelemetry. Дополнительная инструментация не требуется, если вы уже используете OTel.

  • get_databases — Обнаружение всех баз данных в вашей инфраструктуре: тип БД, хост, пропускная способность (запросов/мин), p95 задержка, частота ошибок, количество зависимых сервисов
  • get_database_slow_queries — Фактически самые медленные выполнения запросов, упорядоченные по длительности, с идентификаторами трассировки для детального изучения полных трассировок
  • get_database_queries — Шаблоны запросов и агрегаты: как часто выполняется запрос, средняя/p95 длительность, частота ошибок
  • get_database_server_metrics — Серверные метрики с самого хоста БД (ЦП, соединения, частота попаданий в буфер — зависит от вашей СУБД)

Поддерживает PostgreSQL, MySQL, MongoDB, Redis, Aerospike и любые другие системы, передающие OTel трассировки с атрибутом db_system.

Prometheus / PromQL

  • prometheus_range_query — Запросы диапазона PromQL по любой метрике
  • prometheus_instant_query — Мгновенные запросы; используйте функции свертки, такие как avg_over_time, sum_over_time
  • prometheus_label_values — Значения меток для заданного ряда
  • prometheus_labels — Все метки, доступные для ряда

Направьте их на другой источник данных/кластер, отличный от используемого по умолчанию, установив LAST9_DATASOURCE.

Логи

  • get_logs — Полные JSON-запросы к конвейеру логов (агрегации, фильтры, извлечение полей)
  • get_service_logs — Необработанные строки логов для сервиса, с возможностью фильтрации по серьезности и содержимому тела
  • get_log_attributes — Глобальный каталог атрибутов в схеме логов за временной интервал
  • get_log_attributes_for_pipeline — Поля логов, фактически присутствующие для выполняющегося конвейера (ограниченное обнаружение), каждое с точным filter_field
  • get_drop_rules — Правила отбрасывания логов из Last9 Control Plane
  • add_drop_rule — Создать новое правило отбрасывания для сокращения объема логов на источнике

Трассировки

  • get_traces — JSON-запросы к конвейеру трассировок для широкого поиска и агрегаций
  • get_service_traces — Трассировки по точному идентификатору трассировки или имени сервиса. Используйте это, когда у вас есть идентификатор трассировки — это быстрее
  • get_trace_attributes — Глобальный каталог атрибутов в схеме трассировок
  • get_trace_attributes_for_pipeline — Атрибуты, фактически присутствующие для выполняющегося конвейера (ограниченное обнаружение), каждый с точным filter_field
  • get_trace_attribute_values — Уникальные значения для атрибута трассировки, опционально ограниченные конвейером

События изменений и оповещения

  • get_change_events — Развертывания, изменения конфигурации, откаты. Сопоставляйте инциденты с тем, что изменилось
  • get_alert_config — Конфигурации правил оповещения — с возможностью поиска по имени, серьезности, типу, тегам
  • get_alerts — Текущие активные оповещения за временной интервал
  • get_alert_rule_state — Историческое состояние срабатывания (1/0) для каждого правила оповещения за временной диапазон, сгруппированное по rule_id. Фильтруется по группе оповещений, имени правила, фильтрам меток и состоянию.
  • get_notification_channels — Настроенные каналы уведомлений (Slack, PagerDuty, email и т.д.)

Пользовательские дашборды

  • list_dashboards — Все пользовательские дашборды в вашей организации: идентификаторы, имена и метаданные
  • get_dashboard — Полное определение дашборда по идентификатору, включая панели и запросы
  • create_dashboard — Создать новый пользовательский дашборд с панелями, запросами и метаданными
  • update_dashboard — Обновить существующий дашборд по идентификатору (системные дашборды только для чтения вернут ошибку)
  • delete_dashboard — Удалить пользовательский дашборд по идентификатору

Нечеткое разрешение имен

  • did_you_mean — Когда агент не уверен в имени сущности, этот инструмент возвращает ближайшие совпадения из вашего каталога (сервисы, окружения, хосты, базы данных, развертывания/пространства имен K8s, задания). До 3 предложений с оценками сходства. Сервер вызывает это автоматически перед большинством инструментов, когда поиск по имени возвращает пустой результат.

Как это работает

Прямые ссылки в каждом ответе. Каждый инструмент возвращает поле deep_link — прямой URL в дашборд Last9 для этого конкретного запроса и временного диапазона. Агент может передать вам ссылку; вы нажимаете на нее; вы на месте.

Живое кэширование атрибутов. При запуске сервер извлекает фактические имена атрибутов логов и трассировок из ваших данных и встраивает их в описания инструментов. Это означает, что ИИ-ассистент знает, какие поля существуют в вашей схеме, а не просто общий список. Кэш обновляется каждые 2 часа.

Фрагментированные большие результаты. get_logs и get_traces обрабатывают большие наборы результатов путем фрагментации, а не усечения. Лимит по умолчанию составляет 5000 записей для логов; настраивается через LAST9_MAX_GET_LOGS_ENTRIES.


Разработка

Режим HTTP, тестирование curl, сборка из исходников

Запуск в режиме HTTP

export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server

Сервер запускается на http://localhost:8080/mcp.

Тестирование с помощью curl

MCP Streamable HTTP требует сначала рукопожатия инициализации. Не устанавливайте Mcp-Session-Id при первом запросе.

# Step 1: Initialize
SESSION_ID=$(curl -si -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "initialize",
      "params": {
        "protocolVersion": "2024-11-05",
        "capabilities": {},
        "clientInfo": {"name": "curl-test", "version": "1.0"}
      }
    }' | grep -i "^Mcp-Session-Id:" | awk '{print $2}' | tr -d '\r')
echo "Session: $SESSION_ID"

# Step 2: Send initialized notification
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Mcp-Session-Id: $SESSION_ID" \
    -d '{"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}'

# Step 3: List tools
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Mcp-Session-Id: $SESSION_ID" \
    -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}'

# Step 4: Call a tool
curl -s -X POST http://localhost:8080/mcp \
    -H "Content-Type: application/json" \
    -H "Mcp-Session-Id: $SESSION_ID" \
    -d '{
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "get_service_logs",
        "arguments": {
          "service": "your-service-name",
          "lookback_minutes": 30,
          "limit": 10
        }
      }
    }'

Сборка из исходников

git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server

LAST9_HTTP=true предназначен для локальной разработки. Для реального использования проще размещенная конечная точка HTTP.


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

Все параметры, стандарты ввода времени и детали

Ввод времени

  • Абсолютное время (start_time_iso/end_time_iso или time_iso) имеет приоритет над lookback_minutes.
  • Для относительных окон: используйте lookback_minutes.
  • Для абсолютных окон: используйте RFC3339/ISO8601 — 2026-02-09T15:04:05Z.
  • Устаревший YYYY-MM-DD HH:MM:SS принимается только для совместимости.

get_exceptions

  • limit (целое число, необязательно): Максимальное количество исключений. По умолчанию: 20.
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно): Абсолютный временной диапазон.
  • service_name (строка, необязательно): Фильтр по сервису.
  • span_name (строка, необязательно): Фильтр по имени спана.
  • deployment_environment (строка, необязательно): Фильтр по окружению.

get_service_summary

  • start_time_iso / end_time_iso (строка, необязательно)
  • env (строка, необязательно): По умолчанию prod.

get_service_environments

  • start_time_iso / end_time_iso (строка, необязательно)

Всем остальным инструментам APM требуется значение env. Используйте "", если этот инструмент возвращает пустой результат.

get_service_performance_details

  • service_name (строка, обязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)
  • env (строка, необязательно): По умолчанию prod.

get_service_operations_summary

  • service_name (строка, обязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)
  • env (строка, необязательно): По умолчанию prod.

get_service_dependency_graph

  • service_name (строка, необязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)
  • env (строка, необязательно): По умолчанию prod.

get_databases

  • env (строка, необязательно): Фильтр по окружению. По умолчанию: all.
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)

get_database_slow_queries

  • db_system (строка, необязательно): например, postgresql, mysql, mongodb, redis.
  • host (строка, необязательно): Хост базы данных (net_peer_name).
  • service_name (строка, необязательно): Имя вызывающего сервиса.
  • env (строка, необязательно)
  • min_duration_ms (число с плавающей точкой, необязательно): Минимальная длительность запроса в мс.
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)
  • limit (целое число, необязательно): По умолчанию: 20.

get_database_queries

  • db_system (строка, необязательно)
  • host (строка, необязательно)
  • service_name (строка, необязательно)
  • env (строка, необязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)
  • limit (целое число, необязательно): По умолчанию: 20.

get_database_server_metrics

  • db_system (строка, обязательно): например, postgresql, mysql, mongodb, redis, aerospike.
  • host (строка, необязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • start_time_iso / end_time_iso (строка, необязательно)

prometheus_range_query

  • query (строка, обязательно): PromQL-запрос.
  • start_time_iso / end_time_iso (строка, необязательно): По умолчанию последние 60 мин.
  • lookback_minutes (число с плавающей точкой, необязательно): По умолчанию: 60.

prometheus_instant_query

  • query (строка, обязательно)
  • time_iso (строка, необязательно): По умолчанию сейчас.
  • lookback_minutes (число с плавающей точкой, необязательно)

prometheus_label_values

  • match_query (строка, необязательно): PromQL-фильтр.
  • label (строка, обязательно): Имя метки.
  • start_time_iso / end_time_iso (строка, необязательно)

prometheus_labels

  • match_query (строка, необязательно): PromQL-фильтр.
  • start_time_iso / end_time_iso (строка, необязательно)

get_logs

  • logjson_query (массив, обязательно): JSON-запрос конвейера.
  • lookback_minutes (целое число, необязательно): По умолчанию: 5.
  • start_time_iso / end_time_iso (строка, необязательно)
  • limit (целое число, необязательно): Серверное значение по умолчанию: 5000.
  • index (строка, необязательно): physical_index:<name> или rehydration_index:<block_name>.

Для инвентаризации сервисов на основе логов сначала запросите physical_index_service_count:

sum by (name, service_name, env) (physical_index_service_count{destination="logs"})

Используйте service_name как ServiceName, env как окружение, если оно указано, и name как имя физического индекса. Если name="default", опустите index; для нестандартного физического индекса, выбранного пользователем, передайте index: "physical_index:<name>". Если серверная часть отклоняет явную фильтрацию по физическому индексу, повторите попытку без index и сообщите, что явная фильтрация по физическому индексу недоступна для этой серверной части.

get_service_logs

  • service (строка, обязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • limit (целое число, необязательно): По умолчанию: 20.
  • env (строка, необязательно)
  • severity_filters (массив, необязательно): например, ["error", "warn"]. Логика ИЛИ.
  • body_filters (массив, необязательно): например, ["timeout", "failed"]. Логика ИЛИ.
  • start_time_iso / end_time_iso (строка, необязательно)
  • index (строка, необязательно)

Несколько типов фильтров объединяются через И. Каждый массив внутри использует ИЛИ. Сначала используйте get_logs для получения общих агрегированных подсчетов; используйте get_service_logs только после сужения до сервиса/окружения/индекса и небольшого набора образцов.

get_log_attributes

  • lookback_minutes (целое число, необязательно): По умолчанию: 15.
  • start_time_iso / end_time_iso (строка, необязательно)
  • region (строка, необязательно)
  • index (строка, необязательно)

get_log_attributes_for_pipeline

  • pipeline (массив, обязательно): Предыдущие этапы фильтрации для ограничения области обнаружения, например, [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].
  • lookback_minutes (целое число, необязательно): По умолчанию: 15.
  • start_time_iso / end_time_iso (строка, необязательно)
  • region (строка, необязательно)
  • index (строка, необязательно)

get_drop_rules

Без параметров.

add_drop_rule

  • name (строка, обязательно)
  • filters (массив, обязательно): Каждый фильтр: key, value, operator (equals/not_equals), conjunction (and).

get_traces

Используйте для широкого поиска и агрегаций. Для точного поиска по идентификатору трассировки используйте get_service_traces.

  • tracejson_query (массив, обязательно)
  • start_time_iso / end_time_iso (строка, необязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • limit (целое число, необязательно): По умолчанию: 5000.

get_service_traces

Требуется ровно один из trace_id или service_name.

  • trace_id (строка, необязательно): Период поиска по умолчанию: 72 часа.
  • service_name (строка, необязательно): Период поиска по умолчанию: 60 мин.
  • lookback_minutes (целое число, необязательно)
  • start_time_iso / end_time_iso (строка, необязательно)
  • limit (целое число, необязательно): По умолчанию: 10.
  • env (строка, необязательно)

get_trace_attributes

  • lookback_minutes (целое число, необязательно): По умолчанию: 15.
  • start_time_iso / end_time_iso (строка, необязательно)
  • region (строка, необязательно)

get_trace_attributes_for_pipeline

  • pipeline (массив, обязательно): Предыдущие этапы фильтрации для ограничения области обнаружения, например, [{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].
  • lookback_minutes (целое число, необязательно): По умолчанию: 15.
  • start_time_iso / end_time_iso (строка, необязательно)
  • region (строка, необязательно)

get_trace_attribute_values

  • tag_name (строка, обязательно): Имя атрибута из get_trace_attributes (например, resource_department или attributes['http.method']).
  • pipeline (массив, необязательно): Предыдущие этапы фильтрации для ограничения значений; опустите для глобальных значений.
  • region (строка, необязательно)

get_change_events

  • start_time_iso / end_time_iso (строка, необязательно)
  • lookback_minutes (целое число, необязательно): По умолчанию: 60.
  • service (строка, необязательно)
  • environment (строка, необязательно)
  • event_name (строка, необязательно): Сначала вызовите без этого, чтобы получить available_event_names.

get_alert_config

  • search_term (строка, необязательно): Свободный текстовый поиск по имени, группе, источнику данных, тегам.
  • rule_name (строка, необязательно)
  • severity (строка, необязательно)
  • rule_type (строка, необязательно): static или anomaly.
  • alert_group_name / alert_group_type / data_source_name (строка, необязательно)
  • tags (массив, необязательно): Должны совпадать все (логика И).

get_alerts

  • time_iso (строка, необязательно): Время оценки в формате RFC3339.
  • window (целое число, необязательно): Период поиска в секундах. По умолчанию: 900. Диапазон: 60–86400.
  • lookback_minutes (целое число, необязательно): Диапазон: 1–1440.

get_alert_rule_state

  • start_time (целое число, обязательно): Начало диапазона в Unix epoch (включительно).
  • end_time (целое число, обязательно): Конец диапазона в Unix epoch (включительно).
  • step (целое число, обязательно): Разрешение в секундах между выборками. Количество выборок ((end_time - start_time) / step + 1) ограничено 100.
  • alert_group_id (строка, необязательно): Фильтр по идентификатору группы оповещений.
  • rule_name (строка, необязательно): Regex-фильтр по имени правила.
  • alert_group_name (строка, необязательно): Regex-фильтр по имени группы оповещений.
  • label_filters (строка, необязательно): Разделенные запятыми фильтры меток key=value.
  • state (строка, необязательно): Фильтр по состоянию (например, firing).

Возвращает JSON-карту rule_id -> [{timestamp, is_firing}]. Временная метка, в которой правило отсутствует в ответе от источника, сообщается как is_firing=0 — это означает «не наблюдалось как активное», а не подтвержденное нормальное состояние.

get_notification_channels

Без параметров. Возвращает все настроенные каналы уведомлений (Slack, PagerDuty, email, вебхуки и т. д.).

did_you_mean

  • query (строка, обязательно): Имя для поиска — частичное, с опечаткой или сокращенное.
  • type (строка, необязательно): Ограничить типом сущности: service, environment, host, database, k8s_deployment, k8s_namespace, job.

Возвращает до 3 ближайших совпадений с оценками сходства. Используйте это перед любым вызовом инструмента, где имя сущности неопределенно. Если предыдущий вызов вернул пустые результаты, попробуйте это перед повторной попыткой.

list_dashboards

Без параметров. Возвращает все пользовательские дашборды в организации в виде JSON-массива с id, name и метаданными.

get_dashboard

  • id (строка, обязательно): UUID дашборда.
  • region (строка, необязательно): Регион для заполнения запросов панелей. По умолчанию соответствует региону настроенного источника данных.

create_dashboard

  • dashboard (объект, обязательно): Определение дашборда с name и panels[]. Каждая панель требует name, version, layout (x, y, w, h), visualization.type и queries[].
  • metadata (объект, необязательно): Метаданные дашборда — поля _category и _type (например, {"_category":"custom","_type":"metrics"}).

update_dashboard

  • id (строка, обязательно): UUID дашборда для обновления.
  • dashboard (объект, обязательно): Полное тело дашборда для замены (такая же структура, как при создании).
  • metadata (объект, необязательно): Метаданные для замены. Системные дашборды только для чтения возвращают ошибку 403.

delete_dashboard

  • id (строка, обязательно): UUID дашборда для удаления. Системные дашборды только для чтения не могут быть удалены.

Тестирование

См. TESTING.md для настройки и инструкций по интеграционному тестированию.


MseeP.ai Security Assessment Badge