Grafana MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GRAFANA_URL | Yes | The URL of your Grafana instance | |
| GRAFANA_DEBUG | No | Enable debug logging | false |
| GRAFANA_TOKEN | Yes | Your service account token or API key for authentication | |
| GRAFANA_TIMEOUT | No | HTTP timeout in milliseconds | 30000 |
| GRAFANA_TLS_CA_FILE | No | Path to CA certificate file | |
| GRAFANA_TLS_KEY_FILE | No | Path to client key file | |
| GRAFANA_DISABLE_TOOLS | No | Disable specific tool categories (comma-separated) | |
| GRAFANA_TLS_CERT_FILE | No | Path to client certificate file | |
| GRAFANA_TLS_SKIP_VERIFY | No | Skip certificate verification (insecure) | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_dashboardsC | Search for dashboards by title, tags, or other metadata |
| get_dashboard_by_uidB | Get full dashboard details using its unique identifier |
| update_dashboardC | Update an existing dashboard or create a new one. Use with caution due to context window limitations. |
| get_dashboard_panel_queriesC | Get the title, query string, and datasource information from every panel in a dashboard |
| get_dashboard_versionsC | Get version history for a dashboard |
| restore_dashboard_versionC | Restore a dashboard to a specific version |
| delete_dashboardB | Delete a dashboard by UID |
| list_teamsC | List all teams in the organization |
| get_team_by_uidB | Get team details by UID |
| list_usersC | List all users in the organization |
| get_current_userB | Get current user information |
| list_foldersC | List all folders |
| get_folder_by_uidC | Get folder details by UID |
| list_api_keysB | List all API keys |
| list_service_accountsB | List all service accounts |
| get_current_organizationC | Get current organization information |
| list_datasourcesB | List all configured datasources with their details |
| get_datasource_by_uidC | Get detailed information about a datasource using its UID |
| get_datasource_by_nameC | Get detailed information about a datasource using its name |
| test_datasource_connectionC | Test the connection to a datasource by UID |
| get_datasources_by_typeB | Get all datasources of a specific type (e.g., prometheus, loki, mysql) |
| get_default_datasourceB | Get the default datasource for the organization |
| check_datasource_existsC | Check if a datasource exists by UID or name |
| query_prometheusC | Execute a PromQL query against a Prometheus datasource |
| get_prometheus_metadataC | Get metadata for all metrics from a Prometheus datasource |
| get_prometheus_labelsB | Get all label names from a Prometheus datasource |
| get_prometheus_label_valuesC | Get all values for a specific label from a Prometheus datasource |
| get_prometheus_seriesC | Find series matching label matchers from a Prometheus datasource |
| build_prometheus_queryC | Help build a Prometheus query with suggestions for metric names and operators |
| query_lokiC | Execute a LogQL query against a Loki datasource to search logs |
| get_loki_labelsB | Get all label names available in a Loki datasource |
| get_loki_label_valuesC | Get all values for a specific label in a Loki datasource |
| get_loki_seriesC | Get series (label combinations) matching label selectors from a Loki datasource |
| build_logql_queryC | Help build a LogQL query with suggestions for log stream selectors and filters |
| get_loki_statsC | Get statistics about ingestion and query performance from a Loki datasource |
| list_alert_rulesC | List all alert rules in Grafana |
| get_alert_ruleC | Get detailed information about a specific alert rule |
| create_alert_ruleD | Create a new alert rule |
| update_alert_ruleC | Update an existing alert rule |
| delete_alert_ruleC | Delete an alert rule by UID |
| list_contact_pointsB | List all notification contact points |
| get_contact_pointC | Get detailed information about a specific contact point |
| test_contact_pointC | Send a test notification to a contact point |
| list_alert_rule_groupsC | List all alert rule groups |
| generate_deeplinkC | Generate a deeplink URL for Grafana dashboards, panels, or explore view |
| generate_dashboard_urlC | Generate a URL for a specific dashboard with optional time range and variables |
| generate_panel_urlC | Generate a URL for a specific panel with optional time range |
| generate_explore_urlC | Generate a URL for the Explore view with optional datasource and query |
| generate_prometheus_explore_urlC | Generate an Explore URL for Prometheus queries with specific options |
| generate_loki_explore_urlC | Generate an Explore URL for Loki log queries |
| get_time_range_presetsB | Get common time range presets for Grafana |
| validate_time_rangeC | Validate a time range for Grafana usage |
| discover_sensorsA | Scan ports for active SSH-tunneled Corelight sensor Grafana instances. Returns connected sensors with hostname, port, Grafana version, and Prometheus status. |
| sensor_statusA | Get live performance snapshot for a sensor: Gbps, kpps, klogps, drop rates, max worker CPU, buffer utilization, and system memory. Uses 5-min rate smoothing. |
| query_sensor_metricA | Execute arbitrary PromQL against a sensor's Prometheus datasource. Auto-resolves datasource UID and target sensor. |
| deploy_ramp_dashboardB | Deploy the RAMP Performance Analysis dashboard to a sensor's Grafana. Optionally patch with baseline comparison panels by specifying a build and profile. |
| list_baselinesB | List available builds and profiles from baselines.json. Optionally filter by sensor type (e.g., "AP1100", "AP3000"). |
| sensor_performance_verdictA | Compare live sensor metrics against a baseline build and return a structured verdict. Thresholds: <5% = PASS, 5-10% = MINOR REGRESSION (P2), >10% = MAJOR REGRESSION (P1), any drops = FAIL. |
| annotate_testB | Add a Grafana annotation on a sensor for test events (start/end/result/rate change). Supports range annotations and dashboard association. Tagged with ramp-test by default. |
| fleet_verdictC | Run performance verdict against all discovered sensors in parallel. Returns per-sensor results and fleet summary. |
| sensor_trendB | Show a sensor type's performance across all builds in baselines.json. Useful for spotting when regressions were introduced. |
| list_test_runsB | List RAMP test runs from the results directory. Filter by date or sensor name. |
| get_test_resultB | Read the final result (Gbps, kpps, klogps, status) from a RAMP test run. |
| get_test_vitalsB | Read all VITAL metric samples from a RAMP test run (time-series data). |
| summarize_runC | Get a complete summary of a RAMP test run including metadata, final result, vital count, and error status. |
| diagnose_dropsA | Run a comprehensive diagnostic battery against a sensor to identify where drops are occurring and why. Returns drop sources by layer (NIC/Zeek/Suricata), bottleneck classification, and leading indicators. |
| fingerprint_regressionC | Combine performance verdict with live diagnostic data to fingerprint the root cause of a regression. |
| compare_buildsB | Compare two firmware builds across all sensor types and profiles using baseline data. |
| watch_testC | Monitor a sensor during a RAMP test, polling metrics at a configurable interval. |
| explore_sensor_metricsA | List all available Prometheus metric names on a sensor, grouped by subsystem. |
| ixia_set_rateA | Set the Ixia traffic replayer to a specific rate in Gbps. This stops any running test and restarts at the new rate. |
| ixia_stopA | Stop the Ixia traffic replayer. Halts all traffic generation on the specified replayer. |
| ixia_statusC | Check the current status of an Ixia traffic replayer (running/stopped, rate, test model). |
| start_ramp_testA | Start a RAMP performance test on the RAMP server. Set confirm=true to actually start; default is a dry run that shows what would run. |
| stop_ramp_testA | Stop a running RAMP test by killing its tmux session on the RAMP server. |
| test_statusA | Check the status of RAMP tests running on the RAMP server (lists active tmux sessions). |
| fleet_regression_sweepC | Run a regression sweep across all discovered sensors against a specific build. Checks each sensor against all its baseline profiles and optionally fingerprints regressions. |
| forecast_max_rateA | Extrapolate the maximum sustainable traffic rate for a sensor based on current resource utilization. Shows headroom per subsystem (Zeek CPU, buffer, memory) and identifies the limiting factor. |
| preflight_riskA | Assess whether a sensor is ready for a RAMP test by checking for existing drops, memory pressure, CPU baseline, and buffer residue. Returns a risk score and go/no-go recommendation. |
| predict_firmware_impactC | Analyze historical baseline data to predict how the next firmware build will affect performance. Shows trend direction (improving/stable/declining) per sensor type and profile, with fleet-wide risk. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quanticsoul4772/grafana-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server