次のような場合に使用: ユーザーがgrafana-assistant、Grafana Assistant CLI、assistant tunnel、またはアシスタント経由でGrafanaインスタンスへのクエリを希望する場合 Grafana Assistant CLI(コマンドラインツール)を使用して、A2A API(アプリケーション間通信インターフェース)経由でGrafana Assistantと連携できます。 このドキュメントでカバーしている内容: - インストール方法 - 設定手順 - プロンプト(指示内容)の入力方法 - 会話の文脈を維持する方法 - 運用調査に役立つ実践的なパターン
Use the grafana-assistant CLI to interact with Grafana Assistant via A2A API. Covers installation, configuration, prompting, keeping conversation context, and practical patterns for ops investigations. Use when the user mentions grafana-assistant, Grafana Assistant CLI, assistant tunnel, or wants to query a Grafana instance via the assistant.
Grafana Assistant と A2A API を通じてやり取りするコマンドラインツール。
grafana-assistant バイナリがすでにインストール済みで、$PATH で利用可能な状態である必要があります。自動インストールは試みないでください。 コマンドが見つからない場合は、ユーザーに先にインストールするよう指示して中止してください。
インストール手順とダウンロード可能なバイナリ: github.com/grafana/assistant-cli
Docker イメージも利用可能: github.com/grafana/assistant-cli/pkgs
GRAFANA_ASSISTANT_CONFIG 環境変数(設定されている場合)./grafana-assistant.yaml(現在のディレクトリ、--local フラグを使用)~/.config/grafana-assistant/config.yamlcurrent-instance: prod
instances:
localhost:
url: http://localhost:3000
token: glsa_abcd1234
prod:
url: https://mystack.grafana.net
token: ${GRAFANA_PROD_TOKEN} # 環境変数の展開に対応
projects:
- name: my-app
path: ~/projects/my-app
tunnel:
tools:
filesystem:
allowed_paths: [/var/log/myapp]
deny_paths: ["**/*.key", "**/secrets.yaml"]
terminal:
allowed_commands: [git, kubectl, docker]
deny_commands: ["rm -rf"]
passthrough_env: [AWS_PROFILE, KUBECONFIG]
| 変数 | 説明 |
|---|---|
GRAFANA_URL |
Grafana インスタンスの URL(設定よりも優先) |
GRAFANA_SA_TOKEN |
サービスアカウントトークン(設定よりも優先) |
GRAFANA_ASSISTANT_CONFIG |
設定ファイルパスのオーバーライド |
--url と --token フラグGRAFANA_URL と GRAFANA_SA_TOKEN 環境変数--instance <名前> フラグcurrent-instancegrafana-assistant config set-instance mystack --url https://mystack.grafana.net
grafana-assistant config use-instance mystack
grafana-assistant auth # ブラウザ認証を実行
grafana-assistant chat # チャット開始
ブラウザ認証を使用するには、Assistant CLI ユーザーロールが必要です。エディターロール以上のユーザーは自動的にこのロールを取得します。カスタムロールの場合は、grafana-assistant-app.tokens:access 権限を含めてください。
grafana-assistant config set-instance <名前> -u <url> -t <トークン>
grafana-assistant config use-instance <名前>
grafana-assistant config current
grafana-assistant config list
grafana-assistant config delete-instance <名前>
grafana-assistant config path
トークンは環境変数参照に対応: -t '${MY_TOKEN_VAR}'
プロジェクトは、Assistant がトンネル経由でアクセスできる名前付きディレクトリです。
grafana-assistant config add-project <名前> <パス>
grafana-assistant config list-projects
grafana-assistant config remove-project <名前>
grafana-assistant prompt で単一のメッセージを送信して応答を取得します。Cursor から使用する主要なコマンドです。
grafana-assistant prompt "メッセージ"
grafana-assistant prompt "メッセージ" --json # JSON 形式で出力(contextId 含む)
grafana-assistant prompt "メッセージ" -c <context-id> # 会話を継続
grafana-assistant prompt "メッセージ" -a <agent-id> # 特定のエージェント
grafana-assistant prompt "メッセージ" --wait=false # 非同期実行
デフォルトでは、各プロンプトは新しい独立した会話を開始します。後続のメッセージを同じ会話に続けて、Assistant が以前の文脈を記憶する状態にするには:
--json を使い contextId を取得-c <contextId> を指定# 最初のメッセージ — contextId を記録
grafana-assistant prompt "Show me metrics for the assistant service in ops-eu-south-0" --json
# 応答: { "contextId": "62a8823a-...", "status": "completed", "response": "..." }
# 後続メッセージ — contextId を指定
grafana-assistant prompt "Now break those down by handler label" -c 62a8823a-... --json
注意事項:
-c なしでは、毎回まったく新しい会話として扱われ、過去の内容は記憶されません{
"taskId": "a2a-xxx",
"contextId": "uuid",
"agentId": "grafana_assistant_cli",
"status": "completed",
"response": "Assistant からの完全なテキスト応答..."
}
ステータス値: completed(完了)、failed(失敗)、timeout(タイムアウト)、canceled(キャンセル)、unknown(不明)
フルスクリーンの対話画面を開きます。セッション内でコンテキストは自動的に保持されます。
grafana-assistant chat
grafana-assistant chat -i <インスタンス> # 特定のインスタンス
grafana-assistant chat -a <agent-id> # 特定のエージェント
grafana-assistant chat --continue # 前回のセッションを再開
grafana-assistant chat -c <context-id> # 特定の会話を再開
grafana-assistant chat --timeout 600 # カスタムタイムアウト(デフォルト: 300秒)
チャット内コマンド: /clear または /new(新規会話)、/exit または /quit または Ctrl+C(終了)、/help
grafana-assistant agents
grafana-assistant agents --json
grafana-assistant agents -i <インスタンス>
AI コーディングエージェント用の AGENTS.md ファイルを生成します:
grafana-assistant agents-md <対象ディレクトリ>
grafana-assistant agents-md <対象ディレクトリ> --dry-run # 標準出力に表示
grafana-assistant agents-md <対象ディレクトリ> -o AGENTS.md # カスタム出力名
grafana-assistant agents-md <対象ディレクトリ> --force # 既存ファイルを上書き
grafana-assistant agents-md <対象ディレクトリ> --non-interactive # 確認をスキップ
トンネルを使用することで、Grafana Assistant がローカルマシン上でツールを実行できるようになります。
grafana-assistant tunnel auth # 認証(ブラウザを開く)
grafana-assistant tunnel connect # フォアグラウンド接続(ファイルシステムはデフォルト有効)
grafana-assistant tunnel connect --all # 認証済みの全インスタンス
grafana-assistant tunnel connect --terminal # ターミナルツール有効化
grafana-assistant tunnel daemon install # システムサービスとしてインストール
grafana-assistant tunnel daemon install --all # 全インスタンスに接続
grafana-assistant tunnel daemon install --start-on-login=false
grafana-assistant tunnel daemon start|stop|restart|status
grafana-assistant tunnel daemon logs [--follow]
grafana-assistant tunnel daemon uninstall
ファイルシステム:
読み取り専用、プロジェクト範囲内のみ。~/.ssh、~/.gnupg、~/.aws/credentials、**/.env、**/secrets.yaml、**/*.pem、**/*.key はブロック。ファイルサイズ上限: 1MB
ターミナル:
危険なコマンド(rm -rf /、mkfs、dd、フォークボムなど)をブロック。デフォルトは最小限の環境。設定ファイルで許可リスト/ブロックリストを指定して カスタマイズ可能。
このツールは HTTPS でリクエストを Grafana に送信します。Shell ツール呼び出し時は常に required_permissions: ["all"] を指定してください。これにより、サンドボックス制限による TLS 証明書検証の失敗を回避できます。
プロンプトは Assistant が実行するツール数に応じて 30~300 秒かかる可能性があります。複雑なクエリの場合は block_until_ms を 300000(5 分)以上に設定してください。
CLI エージェントは Grafana Assistant の読み取り専用版です。データを照会・分析しますが、Grafana の内容を変更することはできません。
主な機能:
従う主なワークフロー:
CLI では利用不可(Web/Slack のみ):
CLI tool for interacting with Grafana Assistant via the A2A API.
The grafana-assistant binary must already be installed and available on $PATH. Do not attempt to install it automatically. If the command is not found, stop and tell the user to install it first.
Installation instructions and pre-built binaries: github.com/grafana/assistant-cli
A Docker image is also available: github.com/grafana/assistant-cli/pkgs
GRAFANA_ASSISTANT_CONFIG env var (if set)./grafana-assistant.yaml (current directory, use --local flag)~/.config/grafana-assistant/config.yamlcurrent-instance: prod
instances:
localhost:
url: http://localhost:3000
token: glsa_abcd1234
prod:
url: https://mystack.grafana.net
token: ${GRAFANA_PROD_TOKEN} # env var expansion supported
projects:
- name: my-app
path: ~/projects/my-app
tunnel:
tools:
filesystem:
allowed_paths: [/var/log/myapp]
deny_paths: ["**/*.key", "**/secrets.yaml"]
terminal:
allowed_commands: [git, kubectl, docker]
deny_commands: ["rm -rf"]
passthrough_env: [AWS_PROFILE, KUBECONFIG]
| Variable | Description |
|---|---|
GRAFANA_URL |
Grafana instance URL (overrides config) |
GRAFANA_SA_TOKEN |
Service account token (overrides config) |
GRAFANA_ASSISTANT_CONFIG |
Override config file path |
--url and --token flagsGRAFANA_URL and GRAFANA_SA_TOKEN env vars--instance <name> flagcurrent-instance from config filegrafana-assistant config set-instance mystack --url https://mystack.grafana.net
grafana-assistant config use-instance mystack
grafana-assistant auth # opens browser for PKCE auth
grafana-assistant chat # start interactive chat
The Assistant CLI User role is required for browser auth. Users with Editor role or above get this automatically. For custom roles, include the grafana-assistant-app.tokens:access permission.
grafana-assistant config set-instance <name> -u <url> -t <token>
grafana-assistant config use-instance <name>
grafana-assistant config current
grafana-assistant config list
grafana-assistant config delete-instance <name>
grafana-assistant config path
Token supports env var references: -t '${MY_TOKEN_VAR}'
Projects are named directories the assistant can access via the tunnel.
grafana-assistant config add-project <name> <path>
grafana-assistant config list-projects
grafana-assistant config remove-project <name>
grafana-assistant prompt sends a single message and returns the response. This is the primary command to use from Cursor.
grafana-assistant prompt "your message here"
grafana-assistant prompt "your message" --json # JSON output with contextId
grafana-assistant prompt "your message" -c <context-id> # continue a conversation
grafana-assistant prompt "your message" -a <agent-id> # specific agent
grafana-assistant prompt "your message" --wait=false # fire and forget
Each prompt starts a new, independent conversation by default. To thread follow-up messages into the same conversation (so the assistant remembers prior context), you must:
--json on the first prompt to capture the contextId-c <contextId> on all subsequent prompts# First message — capture contextId
grafana-assistant prompt "Show me metrics for the assistant service in ops-eu-south-0" --json
# Response: { "contextId": "62a8823a-...", "status": "completed", "response": "..." }
# Follow-ups — pass contextId
grafana-assistant prompt "Now break those down by handler label" -c 62a8823a-... --json
Caveats:
-c, every prompt is a brand new conversation with no memory.{
"taskId": "a2a-xxx",
"contextId": "uuid",
"agentId": "grafana_assistant_cli",
"status": "completed",
"response": "The assistant's full text response..."
}
Possible status values: completed, failed, timeout, canceled, unknown.
Opens a full-screen TUI. Context is maintained automatically within the session.
grafana-assistant chat
grafana-assistant chat -i <instance> # specific instance
grafana-assistant chat -a <agent-id> # specific agent
grafana-assistant chat --continue # resume previous session
grafana-assistant chat -c <context-id> # resume specific conversation
grafana-assistant chat --timeout 600 # custom timeout (default: 300s)
In-chat commands: /clear or /new (new conversation), /exit or /quit or Ctrl+C (quit), /help.
grafana-assistant agents
grafana-assistant agents --json
grafana-assistant agents -i <instance>
Generate an AGENTS.md file for AI coding agents:
grafana-assistant agents-md <target-directory>
grafana-assistant agents-md <target-directory> --dry-run # preview to stdout
grafana-assistant agents-md <target-directory> -o AGENTS.md # custom output name
grafana-assistant agents-md <target-directory> --force # overwrite existing
grafana-assistant agents-md <target-directory> --non-interactive # skip prompts
The tunnel allows Grafana Assistant to execute tools on your local machine.
grafana-assistant tunnel auth # authenticate (opens browser)
grafana-assistant tunnel connect # foreground connection (filesystem enabled by default)
grafana-assistant tunnel connect --all # all authenticated instances
grafana-assistant tunnel connect --terminal # enable terminal tool
grafana-assistant tunnel daemon install # install as system service
grafana-assistant tunnel daemon install --all # connect all instances
grafana-assistant tunnel daemon install --start-on-login=false
grafana-assistant tunnel daemon start|stop|restart|status
grafana-assistant tunnel daemon logs [--follow]
grafana-assistant tunnel daemon uninstall
Filesystem: read-only, project-scoped, blocks ~/.ssh, ~/.gnupg, ~/.aws/credentials, **/.env, **/secrets.yaml, **/*.pem, **/*.key. File size limit: 1MB.
Terminal: blocks dangerous commands (rm -rf /, mkfs, dd, fork bombs), minimal environment by default. Configurable via allow/deny lists in config.
The CLI makes HTTPS requests to Grafana. Always use required_permissions: ["all"] in Shell tool calls — this avoids TLS certificate verification failures from sandbox restrictions.
Prompts can take 30s–300s depending on how many tools the assistant invokes. Set block_until_ms to at least 300000 (5 min) for complex queries.
The CLI agent is a read-only Grafana Assistant. It queries and analyzes data but cannot modify anything in Grafana.
Capabilities:
Workflows it follows:
Not available in CLI (web/Slack only):
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。