Dashmetrics

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 3, 2026

Grafana dashboards, datasources, Prometheus, Loki, and alerts from your MCP client.

VerifiedSTDIODesktop onlySecurity & Monitoring

Overview

Dashmetrics's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open Dashmetrics in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

dashmetrics

dashmetrics gives an MCP client or a terminal read access to a Grafana instance: dashboard search and retrieval, datasource inspection, Prometheus range queries with metric and label discovery, Loki log queries with label discovery, and the provisioned alert rules and contact points. It is a clean-room rebuild of the documented core of Grafana's MCP tool surface, built from Grafana's public HTTP API documentation.

Point it at an instance with GRAFANA_URL (default http://localhost:3000) and authenticate with a service account token in GRAFANA_SERVICE_ACCOUNT_TOKEN, sent as a Bearer token. The legacy GRAFANA_API_KEY variable is accepted as a fallback when the primary variable is unset. When no token is set, every call fails with an error that names GRAFANA_SERVICE_ACCOUNT_TOKEN; when the instance is unreachable, the error names the base URL it tried.

Install

bash
npx @reneturcios/dashmetrics list_datasources

Or run the container image:

bash
docker run -i -e GRAFANA_URL -e GRAFANA_SERVICE_ACCOUNT_TOKEN ghcr.io/cloudcorprecords/dashmetrics

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

Every MCP tool is also a CLI subcommand. Tool arguments are passed as one JSON object with --json:

bash
export GRAFANA_URL=http://localhost:3000export GRAFANA_SERVICE_ACCOUNT_TOKEN=<redacted>
dashmetrics search_dashboards --json '{"query": "api", "limit": 5}'dashmetrics get_dashboard_by_uid --json '{"uid": "dash-1"}'dashmetrics list_datasourcesdashmetrics query_prometheus --json '{"datasourceUid": "prom1", "expr": "up", "start": "now-1h", "end": "now", "step": "15s"}'dashmetrics query_loki_logs --json '{"datasourceUid": "loki1", "query": "{job=\"api\"}"}'dashmetrics list_alert_rules
dashmetrics --version

Results print as JSON. Exit codes: 0 on success, 1 when an API call fails (including a missing token), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/dashmetrics mcp

MCP client configuration:

json
{  "mcpServers": {    "dashmetrics": {      "command": "npx",      "args": ["-y", "@reneturcios/dashmetrics", "mcp"],      "env": {        "GRAFANA_URL": "http://localhost:3000",        "GRAFANA_SERVICE_ACCOUNT_TOKEN": "your Grafana service account token"      }    }  }}

Tools

ToolInput (required in bold)What it does
search_dashboardsquery, limit, typeSearches dashboards/folders (/api/search).
get_dashboard_by_uiduidReturns one dashboard by uid.
list_datasources—Lists configured datasources.
get_datasource_by_uiduidReturns one datasource by uid.
query_prometheusdatasourceUid, expr, start, end, stepPrometheus range query via the datasource proxy.
list_prometheus_metric_namesdatasourceUid, regexLists metric names, regex-filtered.
list_prometheus_label_namesdatasourceUid, metricLists label names.
list_prometheus_label_valuesdatasourceUid, label, metricLists one label's values.
query_loki_logsdatasourceUid, query, start, end, limitLoki LogQL range query via the proxy.
list_loki_label_namesdatasourceUidLists Loki label names.
list_loki_label_valuesdatasourceUid, labelLists one Loki label's values.
list_alert_ruleslimitLists provisioned alert rules.
get_alert_rule_by_uiduidReturns one provisioned alert rule.
list_contact_pointslimitLists provisioned contact points.

Prometheus and Loki calls go through Grafana's documented datasource proxy paths (/api/datasources/proxy/uid/{uid}/...). Out of scope: incident creation/update, on-call schedules, Sift/Asserts, and admin/user management — see BUILD-REPORT.md.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Source: README.md at commit 59a7e24

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestNov 3, 2026

Score

50% 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.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts