get_health
Grafana health
Check the Grafana instance is reachable and return its version and database status.
Takes no parameters.

io.github.dockndevaiPublished by GitHub account dockndevaiv0.3.3Updated Oct 27, 2026
Search & edit Grafana dashboards, query datasources (PromQL/LogQL/SQL), inspect alerts.
Local MCP server for Grafana: lets an assistant search and read dashboards, query Prometheus/Loki/SQL datasources, and inspect alerts and annotations.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
A safe-by-default Model Context Protocol server for Grafana. It lets an agent explore and operate Grafana — search dashboards, read the dashboard JSON model, list and query datasources (Prometheus / Loki / SQL), inspect alert rules and annotations, and (in higher modes) create/update dashboards and folders, write annotations, and delete.
Part of the dockndevai MCP server suite — one governance model across all of them.
The server starts read-only (see Safe by default); higher-capability tools are only registered when you raise the mode.
You need a Grafana service account token (Administration → Service accounts → Add service account → Add token). Give it the least role that works — Viewer for read-only use, Editor to create/update, Admin only if you must delete.
See docs/CLIENTS.md for Claude Code / Cursor / Codex / VS Code / Windsurf snippets, and .env.example for every supported variable.
The access model is enforced by src/security.ts — defence in depth on top of the service-account token's own role:
GRAFANA_MODE — read-only (default) → read-write → admin. A tool is registered only if the mode allows its capability. Read-only exposes the 11 read tools; edits need read-write; deletes need admin.GRAFANA_ALLOW_DELETE — deletes are irreversible, so on top of admin mode they also require this flag.GRAFANA_FOLDER_ALLOWLIST / GRAFANA_PROTECTED_FOLDERS — confine which folders can be written to; mark folders (e.g. production) that may be read but never modified or deleted.GRAFANA_DATASOURCE_ALLOWLIST — restrict which datasources query_datasource may hit.GRAFANA_DRY_RUN — validate and log writes without executing them.GRAFANA_AUDIT_LOG — a JSON audit line per guarded operation, on stderr (default on).GRAFANA_ALLOW_DELETE gate.secureJsonData, passwords and tokens are stripped from every response.See SECURITY.md.
Conventions for the dashboard JSON model, panel/target shapes, PromQL/LogQL/SQL query patterns, folder organisation and safe editing live in the bundled skill: .claude/skills/grafana-dashboards-and-queries/SKILL.md. Agents that load it can build and edit dashboards to a consistent standard without being re-taught each time.
MIT
Source: README.md at commit 3216c7b
Grafana health
Check the Grafana instance is reachable and return its version and database status.
Takes no parameters.
Search dashboards & folders
Search dashboards and folders by name/tag. Use this first to find a dashboard's UID before get_dashboard. Returns title, uid, type (dash-db | dash-folder), folder and tags.
tagtypelimitqueryList dashboards
List dashboards (optionally filtered by tag). Shorthand for search with type=dash-db.
taglimitGet dashboard
Return the full dashboard JSON model (panels, targets, templating, time) plus meta (folder, version, url) for a dashboard UID. This is the model you edit and pass back to create_or_update_dashboard.
uidrequiredList folders
List dashboard folders with their UIDs and titles.
Takes no parameters.
Get folder
Return a folder's details by UID.
uidrequiredList datasources
List configured datasources (uid, name, type, url). Secrets (secureJsonData, passwords, tokens) are never returned. Use the uid with query_datasource.
Takes no parameters.
Get datasource
Return a single datasource by UID (secrets redacted).
uidrequiredQuery a datasource
Run a query against a datasource through Grafana's unified query API and return the result frames. For Prometheus/Loki set `expr` (PromQL / LogQL); for SQL datasources set `rawSql`. Reading data only — this never mutates anything. Use a bounded time range and a small maxDataPoints to keep results manageable.
toexprfromrawSqldatasourceUidrequiredmaxDataPointsList alert rules
List Grafana-managed alert rules (via the provisioning API): title, condition, folder, state.
Takes no parameters.
List annotations
List annotations (events overlaid on graphs), optionally within a time range or by tag.
tofromtagslimit90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
npx -y @dockndevai/mcp-grafana{ "mcpServers": { "grafana": { "command": "npx", "args": ["-y", "@dockndevai/mcp-grafana"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_TOKEN": "glsa_...", "GRAFANA_MODE": "read-only" } } }}npm installnpm run buildGRAFANA_URL=http://localhost:3000 GRAFANA_TOKEN=glsa_… node dist/index.js# introspect without a live Grafana:echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | GRAFANA_TOKEN=x node dist/index.js