Mcp Grafana

io.github.dockndevai由 GitHub 账号 dockndevai 发布v0.3.3更新于 Oct 27, 2026

Search & edit Grafana dashboards, query datasources (PromQL/LogQL/SQL), inspect alerts.

已验证STDIO仅桌面安全与监控数据与分析

概览

AI 生成的概览

面向 Grafana 的本地 MCP 服务器:让助手搜索和读取仪表板、查询 Prometheus/Loki/SQL 数据源,并查看告警与注释。

可以做什么
  • 检查实例健康状态与版本
  • 搜索并列出仪表板与文件夹,读取仪表板的完整 JSON 模型
  • 列出数据源,并通过统一查询接口执行 PromQL、LogQL 或 SQL 查询
  • 列出 Grafana 托管的告警规则与注释
  • 在读写模式下创建或更新仪表板、创建文件夹、写入注释
  • 在管理员模式并开启删除开关后,删除仪表板、文件夹与注释
适用场景
适合让助手操作已有的 Grafana 实例:查找仪表板、读取其 JSON、执行指标或日志查询、查看告警规则,或维护仪表板与注释。默认只读,也适合只想做查看的团队。
运行要求
通过 npx 从 npm 包在本地运行。需要 GRAFANA_URL 指向 Grafana 实例,并在 GRAFANA_TOKEN 中提供服务账号令牌,同时能访问该实例的网络。GRAFANA_MODE 选择只读(默认)、读写或管理员;删除还需 GRAFANA_ALLOW_DELETE。
安装前请注意
需要 Grafana 服务账号令牌,应按最小权限授予(只读用 Viewer)。读写模式可创建或修改仪表板、文件夹和注释;管理员模式配合删除开关可不可逆地删除它们。可选的文件夹与数据源白名单、受保护文件夹、试运行和审计日志存在但默认未开启。响应中会剥离数据源密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Grafana,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcp-grafana

[npm] [CI] [licence]

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.

[mcp-grafana — safe by default: read-only exposes 11 tools; raising the access mode unlocks writes and (gated) deletes]

What it gives an agent

The server starts read-only (see Safe by default); higher-capability tools are only registered when you raise the mode.

ToolForNeeds mode
get_healthcheck the instance is up, versionread-only
searchfind dashboards & folders by name/tag (get UIDs)read-only
list_dashboards / list_foldersenumerate dashboards / foldersread-only
get_dashboardthe full dashboard JSON model + metaread-only
list_datasources / get_datasourcedatasources (secrets redacted)read-only
query_datasourcerun PromQL / LogQL / SQL via the unified query APIread-only
list_alert_rulesGrafana-managed alert rulesread-only
list_annotationsevents overlaid on graphsread-only
create_or_update_dashboardupsert a dashboard (versioned, reversible)read-write
create_foldercreate a folderread-write
create_annotationmark a deploy/incident on graphsread-write
delete_dashboard / delete_folder / delete_annotationdelete (irreversible)admin + GRAFANA_ALLOW_DELETE

Install

bash
npx -y @dockndevai/mcp-grafana

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.

Configure

json
{  "mcpServers": {    "grafana": {      "command": "npx",      "args": ["-y", "@dockndevai/mcp-grafana"],      "env": {        "GRAFANA_URL": "http://localhost:3000",        "GRAFANA_TOKEN": "glsa_...",        "GRAFANA_MODE": "read-only"      }    }  }}

See docs/CLIENTS.md for Claude Code / Cursor / Codex / VS Code / Windsurf snippets, and .env.example for every supported variable.

Safe by default

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).
  • Interactive confirmation — when the client supports MCP elicitation, deleting a dashboard/folder/annotation prompts the human to approve before it runs; clients that can't elicit fall back to the GRAFANA_ALLOW_DELETE gate.
  • Secrets are never returned — datasource secureJsonData, passwords and tokens are stripped from every response.

[Interactive confirmation — the agent asks to delete a dashboard; the server pauses and asks the human via MCP elicitation. Declining leaves the dashboard untouched; approving proceeds.]

See SECURITY.md.

Working with dashboards & queries

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.

Developing

bash
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

Licence

MIT

来源:README.md,提交 3216c7b

工具

11

get_health

Grafana health

Check the Grafana instance is reachable and return its version and database status.

无需输入参数。

list_dashboards

List dashboards

List dashboards (optionally filtered by tag). Shorthand for search with type=dash-db.

输入参数taglimit

get_dashboard

Get 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.

输入参数uid必填

list_folders

List folders

List dashboard folders with their UIDs and titles.

无需输入参数。

get_folder

Get folder

Return a folder's details by UID.

输入参数uid必填

list_datasources

List datasources

List configured datasources (uid, name, type, url). Secrets (secureJsonData, passwords, tokens) are never returned. Use the uid with query_datasource.

无需输入参数。

get_datasource

Get datasource

Return a single datasource by UID (secrets redacted).

输入参数uid必填

query_datasource

Query 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.

输入参数toexprfromrawSqldatasourceUid必填maxDataPoints

list_alert_rules

List alert rules

List Grafana-managed alert rules (via the provisioning API): title, condition, folder, state.

无需输入参数。

list_annotations

List annotations

List annotations (events overlaid on graphs), optionally within a time range or by tag.

输入参数tofromtagslimit

版本历史

3
  1. v0.3.3最新Oct 26, 2026
  2. v0.3.0Sep 29, 2026
  3. v0.2.3Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分