Grafana MCP server
A [Model Context Protocol][mcp] (MCP) server for Grafana.
This provides access to your Grafana instance and the surrounding ecosystem.
Quick Start
Requires uv. Add the following to your MCP client configuration (e.g. Claude Desktop, Cursor):
{
"mcpServers": {
"grafana": {
"command": "uvx",
"args": ["mcp-grafana"],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "<your service account token>"
}
}
}
}For Grafana Cloud, replace GRAFANA_URL with your instance URL (e.g. https://myinstance.grafana.net). See Usage for more installation options including Docker, binary, and Helm.
Requirements
- Grafana version 9.0 or later is required for full functionality. Some features, particularly datasource-related operations, may not work correctly with earlier versions due to missing API endpoints.
Features
The following features are currently available in MCP server. This list is for informational purposes only and does not represent a roadmap or commitment to future features.
Dashboards
- Search for dashboards: Find dashboards by title or other metadata
- Get dashboard by UID: Retrieve full dashboard details using its unique identifier. Warning: Large dashboards can consume significant context window space.
- Get dashboard summary: Get a compact overview of a dashboard including title, panel count, panel types, variables, and metadata without the full JSON to minimize context window usage
- Get dashboard property: Extract specific parts of a dashboard using JSONPath expressions (e.g.,
$.title,$.panels[*].title) to fetch only needed data and reduce context window consumption - Update or create a dashboard: Modify existing dashboards or create new ones. Warning: Requires full dashboard JSON which can consume large amounts of context window space.
- Patch dashboard: Apply specific changes to a dashboard without requiring the full JSON, significantly reducing context window usage for targeted modifications
- Get panel queries and datasource info: Get the title, query string, and datasource information (including UID and type, if available) from every panel in a dashboard
Run Panel Query
Note: Run panel query tools are disabled by default. To enable them, add
runpanelqueryto your--enabled-toolsflag.
- Run panel query: Execute a dashboard panel's query with custom time ranges and variable overrides.
Context Window Management
The dashboard tools now include several strategies to manage context window usage effectively (issue #101):
- Use
get_dashboard_summaryfor dashboard overview and planning modifications - Use
get_dashboard_propertywith JSONPath when you only need specific dashboard parts - Avoid
get_dashboard_by_uidunless you specifically need the complete dashboard JSON
Datasources
- List and fetch datasource information: View all configured datasources and retrieve detailed information about each.
- Supported datasource types: Prometheus, Loki, ClickHouse, CloudWatch, Elasticsearch, OpenSearch, Snowflake, Athena.
Query Examples
Note: Query examples tools are disabled by default. To enable them, add
examplesto your--enabled-toolsflag.
- Get query examples: Retrieve example queries for different datasource types to learn query syntax.
Prometheus Querying
- Query Prometheus: Execute PromQL queries (supports both instant and range metric queries) against Prometheus datasources.
- Query Prometheus metadata: Retrieve metric metadata, metric names, label names, and label values from Prometheus datasources.
- Query histogram percentiles: Calculate histogram percentile values (p50, p90, p95, p99) using histogram_quantile.
Loki Querying
- Query Loki logs and metrics: Run both log queries and metric queries using LogQL against Loki datasources.
- Query Loki metadata: Retrieve label names, label values, and stream statistics from Loki datasources.
- Query Loki patterns: Retrieve log patterns detected by Loki to identify common log structures and anomalies.
InfluxDB Querying
Note: InfluxDB tools are disabled by default. To enable them, add
influxdbto your--enabled-toolsflag.
- Query InfluxDB: Execute queries against InfluxDB datasources using either InfluxQL (v1.x) or Flux (v2.x). The dialect is inferred from the datasource configuration, or can be set explicitly via the
dialectparameter.
ClickHouse Querying
Note: ClickHouse tools are disabled by default. To enable them, add
clickhouseto your--enabled-toolsflag.
- List ClickHouse tables: List all tables in a ClickHouse database with row counts and sizes.
- Describe table schema: Get column names, types, and metadata for a ClickHouse table.
- Query ClickHouse: Execute SQL queries with Grafana macro and variable substitution support.
CloudWatch Querying
Note: CloudWatch tools are disabled by default. To enable them, add
cloudwatchto your--enabled-toolsflag.
- List CloudWatch namespaces: Discover available AWS CloudWatch namespaces.
- List CloudWatch metrics: List metrics available in a specific namespace.
- List CloudWatch dimensions: Get dimensions for filtering metric queries.
- Query CloudWatch: Execute CloudWatch metric queries with time range support.
Graphite Querying
Note: Graphite tools are disabled by default. To enable them, add
graphiteto your--enabled-toolsflag.
- Query Graphite: Execute Graphite render API queries against a Graphite datasource.
- List Graphite metrics: Browse and discover Graphite metric paths.
- List Graphite tags: List available Graphite tags and tag values.
- Query Graphite density: Query Graphite metric density for a given pattern.
Athena Querying
Note: Athena tools are disabled by default. To enable them, add
athenato your--enabled-toolsflag.
- List Athena catalogs: Discover available data catalogs (e.g. AwsDataCatalog, Iceberg connectors).
- List Athena databases: List databases in an Athena catalog.
- List Athena tables: List tables in an Athena database.
- Describe Athena table: Get column names for an Athena table.
- Query Athena: Execute SQL queries against Amazon Athena via Grafana with macro substitution, limit enforcement, and template variable support.
Snowflake Querying
Note: Snowflake tools are disabled by default. To enable them, add
snowflaketo your--enabled-toolsflag.
Queries go through Grafana's Snowflake datasource (Grafana Enterprise plugin grafana-snowflake-datasource), so authentication is handled by the datasource configuration in Grafana — credentials are never seen by the MCP server. This is the same model used for the ClickHouse tools.
- List Snowflake tables: Discover tables (with database, schema, kind, row count, and size) via
INFORMATION_SCHEMA.TABLES. Optional database/schema filters. - Describe table schema: Get column names, data types, nullability, defaults, and comments for a Snowflake table.
- Query Snowflake: Execute SQL queries with macro and variable substitution support. Useful for querying Snowflake's event tables (e.g.
SNOWFLAKE.TELEMETRY.EVENTS) for logs and traces, or any user table.- Supported macros:
$__timeFilter(column),$__timeFrom,$__timeTo,$__from,$__to(Unix ms),$__interval(seconds),$__interval_ms, and${varname}for template variable substitution.
- Supported macros:
Elasticsearch/OpenSearch Querying
Note: Elasticsearch/OpenSearch tools are disabled by default. To enable them, add
elasticsearchto your--enabled-toolsflag.
- Query Elasticsearch/OpenSearch: Execute search queries against Elasticsearch or OpenSearch datasources using either Lucene query syntax or Elasticsearch Query DSL. Supports filtering by time range and retrieving logs, metrics, or any indexed data. Returns documents with their index, ID, source fields, and optional relevance score.
Quickwit Querying
Note: Quickwit tools are disabled by default. To enable them, add
quickwitto your--enabled-toolsflag.
- Query Quickwit: Execute search queries against Quickwit datasources using Lucene query syntax or partial Elasticsearch-compatible Query DSL. Supports filtering by time range and retrieving logs or other indexed documents. Returns documents with their index, ID, source fields, and optional relevance score.
Agent Observability
Note: Agent Observability tools are disabled by default and work only in Grafana Cloud. To enable them, add
agento11yto your--enabled-toolsflag.
- List and search conversations: List recent LLM conversations or search them with a filter expression (model, provider, agent, status, error type, eval results, and more) over a time range. Search results include error counts, rating summaries, evaluation summaries, and trace IDs.
- Get conversation detail: Fetch a single conversation with all its generations, including prompts and outputs.
- Get generation detail and scores: Fetch a single generation by ID, and its evaluation scores (evaluator, score key, value, passed, explanation).
- Inspect evaluators and templates: Read the evaluators a score came from, the templates they were derived from, and the judge providers and models available to LLM-judge evaluators. With write tools enabled, also create, fork, test, and delete evaluators.
- Inspect eval rules and guards: Read the asynchronous eval rules that bind evaluators to production traffic, and the guards (hook rules) that run inline and can warn or deny. With write tools enabled, also create, update, preview, and delete them. Writes and the non-persisting
preview_ruleandtest_evaluatoroperations need thegrafana-agento11y-app.eval:writepermission, granted by the Agento11y Admin role. - Curate saved conversations and collections: Read the saved conversations (bookmarks that give a conversation a stable ID, name, and tags) and the collections that group them, including each collection's member count and the collections embedded in every saved-conversation row. With write tools enabled, also bookmark a conversation, create and edit collections, and add or remove members. These writes need the same
grafana-agento11y-app.eval:writepermission.
Grafana Assistant
Note: Assistant tools are disabled by default and require the Grafana Assistant plugin (
grafana-assistant-app) to be installed on the target Grafana instance. They are also write tools (the assistant may mutate stack state), so they are skipped when--disable-writeis set. To enable them, addassistantto your--enabled-toolsflag.
- Ask the assistant: Send a natural-language prompt to Grafana Assistant and wait for the full text reply
…