Grafana
My agent skills
npx -y skills add chenwei791129/agent-skills --skill grafanaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when operating a Grafana instance from the terminal — listing/searching dashboards, querying datasources, inspecting alert rules, running PromQL/LogQL/TraceQL over metrics/logs/traces, or pulling/pushing dashboards as code (GitOps). Triggers on Grafana, gcx, PromQL, LogQL, dashboard, alerts/告警, 查 Grafana, dashboard 管理, 監控查詢. Use this instead of a Grafana MCP server or raw curl/grafana-backup/grizzly. Self-hosted focused.
SKILL.md
6.1 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Grafana (via gcx CLI)
Operate Grafana with gcx, the official CLI:
dashboards, datasources, alerts, metrics/logs/traces. It replaces a Grafana MCP
server.
Do NOT use raw curl against the Grafana HTTP API, and do NOT use
grafana-backup-tool / grizzly. Those are pre-skill fallbacks. gcx gives you
structured output, pagination, error handling, and token-efficient output, and
its commands evolve with the Grafana version.
Environment assumption: this skill targets self-hosted (OSS / Enterprise). Auth uses a service account token +
org-id. Grafana Cloud-only features (SLO, Synthetic Monitoring, IRM, k6) do not apply — when asked for those, say so and propose a self-hosted-viable alternative.
🔑 Core: discover before you act (the key to replacing MCP)
gcx has many commands and they evolve, so never memorize or guess commands. Discover them with progressive disclosure to save tokens:
gcx help-tree --depth 1 -o text # Step 1: list all top-level groups (~30 lines)
gcx help-tree <group> -o text # Step 2: expand one group's subtree
gcx <group> <subcommand> --help # Step 3: see exact flags and args
When unsure of syntax, run those three steps. Do not web-search grafana.com docs, and do not guess API paths.
Prerequisite check
gcx --version
If missing, download a pre-built binary from the
GitHub releases (no Go toolchain
needed) — see references/setup.md for details:
ver=$(curl -fsSL https://api.github.com/repos/grafana/gcx/releases/latest \
| sed -n 's/.*"tag_name": *"v\{0,1\}\([^"]*\)".*/\1/p')
os=$(uname -s | tr '[:upper:]' '[:lower:]')
arch=$(uname -m); [ "$arch" = "x86_64" ] && arch=amd64; [ "$arch" = "aarch64" ] && arch=arm64
curl -fsSL "https://github.com/grafana/gcx/releases/download/v${ver}/gcx_${ver}_${os}_${arch}.tar.gz" \
| sudo tar -xz -C /usr/local/bin gcx
Intent-to-group quick reference (self-hosted groups)
When you already know the user's intent, go straight to the right group and skip discovery:
| Intent | Group | Example |
|---|---|---|
| Dashboards / folders / resource CRUD | resources | gcx resources get dashboards |
| List / search dashboards | dashboards | gcx dashboards list |
| Alert rule definitions | alert | gcx alert rules list |
| Currently firing alerts (live state) | alert | gcx alert instances list --state firing |
| PromQL queries | metrics | gcx metrics query -d <uid> 'up' |
| LogQL queries | logs | gcx logs query -d <uid> '{app="foo"}' |
| Trace queries (Tempo) | traces | gcx traces query -d <uid> '{ status = error }' |
| Profiling (Pyroscope) | profiles | gcx profiles query |
| Datasource info / queries | datasources | gcx datasources list |
| Endpoints with no dedicated command (last resort) | api | gcx api /api/v1/... |
If no command exists for the request, say so and propose the nearest viable
flow. Don't use gcx api when a dedicated command exists.
Verify context before acting
gcx config check # validate the active context and test connectivity
gcx config current-context # show the active context name
gcx config use-context <name>
gcx <any-command> --context <name> # target one context without switching
First-time setup (install, self-hosted auth, multi-context, troubleshooting):
see references/setup.md.
Output control
| Intent | Flag |
|---|---|
| Structured output (for parsing) | -o json |
| Select fields | --json <f1,f2> (use --json list to discover fields) |
| Don't truncate the table | --no-truncate |
| YAML | -o yaml |
Default to -o json for programmatic work. Prefer gcx's built-in --json
field selection over piping to jq/python — gcx itself hints "no external
parsing needed". Discover fields with --json list, then select with
--json a,b.
Parsing pitfall: with
-o jsonthe JSON goes to stdout, but a line{"class":"hint",...}goes to stderr. When parsing externally, do not use2>&1 | jq(it merges the hint and breaks parsing) — read stdout directly (use2>/dev/nullif needed).
Safe mutation workflow
For any write operation, follow this order (skip steps only when the user explicitly asks for speed):
- Verify context — confirm which environment you're operating on
- Read current state — list / get the resource first
- Build payload from a template —
gcx resources schemas <kind>/gcx resources examples <kind>, don't hand-craft it - Preview — run
--dry-runwhere available - Apply — create / update / delete
- Verify — get the resource again to confirm the change landed
Parallelism
gcx commands are stateless API calls. Issue multiple queries with no output dependency as parallel Bash calls in a single message (list/get across resources, multiple schema/example fetches, independent queries). Only serialize when a later call needs an earlier call's output.
Secret safety
Never read the config file directly (it contains a plaintext token). Use
gcx config view (it redacts secrets) to inspect. When passing a token to an
external tool, use a shell variable, not an inline value.
Per-task recipes (load on demand)
- Query metrics / logs / traces (PromQL / LogQL / TraceQL) →
references/queries.md - Dashboards as code (pull / push / validate / GitOps) →
references/dashboards.md - Install and self-hosted auth setup, troubleshooting →
references/setup.md
Gives 0 of the 12 instructions most mcp tooling skills give in ~1.5k tokens
Counted across 638 of the 750 authors here whose files we hold, read 2026-08-06
- create ten complex read-only evaluation questionsin 71 of 638, across 17 files
- test servers using MCP Inspectorin 60 of 638, across 18 files
- provide actionable error messagesin 56 of 638, across 14 files
- prioritize comprehensive API coverage over specific workflowsin 54 of 638, across 12 files
- use TypeScript and Streamable HTTP for remote serversin 53 of 638, across 7 files
- define structured output schemas where possiblein 51 of 638, across 9 files
- use Zod or Pydantic for input schemasin 48 of 638, across 6 files
- fetch MCP specification pages with markdown suffixin 46 of 638, across 4 files
- load framework documentation using WebFetchin 45 of 638, across 3 files
- verify each evaluation answer independentlyin 45 of 638, across 3 files
- implement API client with authentication and paginationin 45 of 638, across 3 files
- Define input schemas with validationin 28 of 638, across 10 files
Said here and by no other author read
- use the gcx cli
- check the gcx version before operating
- discover command syntax using help-tree
- use a dedicated command over the generic api command
- verify the current context before acting
- use json output for programmatic work
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.