Last9
公式リアルタイムの本番コンテキスト(ログ、メトリクス、トレース)をシームレスにローカル環境に取り込み、コードの自動修正をより迅速に行えるようにします。
Last9 MCPで何ができますか?
アシスタントに、Last9のライブログ、トレース、メトリクスを使って本番インシデントを調査させましょう。
- サービス健全性のランク付け —
get_service_summaryを使用して、フリート全体のリクエスト数、スループット、4xx/5xxエラーを確認します。 - 低速なデータベースクエリの特定 —
get_database_slow_queriesを使用して、トレースID付きの実際の低速実行を取得し、詳細を調査します。 - サービスログの取得 —
get_service_logsを使用して、重大度と本文内容でフィルタリングした生のログ行を取得します。 - 単一リクエストのトレース —
get_trace_waterfallを使用して、正確なトレースIDに対する親子ウォーターフォールを表示します。 - アラート状態の確認 —
get_alert_rule_stateを使用して、時間範囲内のアラートルールごとの発火履歴を確認します。 - ダッシュボードの管理 —
create_dashboardを使用して、パネルとクエリを備えたカスタムダッシュボードを構築します。
ドキュメント
Last9 MCP サーバー

あなたのAIエージェントは本番環境で何が壊れているかを知りません。これを修正します。
Last9 MCP サーバーは、Claude、Cursor、Windsurf、およびその他のMCP対応AIアシスタントを本番のオブザーバビリティデータ(ログ、メトリクス、トレース、例外、データベースクエリ、アラート、デプロイメント)に直接接続します。エージェントは推測をやめ、実際のシグナルを読み始めます。
30秒で開始(ホステッド)
バイナリのインストールは不要。トークンの管理も不要。1つのURL、ブラウザでの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 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 |
リフレッシュトークンを取得
管理者のみがトークンを作成できます。
- API Access に移動
- Write 権限で Generate Token をクリック
- コピー
クライアント構成
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/Desktop | Settings > Developer > Edit Config (claude_desktop_config.json) |
| Cursor | Settings > Cursor Settings > MCP > Add New Global MCP Server |
| Windsurf | Settings > 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>"
}
}
}
}
WindowsではNPMルートの方が簡単です — パス管理が不要です。
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
LAST9_REFRESH_TOKEN | (必須) | API Access からのリフレッシュトークン |
LAST9_DATASOURCE | 組織のデフォルト | データソース/クラスター名 — 複数のLevitateクラスターがある場合に便利 |
LAST9_API_HOST | app.last9.io | APIホストを上書き |
LAST9_TOOLSETS | すべてのツール | 公開するツールセットをカンマ区切りで指定 (logs, traces, metrics, alerts, dashboards, investigate, all)。エイリアス: LAST9_MCP_TOOLSETS |
LAST9_MAX_GET_LOGS_ENTRIES | 5000 | チャンク分割された get_logs リクエストの最大エントリ数 |
LAST9_DEBUG_CHUNKING | false | true を設定して、get_logs、get_service_logs、get_traces のチャンク計画の詳細をログ出力 |
LAST9_DISABLE_TELEMETRY | true | false を設定して内部OTelトレースを有効化 |
OTEL_SDK_DISABLED | — | 標準OTel環境変数。LAST9_DISABLE_TELEMETRY を上書き |
OTEL_EXPORTER_OTLP_ENDPOINT | — | OTLPコレクターエンドポイント(テレメトリが有効な場合のみ) |
OTEL_EXPORTER_OTLP_HEADERS | — | OTLP認証ヘッダー(テレメトリが有効な場合のみ) |
できること
サービスヘルス
get_service_summary— ランク付けされたフリートの(service, env)行: インターバルリクエスト数、スループットrpm、HTTP 4xx/5xx数、gRPCエラー数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_apm_service_deviations— 現在のウィンドウを同時間のベースラインと比較: リグレッション/改善、Apdex調整、ターミナル結果(フリートまたは単一サービス)get_exceptions— サーバーサイドの例外(サービスとスパンフィルター付き)
データベースオブザーバビリティ
データベースパフォーマンスに直接アプローチする4つのツール。OpenTelemetryトレーススパンから導出されます。すでに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_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— 正確なトレースIDまたはサービス名でトレースを取得。トレースIDがある場合はこれを使用 — より高速ですget_trace_attributes— トレーススキーマ内の属性のグローバルカタログget_trace_attributes_for_pipeline— 実行中のパイプラインに実際に存在する属性(スコープ指定されたディスカバリー)。それぞれ正確なfilter_field付きget_trace_attribute_values— トレース属性の異なる値。オプションでパイプラインにスコープ可能get_trace_attribute_deviations— 2つの境界スパンコホート間で異なる属性値をランク付け(遅い vs 速い、エラー vs 非エラー、または2つの時間ウィンドウ)。相関であり原因ではありませんget_trace_waterfall— 正確な1トレースを親子ウォーターフォールとして表示。インターバル結合自己時間、最も遅いスパン、グラフ警告付き
変更イベントとアラート
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によるカスタムダッシュボードの削除list_dashboard_snapshots— ダッシュボードのフリーズされたポイントインタイムスナップショット(メタデータのみ)get_dashboard_snapshot— RCA/共有ビューのためのパネルデータを含む完全なフリーズスナップショットdelete_dashboard_snapshot— IDによるフリーズスナップショットの削除
ファジー名前解決
did_you_mean— エージェントがエンティティ名について確信がない場合、カタログから最も近い一致を返します(サービス、環境、ホスト、データベース、K8sデプロイメント/名前空間、ジョブ)。類似度スコア付きで最大3つの提案。名前ルックアップが空を返す場合、サーバーはほとんどのツールの前に自動的にこれを呼び出します。
仕組み
すべての応答にディープリンク。 すべてのツールは deep_link フィールドを返します — その正確なクエリと時間範囲に対するLast9ダッシュボードへの直接URL。エージェントがリンクを渡し、クリックしてそこに移動できます。
ツールセット。 デフォルトではサーバーはすべてのツールを公開します。調査(ログ/トレース/メトリクス)のみが必要な自動化ホストは、クライアント側の一括無効化なしで tools/list を小さく保つために LAST9_TOOLSETS=investigate を設定(または --toolsets=investigate を渡す)できます。名前付きパック: logs、traces、metrics、alerts、dashboards、investigate、all。不明な名前は即時エラーになります。metrics パックだけでは list_datasources や did_you_mean は 含まれません — これらのディスカバリーヘルパーが必要な場合は investigate(またはツールセットの組み合わせ)を使用してください。
ツールリファレンスリソース。 長いlogjson/tracejson/service-logs/metricsマニュアルはMCPリソース (last9://reference/logjson、last9://reference/tracejson、last9://reference/service_logs、last9://reference/metrics) であり、常時オンのツール説明テキストではありません。重要なクエリルールはツール説明に残るため、resources/read を呼び出さないエージェントも正しい構築ガイダンスを得られます。get_log_attributes / get_log_attributes_for_pipeline(およびトレース相当)で組織固有のフィールドを発見してください — これらは説明に注入されません。
大きな結果のチャンク分割。 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でテスト
Streamable HTTP ハンドラーは ステートレス モードで動作するため、各リクエストは独立して処理されます。initialize ハンドシェイクと Mcp-Session-Id ヘッダーはオプションです — これらを送信するクライアントも引き続き動作し(ヘッダーは受け入れられて無視されます)、クライアントは tools/list / tools/call に直接進むこともできます。すべてのツールは独立したリクエスト/レスポンスクエリであり、サーバーはサーバー→クライアント通知を発行しないため、GET /mcp(SSE ストリーム)は 405 を返します。
# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
# Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service_name": "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(文字列、オプション): スパン名でフィルタリング。env(文字列、オプション): 環境でフィルタリング。
get_service_summary
start_time_iso/end_time_iso(文字列、オプション)env(文字列、オプション): PromQL 正規表現。デフォルトは.*。完全一致にはアンカーが必要です(例:^prod$)。sort_by(文字列、オプション):request_count(デフォルト)、throughput_rpm、http_4xx_count、http_5xx_count、またはgrpc_error_count。limit(整数、オプション): 最大ランキング行数。省略または 0 は 10 を意味し、100 を超える値は 100 にクランプされます。
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_apm_service_deviations
service_name(文字列、オプション): フリート全体のスコープでは省略。1 つのサービスとそのオペレーション相関を指定する場合は指定します。lookback_minutes(整数、オプション): 現在のウィンドウ。デフォルト: 60。start_time_iso/end_time_iso(文字列、オプション): 明示的な現在のウィンドウ。baseline_start_time_iso/baseline_end_time_iso(文字列、オプション): 明示的なベースライン。デフォルトは直前の同一時間幅のウィンドウ。datasource(文字列、オプション): 比較を 1 つのデータソースに制限します。env(文字列、オプション): デフォルトはprod。max_services/max_operations(整数、オプション): デフォルト 10、各最大 10。
get_databases
env(文字列、オプション): 環境でフィルタリング。デフォルト: すべて。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(浮動小数点数、オプション): 最小クエリ時間(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_name(文字列、必須)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
パラメータなし。GET /otel_settings/drop?region=... を介してドロップルールを一覧表示します。
add_drop_rule
name(文字列、必須)filters(配列、必須): 各フィルター:key、value、operator(equals/not_equals)、conjunction(and)。- フィルターキーは
attributes["key_name"]またはresource.attributes["key_name"]を使用する必要があります(Last9 API で必須)。 POST /otel_settings/drop?region=...&cluster_id=...を介してルールを作成します。
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_trace_attribute_deviations
comparison_mode(文字列、必須):latency、errors、またはtime。service_name(文字列、必須)environment(文字列、必須): 正確なdeployment.environment値。operation(文字列、オプション)filters(配列、オプション): トレース JSON フィルター条件。candidate_attributes(配列、オプション): 最大 8。制限付きディスカバリの場合は省略します。latency_threshold_ms(数値、オプション):latencyモードで必須。他のモードでは拒否されます。start_time_iso/end_time_iso(文字列、オプション)lookback_minutes(整数、オプション): デフォルト: 15。最大: 15。baseline_start_time_iso/baseline_end_time_iso(文字列、オプション):timeモードで必須。ターゲットウィンドウと重複せず、同じ時間幅である必要があります。minimum_cohort_size(整数、オプション): デフォルト: 100。最小: 20。minimum_value_support(整数、オプション): デフォルト: 20。最小: 10。limit(整数、オプション): デフォルト: 10。最大: 10。
対応するバックエンド機能が有効になっている必要があります。
get_trace_waterfall
trace_id(文字列、必須)environment(文字列、オプション)start_time_iso/end_time_iso(文字列、オプション)lookback_minutes(整数、オプション): デフォルト: 4320(72 時間)。selected_span_id(文字列、オプション): そのスパンのみの属性、イベント、リンクを返します。max_spans(整数、オプション): デフォルト: 500。最大: 1000。
investigation-evidence/v1 エンベロープを返します。ウォーターフォールは data の下にあります。
get_change_events
start_time_iso/end_time_iso(文字列、オプション)lookback_minutes(整数、オプション): デフォルト: 60。service_name(文字列、オプション)env(文字列、オプション)event_name(文字列、オプション): これを指定せずに呼び出してavailable_event_namesを取得します。
get_alert_config
search_term(string, optional): 名前、グループ、データソース、タグを横断するフリーテキスト検索。rule_name(string, optional)severity(string, optional)rule_type(string, optional):staticまたはanomaly。alert_group_name/alert_group_type/data_source_name(string, optional)tags(array, optional): すべて一致する必要があります(AND ロジック)。
get_alerts
time_iso(string, optional): RFC3339 形式の評価時刻。window(integer, optional): ルックバック秒数。デフォルト: 900。範囲: 60–86400。lookback_minutes(integer, optional): 範囲: 1–1440。
get_alert_rule_state
start_time(integer, required): 範囲の開始時刻の Unix エポック(含む)。end_time(integer, required): 範囲の終了時刻の Unix エポック(含む)。step(integer, required): サンプル間の解像度(秒)。サンプル数((end_time - start_time) / step + 1)は最大 100 件に制限されています。alert_group_id(string, optional): アラートグループ ID でフィルタリングします。rule_name(string, optional): ルール名に対する正規表現フィルタ。alert_group_name(string, optional): アラートグループ名に対する正規表現フィルタ。label_filters(string, optional): カンマ区切りのkey=valueラベルフィルタ。state(string, optional): 状態でフィルタリング(例:firing)。
rule_id -> [{timestamp, is_firing}] の JSON マップを返します。ルールがアップストリームのレスポンスに存在しないタイムスタンプは is_firing=0 として報告されます。これは「発火中として観測されていない」という意味であり、正常状態が確認されたわけではありません。
get_notification_channels
パラメータはありません。設定済みのすべての通知チャネル(Slack、PagerDuty、メール、Webhook など)を返します。
did_you_mean
query(string, required): 検索する名前 — 部分一致、スペルミス、省略形に対応。type(string, optional): エンティティタイプに制限:service、environment、host、database、k8s_deployment、k8s_namespace、job。
類似度スコア付きで最も近い一致を最大 3 件返します。エンティティ名が不明確な場合は、任意のツール呼び出しの前にこれを使用してください。以前の呼び出しが空の結果を返した場合は、再試行する前にこれを試してください。
list_dashboards
パラメータはありません。組織内のすべてのカスタムダッシュボードを、id、name、メタデータを含む JSON 配列として返します。
get_dashboard
id(string, required): ダッシュボード UUID。region(string, optional): パネルクエリ生成のリージョン。デフォルトは設定済みのデータソースリージョン。
create_dashboard
dashboard(object, required):nameとpanels[]を含むダッシュボード定義。各パネルにはname、version、layout(x、y、w、h)、visualization.type、queries[]が必要です。metadata(object, optional): ダッシュボードのメタデータ —_categoryと_typeフィールド(例:{"_category":"custom","_type":"metrics"})。
update_dashboard
id(string, required): 更新するダッシュボード UUID。dashboard(object, required): 完全な置き換え用ダッシュボード本文(create と同じ形式)。metadata(object, optional): 置き換え用メタデータ。読み取り専用のシステムダッシュボードは 403 エラーを返します。
delete_dashboard
id(string, required): 削除するダッシュボード UUID。読み取り専用のシステムダッシュボードは削除できません。
list_dashboard_snapshots
dashboard_id(string, required): スナップショットを一覧表示するダッシュボード UUID。
メタデータのみを返します(id、name、expires_at など)。凍結されたパネルデータには get_dashboard_snapshot を使用してください。
get_dashboard_snapshot
id(string, required): スナップショット UUID。
dashboard_definition、panel_data、time_range、variables を含む完全な凍結スナップショットを返します。
delete_dashboard_snapshot
id(string, required): 削除するスナップショット UUID。
テスト
統合テストのセットアップと手順については TESTING.md を参照してください。
