Anonymous usage statistics
The Grafana MCP server can report limited usage statistics about itself to Grafana Labs. Grafana Labs uses this data to improve tools and investigate failures.
To preserve anonymity, the emitted data describes the shape of usage only. Things like tool arguments, resource names, dashboards, queries, log lines, error messages and credentials are never sent, and neither is the Grafana instance’s URL, hostname, stack slug, organisation name or organisation ID.
Nothing an MCP client reports about itself - things like name and version - is collected. Any other value that comes from outside the binary is reduced to a fixed vocabulary before being emitted, so we don’t emit a potentially-identifying value.
Note
Usage statistics reporting is disabled by default. To disable reporting explicitly, refer to Opt out.
Before you begin
- Install the Grafana MCP server. Refer to Set up the Grafana MCP server.
- Make sure you can change the server’s startup flags or environment variables. If you start the server from an MCP client, refer to Client configuration examples.
Understand which data is collected
Each server process generates one identifier, process_id, as a random UUID in memory when it starts.
Every event carries the following data:
Server-side enrichment
Reports are received by Grafana’s usage-stats service, the same service that receives usage reports from Grafana, Loki, Mimir and Tempo. On receipt, the service adds two pieces of information derived from the connection rather than from the event:
- A coarse geographic region, for example, a country or subdivision, taken from headers added by the CDN edge.
- The network organisation name from a whois lookup of the connecting IP address, which typically resolves to your ISP, your cloud provider or your employer’s network.
Inspect what would be sent
To inspect the report, set either the --usage-stats=log flag or the GRAFANA_USAGE_STATS=log environment variable. In this mode, the server prints each event to stderr and doesn’t send it:
GRAFANA_USAGE_STATS=log mcp-grafanaThe server prints a report every four hours and on graceful shutdown. To inspect a report sooner, stop the server gracefully after you run the tool calls you want to inspect. If you run the server in a terminal, press Ctrl+C.
Under the stdio transport, stderr goes wherever your MCP client sends the server’s logs. Read the printed events there.
How the report is sent
Because a failed report is never retried, and the counters reset when a report is built rather than when it arrives, a total summed across a process_id is a floor rather than an exact count. report_seq is how a missing report is identified.
To send reports somewhere else, set GRAFANA_USAGE_STATS_ENDPOINT to another URL. This changes the destination only; it is not an opt-out.
Opt out
Use one of the following controls. The --usage-stats flag overrides GRAFANA_USAGE_STATS, and both override DO_NOT_TRACK. Unrecognized mode values disable reporting. Only DO_NOT_TRACK=1 has an effect; other values don’t change the reporting mode.
The controls appear in order of precedence, highest first:
--usage-statsflag: set it toenabled,disabledorlog.mcp-grafana --usage-stats=disabledGRAFANA_USAGE_STATSenvironment variable: set it toenabled,disabledorlog.export GRAFANA_USAGE_STATS=disabledDO_NOT_TRACKenvironment variable: set it to1to disable reporting, following the cross-tool DO_NOT_TRACK convention.export DO_NOT_TRACK=1
Next steps
- To configure other server options, refer to Command-line flags.
- To monitor your server, refer to Observability: metrics and tracing.


