VOOZH about

URL: https://hub.docker.com/r/mcp/grafana

⇱ mcp/grafana - Docker Image


mcp/grafana

Verified Publisher

By mcp

Updated 27 days ago

MCP server for Grafana

Image
Machine learning & AI
20

500K+

mcp/grafana repository overview

Grafana MCP Server

MCP server for Grafana.

What is an MCP Server?

MCP Info

AttributeDetails
Docker Imagemcp/grafana
Authorgrafana
Repositoryhttps://github.com/grafana/mcp-grafana

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/grafana/mcp-grafana/blob/290cd69b3f9a63382fb411b3eb02a4f06177e187/Dockerfile
Commit290cd69b3f9a63382fb411b3eb02a4f06177e187
Docker Image built byDocker Inc.
Docker Scout Health Score👁 Docker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/grafana --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceApache License 2.0

Available Tools (56)

Tools provided by this ServerShort Description
add_activity_to_incidentAdd activity to incident
alerting_manage_routingManage alerting routing
alerting_manage_rulesManage alert rules
analyze_loki_labelsAnalyze Loki label strategy
create_annotationCreate Annotation
create_folderCreate folder
create_incidentCreate incident
find_error_pattern_logsFind error patterns in logs
find_slow_requestsFind slow requests
generate_deeplinkGenerate navigation deeplink
get_alert_groupGet IRM alert group
get_annotation_tagsGet Annotation Tags
get_annotationsGet Annotations
get_assertionsGet assertions summary
get_current_oncall_usersGet current on-call users
get_dashboard_by_uidGet dashboard details
get_dashboard_panel_queriesGet dashboard panel queries
get_dashboard_propertyGet dashboard property
get_dashboard_summaryGet dashboard summary
get_datasourceGet datasource
get_incidentGet incident details
get_oncall_shiftGet OnCall shift
get_panel_imageGet panel or dashboard image
get_pluginGet plugin
get_sift_analysisGet Sift analysis
get_sift_investigationGet Sift investigation
grafana_api_requestGrafana API request
install_pluginInstall plugin
list_alert_groupsList IRM alert groups
list_datasourcesList datasources
list_incidentsList incidents
list_loki_label_namesList Loki label names
list_loki_label_valuesList Loki label values
list_oncall_schedulesList OnCall schedules
list_oncall_teamsList OnCall teams
list_oncall_usersList OnCall users
list_prometheus_label_namesList Prometheus label names
list_prometheus_label_valuesList Prometheus label values
list_prometheus_metric_metadataList Prometheus metric metadata
list_prometheus_metric_namesList Prometheus metric names
list_pyroscope_label_namesList Pyroscope label names
list_pyroscope_label_valuesList Pyroscope label values
list_pyroscope_profile_typesList Pyroscope profile types
list_sift_investigationsList Sift investigations
query_loki_logsQuery Loki logs
query_loki_patternsQuery Loki patterns
query_loki_statsGet Loki log statistics
query_prometheusQuery Prometheus metrics
query_prometheus_histogramQuery Prometheus histogram percentile
query_pyroscopeQuery Pyroscope
search_dashboardsSearch dashboards
search_foldersSearch folders
search_plugin_informationSearch plugins
suggest_loki_alloy_label_configSuggest Alloy label enforcement config
update_annotationUpdate Annotation
update_dashboardCreate or update dashboard

Tools Details

Tool: add_activity_to_incident

Add a note (userNote activity) to an existing incident's timeline using its ID. The note body can include URLs which will be attached as context. Use this to add context to an incident.

ParametersTypeDescription
bodystringThe body of the activity. URLs will be parsed and attached as context
incidentIdstringThe ID of the incident to add the activity to
eventTimestring optionalThe time that the activity occurred. If not provided, the current time will be used

Tool: alerting_manage_routing

Manage Grafana alerting routing configuration, including notification policies, contact points and time intervals.

Notification policies define how alerts are grouped, routed, and which contact points receive them. Time intervals define active/mute periods for alert notifications.

When to use:

  • Understanding how alerts are routed to contact points/receivers
  • Debugging why an alert went to a specific receiver
  • Checking grouping, timing, or mute interval settings

When NOT to use:

  • Checking alert rule configuration or state (use alerting_manage_rules) Parameters|Type|Description -|-|- operation|string|The operation to perform: 'get_notification_policies' to retrieve the notification policy tree, 'get_contact_points' to list all contact points, 'get_contact_point' to get a specific contact point by name, 'get_time_intervals' to list all time intervals, 'get_time_interval' to get a specific time interval by name contact_point_title|string optional|Title of the contact point to retrieve (required for get_contact_point operation) datasource_uid|string optional|Optional: UID of an Alertmanager-compatible datasource to query for receivers. If omitted, returns Grafana-managed contact points. Only used with get_contact_points. limit|integer optional|The maximum number of results to return. Default is 100. Only used with get_contact_points. name|string optional|Filter contact points by name (exact match). Only used with get_contact_points. time_interval_name|string optional|Name of the time interval to retrieve (required for get_time_interval operation)

This tool is read-only. It does not modify its environment.


Tool: alerting_manage_rules

Manage Grafana alert rules with full CRUD capabilities and filtering.

When to use:

  • Understanding why an alert is or isn't firing
  • Auditing alert rule configuration (queries, conditions, labels, notification settings)
  • Finding alert rules by state, folder, group, or name
  • Creating, updating, or deleting alert rules
  • Comparing rule versions to see what changed

When NOT to use:

  • Checking how alerts are routed to receivers (use alerting_manage_routing) Parameters|Type|Description -|-|- operation|string|The operation to perform: 'list', 'get', 'versions', 'create', 'update', or 'delete'. To create a rule, use operation 'create' and provide all required fields in a single call. To update a rule, first use 'get' to retrieve its full configuration, then 'update' with all required fields plus your changes. annotations|object optional|Optional annotations for the alert rule condition|string optional|The query condition identifier, e.g. 'A', 'B' (required for 'create', 'update') data|array optional|Array of alert query objects (required for 'create'/'update'). Each object has: datasourceUid (string, required), model (object with expr for data queries or type/expression/conditions for expressions), refId (string, auto-assigned if omitted), relativeTimeRange ({from, to} in seconds, defaults to {from:600,to:0}). For server-side expressions use datasourceUid 'expr'. Example: [{datasourceUid: 'prometheus', model: {expr: 'up == 0'}}, {datasourceUid: 'expr', model: {type: 'threshold', expression: 'A', conditions: [{evaluator: {type: 'gt', params: [0]}}]}}] datasource_uid|string optional|Optional: UID of a Prometheus or Loki datasource to query for datasource-managed alert rules (for 'list' operation) disable_provenance|boolean optional|If true, the alert remains editable in the Grafana UI (sets X-Disable-Provenance header). Defaults to true. exec_err_state|string optional|State on execution error: NoData, Alerting, OK (required for 'create', 'update') folder_uid|string optional|The folder UID. For 'list': filter by exact folder UID (mutually exclusive with search_folder). For 'create'/'update': the folder to store the rule in (required). for|string optional|Duration before alert fires, e.g. '5m' (required for 'create', 'update') is_paused|boolean optional|If true, the alert rule remains inactive, Default is false keep_firing_for|string optional|Enables continous firing of alert for specified time even when condition is no longer met. Default is 0 (resolves immediately) label_selectors|array optional|Prometheus-style selectors to filter alert rules by labels. Each string is a selector e.g. '{severity="critical", team=~"backend."}'. All selectors must match (AND). labels|object optional|Optional labels for the alert rule limit_alerts|integer optional|Limit alert instances per rule. For list: 0 omits alerts. For get: <=0 defaults to 200. Max 200. matchers|array optional|Label matchers to filter alert instances. Each string is a Prometheus-style matcher e.g. 'severity="critical"', 'env!="dev"', 'team=~"backend."'. Requires Grafana 12.4+. missing_series_evals_to_resolve|integer optional|Consecutive evaluation intervals with no data required to mark the alert as resolved. Default is 2. no_data_state|string optional|State when no data: NoData, Alerting, OK (required for 'create', 'update') notification_settings|object optional|Notification settings object. Fields: receiver (string, required), groupBy ([]string), groupWait/groupInterval/repeatInterval (duration strings), muteTimeIntervals/activeTimeIntervals ([]string). org_id|integer optional|The organization ID (required for 'create', 'update') record|object optional|Recording rule config. Fields: from (string, required - ref ID e.g. 'A'), metric (string, required - metric name), targetDatasourceUid (string, optional). rule_group|string optional|The rule group name (required for 'create', 'update') rule_limit|integer optional|Maximum number of rules to return (default 200, max 200). Requires Grafana 12.4+ (for 'list' operation) rule_type|string optional|Filter by rule type (for 'list' operation) rule_uid|string optional|The UID of the alert rule (required for 'get', 'versions', 'update', 'delete'; optional for 'create') search_folder|string optional|Search folders by path using partial matching (for 'list' operation). Requires Grafana 12.4+. Mutually exclusive with folder_uid. search_rule_name|string optional|Search alert rule names/titles using partial matching. Requires Grafana 12.4+ (for 'list' operation) states|array optional|Filter by alert state: firing, pending, normal, recovering, nodata, error (for 'list' operation) title|string optional|The title of the alert rule (required for 'create', 'update')

This tool may perform destructive updates.


Tool: analyze_loki_labels

Audits a Loki label strategy and optionally diagnoses query performance. Returns per-label verdicts, missing base labels, normalisation issues, and a recommended set. Pass datasourceUid for live cardinality or labels for static scoring; both may be combined.

ParametersTypeDescription
datasourceUidstring optionalDatasource UID (live mode).
endRfc3339string optional
expectedBaseLabelsarray optional
labelsarray optionalCaller-supplied labels (static mode).
maxLabelsinteger optional
perfMetricsobject optionalRuntime metrics; presence triggers perf diagnosis.
selectorstring optionalOptional LogQL selector for stats / perf diagnosis.
startRfc3339string optional

This tool is read-only. It does not modify its environment.


Tool: create_annotation

Create a new annotation on a dashboard or panel. Set format to 'graphite' and provide 'what' for Graphite-format annotations.

ParametersTypeDescription
dashboardUidstring optionalDashboard UID
dataobject optionalOptional JSON payload
formatstring optionalSet to 'graphite' to create a Graphite-format annotation
graphiteDatastring optionalOptional string payload for Graphite format
panelIdinteger optionalPanel ID
tagsarray optionalOptional list of tags
textstring optionalAnnotation text (required unless format is graphite)
timeinteger optionalStart time epoch ms
timeEndinteger optionalEnd time epoch ms
whatstring optionalAnnotation text for Graphite format (required when format is graphite)
wheninteger optionalEpoch ms timestamp for Graphite format

Tool: create_folder

Create a Grafana folder. Provide a title and optional UID. Returns the created folder.

ParametersTypeDescription
titlestringThe title of the folder.
parentUidstring optionalOptional parent folder UID. If set, the folder will be created under this parent.
uidstring optionalOptional folder UID. If omitted, Grafana will generate one.

Tool: create_incident

Create a new Grafana incident. Requires title, severity, and room prefix. Allows setting status and labels. This tool should be used judiciously and sparingly, and only after confirmation from the user, as it may notify or alarm lots of people.

ParametersTypeDescription
roomPrefixstringThe prefix of the room to create the incident in
severitystringThe severity of the incident
titlestringThe title of the incident
attachCaptionstring optionalThe caption of the attachment
attachUrlstring optionalThe URL of the attachment
isDrillboolean optionalWhether the incident is a drill incident
labelsarray optionalThe labels to add to the incident
statusstring optionalThe status of the incident

Tool: find_error_pattern_logs

Searches Loki logs for elevated error patterns compared to the last day's average, waits for the analysis to complete, and returns the results including any patterns found.

ParametersTypeDescription
labelsobjectLabels to scope the analysis
namestringThe name of the investigation
endstring optionalEnd time for the investigation. Defaults to now if not specified.
startstring optionalStart time for the investigation. Defaults to 30 minutes ago if not specified.

This tool is read-only. It does not modify its environment.


Tool: find_slow_requests

Searches relevant Tempo datasources for slow requests, waits for the analysis to complete, and returns the results.

ParametersTypeDescription
labelsobjectLabels to scope the analysis
namestringThe name of the investigation
endstring optionalEnd time for the investigation. Defaults to now if not specified.
startstring optionalStart time for the investigation. Defaults to 30 minutes ago if not specified.

This tool is read-only. It does not modify its environment.


Generate deeplink URLs for Grafana resources. Supports dashboards (requires dashboardUid), panels (requires dashboardUid and panelId), and Explore queries (requires datasourceUid and optionally queries). For explore links, the time range and queries are embedded inside the Grafana explore state.

ParametersTypeDescription
resourceTypestringType of resource: dashboard, panel, or explore
dashboardUidstring optionalDashboard UID (required for dashboard and panel types)
datasourceUidstring optionalDatasource UID (required for explore type)
panelIdinteger optionalPanel ID (required for panel type)
queriesarray optionalList of query objects for explore links (e.g. [{"refId":"A","expr":"up"}])
queryParamsobject optionalAdditional URL query parameters (for dashboard/panel types)
timeRangeobject optionalTime range for the link

This tool is read-only. It does not modify its environment.


Tool: get_alert_group

Get a specific alert group from Grafana OnCall by its ID. Returns the full alert group details.

ParametersTypeDescription
alertGroupIdstringThe ID of the alert group to retrieve

This tool is read-only. It does not modify its environment.


Tool: get_annotation_tags

Returns annotation tags with optional filtering by tag name. Only the provided filters are applied.

ParametersTypeDescription
limitstring optionalMax results, default 100
tagstring optionalOptional filter by tag name

This tool is read-only. It does not modify its environment.


Tool: get_annotations

Fetch Grafana annotations using filters such as dashboard UID, time range and tags.

ParametersTypeDescription
alertUidstring optionalFilter by alert UID
dashboardUidstring optionalFilter by dashboard UID
frominteger optionalEpoch ms start time
limitinteger optionalMax results default 100
matchAnyboolean optionalIf true, match any tag (OR). If false, match all tags (AND). Default: false
panelIdinteger optionalFilter by panel ID
tagsarray optionalFilter by tags. Multiple tags allowed; use matchAny to control AND/OR logic
tointeger optionalEpoch ms end time
typestring optionalannotation or alert
userIdinteger optionalFilter by creator user ID

This tool is read-only. It does not modify its environment.


Tool: get_assertions

Get assertion summary for a given entity with its type, name, env, site, namespace, and a time range

ParametersTypeDescription
endTimestringThe end time in RFC3339 format (e.g. 2024-01-01T00:00:00Z) or relative format (e.g. now)
startTimestringThe start time in RFC3339 format (e.g. 2024-01-01T00:00:00Z) or relative format (e.g. now-1h)
entityNamestring optionalThe name of the entity to list
entityTypestring optionalThe type of the entity to list (e.g. Service, Node, Pod, etc.)
envstring optionalThe env of the entity to list
namespacestring optionalThe namespace of the entity to list
sitestring optionalThe site of the entity to list

This tool is read-only. It does not modify its environment.


Tool: get_current_oncall_users

Get the list of users currently on-call for a specific Grafana OnCall schedule ID. Returns the schedule ID, name, and a list of detailed user objects for those currently on call.

ParametersTypeDescription
scheduleIdstringThe ID of the schedule to get current on-call users for

This tool is read-only. It does not modify its environment.


Tool: get_dashboard_by_uid

Retrieves the complete dashboard, including panels, variables, and settings, for a specific dashboard identified by its UID. WARNING: Large dashboards can consume significant context window space. Consider using get_dashboard_summary for overview or get_dashboard_property for specific data instead.

ParametersTypeDescription
uidstringThe UID of the dashboard

This tool is read-only. It does not modify its environment.


Tool: get_dashboard_panel_queries

Retrieve panel queries from a Grafana dashboard. Supports all datasource types (Prometheus, Loki, CloudWatch, SQL, etc.) and row-nested panels. Optionally filter to a specific panel by ID with panelId. Optionally provide variables for template variable substitution, which populates processedQuery and requiredVariables fields. Returns an array of objects with fields: title, query (raw expression), datasource (object with uid and type), and optionally processedQuery, refId, and requiredVariables.

ParametersTypeDescription
uidstringThe UID of the dashboard
panelIdinteger optionalOptional panel ID to filter to a specific panel
variablesobject optionalOptional variable substitutions (e.g., {"job": "api-server"})

This tool is read-only. It does not modify its environment.


Tool: get_dashboard_property

Get specific parts of a dashboard using JSONPath expressions to minimize context window usage. Common paths: '$.title' (title), '$.panels[].title' (all panel titles), '$.panels[0]' (first panel), '$.templating.list' (variables), '$.annotations.list' (saved dashboard annotation queries/definitions), '$.tags' (tags), '$.panels[].targets[*].expr' (all queries). Use this instead of get_dashboard_by_uid when you only need specific dashboard properties.

ParametersTypeDescription
jsonPathstringJSONPath expression to extract specific data (e.g., '$.panels[0].title' for first panel title, '$.panels[*].title' for all panel titles, '$.templating.list' for variables, '$.annotations.list' for saved dashboard annotation queries/definitions)
uidstringThe UID of the dashboard

This tool is read-only. It does not modify its environment.


Tool: get_dashboard_summary

Get a compact summary of a dashboard including title, panel count, panel types, variables, and other metadata without the full JSON. Use this for dashboard overview and planning modifications without consuming large context windows.

ParametersTypeDescription
uidstringThe UID of the dashboard

This tool is read-only. It does not modify its environment.


Tool: get_datasource

Retrieves detailed information about a specific datasource by UID or name. Returns the full datasource model, including name, type, URL, access settings, JSON data, and secure JSON field status. Provide either uid or name; uid takes priority if both are given.

ParametersTypeDescription
namestring optionalThe name of the datasource. Used if UID is not provided.
uidstring optionalThe UID of the datasource. If provided, takes priority over name.

This tool is read-only. It does not modify its environment.


Tool: get_incident

Get a single incident by ID. Returns the full incident details including title, status, severity, labels, timestamps, and other metadata.

ParametersTypeDescription
idstringThe ID of the incident to retrieve

This tool is read-only. It does not modify its environment.


Tool: get_oncall_shift

Get detailed information for a specific Grafana OnCall shift using its ID. A shift represents a designated time period within a schedule when users are actively on-call. Returns the full shift details.

ParametersTypeDescription
shiftIdstringThe ID of the shift to get details for

This tool is read-only. It does not modify its environment.


Tool: get_panel_image

Render a Grafana dashboard panel or full dashboard as a PNG image. Returns the image as base64 encoded data. Requires the Grafana Image Renderer service to be installed. Use this for generating visual snapshots of dashboards for reports, alerts, or presentations.

ParametersTypeDescription
dashboardUidstringThe UID of the dashboard containing the panel
heightinteger optionalHeight of the rendered image in pixels. Defaults to 500
panelIdinteger optionalThe ID of the panel to render. If omitted, the entire dashboard is rendered
scaleinteger optionalScale factor for the image (1-3). Defaults to 1
themestring optionalTheme for the rendered image: light or dark. Defaults to dark
timeRangeobject optionalTime range for the rendered image
timeoutinteger optionalRendering timeout in seconds. Defaults to 60
variablesobject optionalDashboard variables to apply. Values can be a single string or an array of strings for multi-value variables (e.g., {"var-datasource": "prometheus", "var-instance": ["server1", "server2"]})
widthinteger optionalWidth of the rendered image in pixels. Defaults to 1000

This tool is read-only. It does not modify its environment.


Tool: get_plugin

Check whether a Grafana plugin is installed and retrieve its details (name, version, type, enabled status). Returns installed=false when the plugin is not found. Use install_plugin when a plugin is not installed to install plugin after confirming this action with the user.

ParametersTypeDescription
pluginIdstringThe plugin ID to check (e.g. 'prometheus', 'grafana-piechart-panel', 'grafana-oncall-app')

This tool is read-only. It does not modify its environment.


Tool: get_sift_analysis

Retrieves a specific analysis from an investigation by its UUID. The investigation ID and analysis ID should be provided as strings in UUID format.

ParametersTypeDescription
analysisIdstringThe UUID of the specific analysis to retrieve
investigationIdstringThe UUID of the investigation as a string (e.g. '02adab7c-bf5b-45f2-9459-d71a2c29e11b')

This tool is read-only. It does not modify its environment.


Tool: get_sift_investigation

Retrieves an existing Sift investigation by its UUID. The ID should be provided as a string in UUID format (

[...]

Tag summary

latest

Content type

Image

Digest

sha256:55abb94eb…

Size

53.4 MB

Last updated

27 days ago

Requires Docker Desktop 4.37.1 or later.

This week's pulls

Pulls:

19,924

Last week