Last9

公式

リアルタイムの本番コンテキスト(ログ、メトリクス、トレース)をシームレスにローカル環境に取り込み、コードの自動修正をより迅速に行えるようにします。

ドキュメント

Last9 MCP サーバー

last9 mcp demo

あなたの AI エージェントは、本番環境で何が壊れているかを知りません。これを修正します。

Last9 MCP サーバー は、Claude、Cursor、Windsurf、その他 MCP 対応の AI アシスタントを、本番環境の可観測性データ (ログ、メトリクス、トレース、例外、データベースクエリ、アラート、デプロイ) に直接接続します。エージェントは推測をやめ、実際のシグナルを読み取り始めます。


30 秒で開始 (ホステッド)

インストールするバイナリはありません。管理するトークンもありません。URL を 1 つ入力し、ブラウザで OAuth 認証するだけです。

Last9 URL から組織スラッグを見つけます: 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

v1.99 以降が必要です。コマンドパレットを開き → 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 リリース からダウンロードします:

プラットフォームアーカイブ
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

リフレッシュトークンの取得

管理者 のみがトークンを作成できます。

  1. API アクセス に移動します
  2. Generate Token をクリックし、Write 権限を付与します
  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 リリース からダウンロード後、展開してフルパスを指定します:

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

Windows では NPM ルートの方が簡単です — パス管理が不要です。

環境変数

変数デフォルト説明
LAST9_REFRESH_TOKEN(必須)API アクセス からのリフレッシュトークン
LAST9_DATASOURCEorg デフォルトデータソース/クラスター名 — 複数の Levitate クラスターがある場合に便利です
LAST9_API_HOSTapp.last9.ioAPI ホストを上書きします
LAST9_MAX_GET_LOGS_ENTRIES5000チャンク化された get_logs リクエストの最大エントリ数
LAST9_DEBUG_CHUNKINGfalsetrue を設定すると、get_logsget_service_logsget_traces のチャンク計画の詳細をログに記録します
LAST9_DISABLE_TELEMETRYtruefalse を設定すると、内部 OTel トレースを有効にします
OTEL_SDK_DISABLED標準 OTel 環境変数。LAST9_DISABLE_TELEMETRY を上書きします
OTEL_EXPORTER_OTLP_ENDPOINTOTLP コレクターエンドポイント (テレメトリが有効な場合のみ)
OTEL_EXPORTER_OTLP_HEADERSOTLP 認証ヘッダー (テレメトリが有効な場合のみ)

できること

サービスヘルス

  • get_service_summary — 全サービスのスループット、エラー率、p95 応答時間
  • get_service_environments — サービスで利用可能な環境。最初にこれを実行します — 他の APM ツールはここからの env が必要です
  • get_service_performance_details — 完全な内訳: スループット、エラー率、p50/p90/p95/平均/最大、apdex、可用性
  • get_service_operations_summary — HTTP エンドポイント、DB コール、メッセージング、HTTP クライアントでグループ化された操作
  • get_service_dependency_graph — アップストリーム/ダウンストリーム/インフラのスループット、レイテンシ、エラー率を含む依存関係マップ
  • get_exceptions — サービスとスパンフィルター付きのサーバー側例外

データベース可観測性

OpenTelemetry トレーススパンから派生した、データベースパフォーマンスに直接アクセスする 4 つのツール。すでに OTel を使用している場合、追加の計装は不要です。

  • get_databases — インフラストラクチャ全体のすべてのデータベースを検出: DB タイプ、ホスト、スループット (クエリ/分)、p95 レイテンシ、エラー率、依存サービスの数
  • get_database_slow_queries — 実際の最も遅いクエリ実行 (期間順)。完全なトレースにドリルダウンするためのトレース ID 付き
  • get_database_queries — クエリパターンと集計: クエリの実行頻度、平均/p95 期間、エラー率
  • get_database_server_metrics — DB ホスト自体からのサーバー側メトリクス (CPU、接続、バッファヒット率 — DB システムによって異なります)

PostgreSQL、MySQL、MongoDB、Redis、Aerospike、および db_system 属性を持つ OTel トレースをサポートするその他すべてをサポートします。

Prometheus / PromQL

  • prometheus_range_query — 任意のメトリクスに対する PromQL 範囲クエリ
  • prometheus_instant_query — インスタントクエリ。avg_over_timesum_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_rulesLast9 コントロールプレーン からのログドロップルール
  • add_drop_rule — ソースでログボリュームを削減する新しいドロップルールを作成します

トレース

  • get_traces — 広範な検索と集計のための JSON パイプライントレースクエリ
  • get_service_traces — 正確なトレース ID またはサービス名によるトレース。トレース ID がある場合に使用します — より高速です
  • 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、メールなど)

カスタムダッシュボード

  • list_dashboards — 組織内のすべてのカスタムダッシュボード: ID、名前、メタデータ
  • get_dashboard — ID による完全なダッシュボード定義 (パネルとクエリを含む)
  • create_dashboard — パネル、クエリ、メタデータを含む新しいカスタムダッシュボードを作成します
  • update_dashboard — ID で既存のダッシュボードを更新します (読み取り専用のシステムダッシュボードはエラーを返します)
  • delete_dashboard — ID でカスタムダッシュボードを削除します

あいまい名前解決

  • did_you_mean — エージェントがエンティティ名について確信が持てない場合、カタログ (サービス、環境、ホスト、データベース、K8s デプロイ/名前空間、ジョブ) から最も近い一致を返します。類似度スコア付きで最大 3 つの候補を表示します。名前検索が空を返した場合、ほとんどのツールの前にサーバーがこれを自動的に呼び出します。

仕組み

すべてのレスポンスにディープリンク。 すべてのツールは deep_link フィールドを返します — これは、その正確なクエリと時間範囲の Last9 ダッシュボードへの直接 URL です。エージェントがリンクを渡し、クリックすればそこに移動します。

ライブ属性キャッシュ。 起動時に、サーバーはデータから実際のログとトレース属性名を取得し、ツールの説明に埋め込みます。これにより、AI アシスタントは汎用的なリストではなく、スキーマに存在するフィールドを認識します。キャッシュは 2 時間ごとに更新されます。

チャンク化された大規模な結果。 get_logsget_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 ストリーミング 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 (文字列、オプション): 例: postgresqlmysqlmongodbredis
  • 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 (文字列、必須): 例: postgresqlmysqlmongodbredisaerospike
  • 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_nameServiceName として、環境が存在する場合は env を、物理インデックス名として name を使用します。name="default" の場合は index を省略します。ユーザーが選択したデフォルト以外の物理インデックスの場合は、index: "physical_index:<name>" を渡します。バックエンドが明示的な物理インデックスフィルタリングを拒否する場合は、index なしで再試行し、そのバックエンドでは明示的な物理インデックスフィルタリングが利用できないことを報告します。

get_service_logs

  • service (文字列、必須)
  • lookback_minutes (整数、オプション): デフォルト: 60。
  • limit (整数、オプション): デフォルト: 20。
  • env (文字列、オプション)
  • severity_filters (配列、オプション): 例: ["error", "warn"]。OR論理。
  • body_filters (配列、オプション): 例: ["timeout", "failed"]。OR論理。
  • start_time_iso / end_time_iso (文字列、オプション)
  • index (文字列、オプション)

複数のフィルタータイプはANDで結合されます。各配列は内部的にORを使用します。 最初に 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 (配列、必須): 各フィルター: keyvalueoperator (equals/not_equals)、conjunction (and)。

get_traces

広範な検索と集計に使用します。正確なトレースID検索には、get_service_traces を使用します。

  • tracejson_query (配列、必須)
  • start_time_iso / end_time_iso (文字列、オプション)
  • lookback_minutes (整数、オプション): デフォルト: 60。
  • limit (整数、オプション): デフォルト: 5000。

get_service_traces

trace_id または service_name のいずれか1つが必須です。

  • 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 (配列、オプション): すべて一致する必要があります (AND論理)。

get_alerts

  • time_iso (文字列、オプション): RFC3339形式の評価時刻。
  • window (整数、オプション): ルックバック秒数。デフォルト: 900。範囲: 60~86400。
  • lookback_minutes (整数、オプション): 範囲: 1~1440。

get_alert_rule_state

  • start_time (整数、必須): 範囲の開始Unixエポック (包含)。
  • end_time (整数、必須): 範囲の終了Unixエポック (包含)。
  • step (整数、必須): サンプル間の解像度 (秒)。サンプル数 ((end_time - start_time) / step + 1) は最大100に制限されます。
  • alert_group_id (文字列、オプション): アラートグループIDでフィルタリング。
  • rule_name (文字列、オプション): ルール名の正規表現フィルター。
  • alert_group_name (文字列、オプション): アラートグループ名の正規表現フィルター。
  • label_filters (文字列、オプション): カンマ区切りの key=value ラベルフィルター。
  • state (文字列、オプション): 状態でフィルタリング (例: firing)。

rule_id -> [{timestamp, is_firing}] のJSONマップを返します。上流のレスポンスにルールが存在しないタイムスタンプは is_firing=0 として報告されます。これは「発火が観測されなかった」ことを意味し、正常状態が確認されたわけではありません。

get_notification_channels

パラメータはありません。設定されているすべての通知チャネル (Slack、PagerDuty、メール、Webhookなど) を返します。

did_you_mean

  • query (文字列、必須): 検索する名前 — 部分的、スペルミス、または省略形。
  • type (文字列、オプション): エンティティタイプを制限: serviceenvironmenthostdatabasek8s_deploymentk8s_namespacejob

類似度スコア付きで最大3つの最も近い一致を返します。エンティティ名が不確かなツール呼び出しの前に使用します。前回の呼び出しで空の結果が返された場合は、再試行する前にこれを試してください。

list_dashboards

パラメータはありません。組織内のすべてのカスタムダッシュボードを、idname、およびメタデータを含むJSON配列として返します。

get_dashboard

  • id (文字列、必須): ダッシュボードUUID。
  • region (文字列、オプション): パネルクエリ生成のためのリージョン。デフォルトは設定されたデータソースリージョン。

create_dashboard

  • dashboard (オブジェクト、必須): namepanels[] を含むダッシュボード定義。各パネルには nameversionlayout (xywh)、visualization.typequeries[] が必要です。
  • 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