Grafana Assistant CLI を使用して、A2A API(エージェント間通信規格)経由で Grafana Assistant と連携するためのツールです。インストール、設定、プロンプト入力、会話の流れの保持、運用調査の実践的なパターンをカバーしています。 次のような場合に使用: - ユーザーが grafana-assistant、Grafana Assistant CLI、assistant tunnel について言及した場合 - ユーザーが Assistant 経由で Grafana インスタンスにクエリを実行したい場合
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 <name> フラグ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 User ロール が必要です。Editor ロール以上のユーザーは自動的にこれを取得します。カスタムロールの場合は、grafana-assistant-app.tokens:access パーミッションを含めてください。
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
トークンは環境変数の参照をサポート: -t '${MY_TOKEN_VAR}'
プロジェクトはアシスタントが トンネル経由で アクセス可能な名前付きディレクトリです。
grafana-assistant config add-project <name> <path>
grafana-assistant config list-projects
grafana-assistant config remove-project <name>
grafana-assistant prompt は単一のメッセージを送信し、応答を返します。これは Cursor から使用する主要なコマンドです。
grafana-assistant prompt "メッセージ"
grafana-assistant prompt "メッセージ" --json # contextId を含む JSON 出力
grafana-assistant prompt "メッセージ" -c <context-id> # 会話を継続
grafana-assistant prompt "メッセージ" -a <agent-id> # 特定のエージェント
grafana-assistant prompt "メッセージ" --wait=false # 送信後に待たない
デフォルトでは、各プロンプトは新しい独立した会話として開始されます。フォローアップメッセージを同じ会話にスレッド化し(アシスタントが過去のやり取りを記憶するようにするには)、以下の手順が必要です:
--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": "アシスタントの完全なテキスト応答..."
}
考えられるステータス値: completed(完了)、failed(失敗)、timeout(タイムアウト)、canceled(キャンセル)、unknown(不明)。
全画面表示の対話型インターフェースを開きます。セッション内でコンテキストが自動的に保持されます。
grafana-assistant chat
grafana-assistant chat -i <instance> # 特定のインスタンス
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 <instance>
AI コーディングエージェント向けの AGENTS.md ファイルを生成します:
grafana-assistant agents-md <target-directory>
grafana-assistant agents-md <target-directory> --dry-run # プレビューを標準出力に表示
grafana-assistant agents-md <target-directory> -o AGENTS.md # カスタム出力ファイル名
grafana-assistant agents-md <target-directory> --force # 既存ファイルを上書き
grafana-assistant agents-md <target-directory> --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、無限フォーク)をブロック。デフォルトは最小限の環境。設定ファイルの許可・拒否リストで設定可能。
CLI は Grafana に HTTPS リクエストを発行します。Shell ツール呼び出しで常に required_permissions: ["all"] を使用してください。これにより、サンドボックス制限による TLS 証明書検証エラーを回避できます。
プロンプトはアシスタントが実行するツールの数に応じて 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 による自動翻訳です。