MCP App Store
by KeenEthics
Developer Tools
Grafana Cloud icon

Grafana Cloud

by Grafana Labs

Overview

Grafana Assistant brings a purpose-built LLM to Grafana so operators, developers, and SREs can troubleshoot issues, manage dashboards, and answer product questions in minutes. Whether you’re analyzing data, polishing dashboards for executives, or guiding teammates to navigation and knowledge resources, Assistant removes manual querying and helps teams move faster. Organizations save hours of toil and reduce operational cost by letting Assistant surface insights while engineers focus on higher-value work.

Tools

add_activity_to_incident

ChatGPT
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.

alerting_manage_routing

ChatGPT
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)

alerting_manage_rules

ChatGPT
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)

analyze_loki_labels

ChatGPT
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.

ask_assistant

ChatGPT
Send a message to Grafana Assistant and wait for the full text reply. The assistant may use tools, metrics, logs, and other stack context—broader than firing one isolated data-source query. Use for open-ended questions, triage, or anything that needs assistant reasoning and tool use, in addition to the more targeted MCP tools. Multi-turn: pass contextId from a previous ask_assistant result to continue the same conversation. Time: complex tasks can take several minutes; the call blocks until the reply is done or the request times out. Consider running this tool as a background task if able.

check_datasources_health

ChatGPT
Check datasource health. Filter by type or UIDs; omit both to check all.

create_annotation

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

create_datasource

ChatGPT
Create a datasource. If type is ambiguous, call search_plugin_information first; install the plugin if needed. IMPORTANT: always call this tool twice. First call: provide only the type — the tool returns a field schema. After receiving the schema, you MUST ask the user for every required field value explicitly; do not infer or use defaults without user confirmation. Second call: provide the type, the display name in the top-level name argument, schemaReviewed=true, and the fields map populated with values confirmed by the user. Never handle credentials — remind the user to rotate any detected. Returns UID, health check, and a config page link.

create_folder

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

create_incident

ChatGPT
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.

create_investigation

ChatGPT
Start a Grafana Assistant investigation: an agentic, multi-step root-cause analysis across the stack's metrics, logs, traces, dashboards, and alerts. Provide a natural-language instruction describing what to investigate. Optionally set a title, share with teams via teamNames, or pick an agent profile via agentProfileId. The investigation runs asynchronously: this returns investigationId and chatId immediately; poll get_investigation for lifecycle state and results.

describe_athena_table

ChatGPT
Get column names for an Athena table. Use after list_athena_tables. NEXT: Use query_athena with discovered column names.

describe_clickhouse_table

ChatGPT
Get column schema for a ClickHouse table. Pass the database from list_clickhouse_tables results. NEXT: Use query_clickhouse with discovered column names.

describe_infrastructure

ChatGPT
Start here when users ask about their infrastructure, services, or architecture. Returns pre-built summaries of service groups including topology, metrics, deployment, dependencies, and datasource UIDs. Infrastructure memories are generated by scanning Prometheus metric datasources to discover services, then using AI to summarize each service group. Memories are organized by service group (e.g. "Payment System", "Inventory"). Each group has chunks covering: overview, metrics, deployment, dependencies, logs, and — when code search finds relevant repos — a code & repositories chunk describing the source repos, languages, and deployment/configuration evidence found in the code. Results also include datasource UIDs for metrics (Prometheus), logs (Loki), and traces (Tempo) — use these to query the right datasource in follow-up tool calls. Individual services/components (e.g. "cortex-gw") are listed inside their parent group's overview chunk — use the exact component name in keywords to find the right group. Uses hybrid search (semanticQuery for meaning + keywords for lexical matching). keywords is critical for finding specific sub-components within groups. Batch queries: pass an array of queries (max 3) to explore multiple service groups or angles in a single call. Results from all queries are merged and deduplicated by group name, so overlapping matches won't be returned twice. Prefer batching related angles over multiple sequential calls. IMPORTANT: semanticQuery must be a single short question with the group/component name — e.g. "What metrics does checkout-service expose?". Do NOT append generic terms like "architecture, components, dependencies, telemetry" — these match every document. keywords must use the exact service/component name (e.g. "cortex-gw"). Examples: - User asks "What's my infrastructure like?" → queries: [{semanticQuery: "What services are running?", keywords: "service"}] - User asks "Tell me about the checkout system" → queries: [{semanticQuery: "How does checkout-service work?", keywords: "checkout-service"}] - User asks "Compare the checkout and payment systems" → queries: [{semanticQuery: "How does checkout-service work?", keywords: "checkout-service"}, {semanticQuery: "How does payment-service work?", keywords: "payment-service"}] Each query returns full groups with overview, metrics, dependencies, logs, datasource UIDs, and (when available) code/repo information — enough to start investigating with targeted queries. Required: queries (each entry needs semanticQuery and keywords) Optional: datasourceUID (pass if a datasource UID is known from the conversation, user query, or previous tool results) When to use: - User asks broad questions about their infrastructure or what services are running - User asks about specific services or components - Need topology, relationships, or configuration - Need to discover which datasources (metrics, logs, traces) to query for a service - Before querying raw metrics or logs — check here first to find the right datasource UIDs - Need to know which repository or source code backs a service (when code evidence is available)

describe_snowflake_table

ChatGPT
Get column schema for a Snowflake table. Pass the database/schema from list_snowflake_tables results. NEXT: Use query_snowflake with discovered column names.

get_alert_group

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

get_annotation_tags

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

get_annotations

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

get_assertions

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

get_current_oncall_users

ChatGPT
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.

get_dashboard_by_uid

ChatGPT
Retrieves the complete dashboard, including panels, variables, and settings, for a specific dashboard identified by its UID. The response includes 'apiVersion' and 'isV2': when 'isV2' is true the dashboard uses the v2 schema (panels live under 'elements' keyed by name, arranged by 'layout'; variables under 'variables'), otherwise it is classic v1 ('panels[]' with 'templating.list'). WARNING: Large dashboards can consume significant context window space. Consider using get_dashboard_summary for overview or get_dashboard_property for specific data instead.

get_dashboard_panel_queries

ChatGPT
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.

get_dashboard_property

ChatGPT
Get specific parts of a dashboard using JSONPath expressions to minimize context window usage. JSONPath targets the dashboard's native schema. Classic v1 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). v2 dashboards (see isV2 from get_dashboard_by_uid) use different paths: '$.title'\, '$.elements' (panels\, keyed by name)\, '$.variables' (variables)\, '$.annotations'. Use this instead of get_dashboard_by_uid when you only need specific dashboard properties.

get_dashboard_summary

ChatGPT
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.

get_datasource

ChatGPT
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.

get_incident

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

get_investigation

ChatGPT
Get one Grafana Assistant investigation (AI-driven root-cause investigation) by ID. Returns the investigation's identifiers (investigationId and chatId), the authoritative row lifecycle state and metadata (title, description, state, summary, labels, team ownership, timestamps, completion quality, failure details), and the engine work snapshot (sessionStatus, mode, epoch, plan, report content). The row's state field is authoritative for investigation lifecycle (pending, in_progress, completed, failed, cancelled, paused). The snapshot's sessionStatus only describes the engine session (idle, active, pause) — do not infer completion or failure from it. Legacy (v1) investigations may have no snapshot; the row metadata is still returned with snapshotError set.

get_investigation_thread

ChatGPT
Get the working thread of one Grafana Assistant investigation (AI-driven root-cause investigation) by ID: the user-visible conversation between the investigation agent and its tools. Resolves the investigation to its backing chat and returns the non-hidden user-visible messages in order. Each message keeps only prose (the agent's narrative and findings), tool calls (toolName and toolInput), and tool results (raw query output); internal reasoning and bookkeeping blocks are excluded. Tool results are returned verbatim and can be large — use limit and offset to page through long threads (total reports the full user-visible count). Use this to inspect the raw data behind a report's [cite:pN] citations: list_investigation_evidence maps each panel ID to a toolUseId, and the tool_result block with that toolUseId in this thread holds the captured query output.

get_oncall_shift

ChatGPT
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.

get_panel_image

ChatGPT
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. Either dashboardUid (for stored dashboards) or provisioningPreview (for dashboards staged on a provisioning repository branch, e.g. a git-sync PR) must be supplied. Use this for generating visual snapshots of dashboards for reports, alerts, or presentations.

get_plugin

ChatGPT
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.

get_query_examples

ChatGPT
Get example queries for a specific datasource type. Provides sample queries with descriptions for Prometheus (PromQL), Loki (LogQL), ClickHouse (SQL with Grafana macros), CloudWatch (metric configurations), and InfluxDB (Flux and InfluxQL). Use this to understand query syntax and common patterns for each datasource. TIP: Use list_datasources to find datasource UIDs, or get_datasource if you know the exact name.

get_resource_description

ChatGPT
List available permissions and assignment capabilities for a Grafana resource type.

get_resource_permissions

ChatGPT
List all permissions set on a specific Grafana resource (e.g., dashboard, datasource, folder) by its type and ID.

get_role_assignments

ChatGPT
List all assignments for a specific role, showing which users, teams, and service accounts have been assigned this role.

get_role_details

ChatGPT
Get detailed information about a specific Grafana role by its UID, including permissions, metadata, and configuration.

grafana_api_request

ChatGPT
Make an authenticated HTTP request to the Grafana API. Similar to 'gh api' for GitHub. Supports any Grafana API endpoint with optional jq-style response filtering. Use this for API endpoints that don't have a dedicated tool.

install_plugin

ChatGPT
Install a Grafana plugin by its plugin ID. If the version is not already confirmed with the user, omit it — the tool will look up the latest version and return it for confirmation before installing.

list_alert_groups

ChatGPT
List alert groups from Grafana OnCall with filtering options. Supports filtering by alert group ID, route ID, integration ID, state (new, acknowledged, resolved, silenced), team ID, time range, labels, and name. For time ranges, use format '{start}_{end}' ISO 8601 timestamp range (e.g., '2025-01-19T00:00:00_2025-01-19T23:59:59' for a specific day). For labels, use format 'key:value' (e.g., ['env:prod', 'severity:high']). Returns a list of alert group objects with their details. Supports pagination.

list_all_roles

ChatGPT
List all roles in Grafana. Optionally filter to show only roles that can be delegated by the current user. Returns role details including UID, name, permissions, and metadata.

list_athena_catalogs

ChatGPT
START HERE for Athena: List available data catalogs (e.g. AwsDataCatalog, Iceberg connectors). NEXT: Use list_athena_databases with a catalog.

list_athena_databases

ChatGPT
List databases in an Athena catalog. Use after list_athena_catalogs. NEXT: Use list_athena_tables with a database.

list_athena_tables

ChatGPT
List tables in an Athena database. Use after list_athena_databases. NEXT: Use describe_athena_table to see column schemas before querying.

list_clickhouse_tables

ChatGPT
START HERE for ClickHouse: List available tables (name, database, engine, row count, size). NEXT: Use describe_clickhouse_table to see column schemas.

list_cloudwatch_dimensions

ChatGPT
List dimension keys for a CloudWatch metric. Requires region. Supports cross-account monitoring via optional accountId parameter. Use after list_cloudwatch_metrics. NEXT: Use query_cloudwatch with discovered dimensions.

list_cloudwatch_metrics

ChatGPT
List metrics for a CloudWatch namespace. Requires region. Supports cross-account monitoring via optional accountId parameter. Use after list_cloudwatch_namespaces. NEXT: Use list_cloudwatch_dimensions\, then query_cloudwatch.

list_cloudwatch_namespaces

ChatGPT
START HERE for CloudWatch: List available namespaces (AWS/EC2, AWS/ECS, AWS/RDS, etc.). Requires region. Supports cross-account monitoring via optional accountId parameter. NEXT: Use list_cloudwatch_metrics with a namespace.

list_datasources

ChatGPT
List all configured datasources in Grafana. Use this to discover available datasources and their UIDs. Supports filtering by type and pagination.

list_graphite_metrics

ChatGPT
Discover available metric paths in a Graphite datasource by browsing the metric tree. Returns nodes matching the query pattern\, each indicating whether it is a leaf metric (has data) or an expandable branch (has children). Use '' as a wildcard at any level to enumerate the tree (e.g. '' → top-level nodes\, 'servers.*' → all second-level nodes under 'servers'). Drill down progressively to find the full metric path before querying with query_graphite.

list_graphite_tags

ChatGPT
List available tag names in a Graphite datasource that uses tag-based metrics. Returns a list of tag name strings (e.g. ["name"\, "env"\, "region"]). These tags can be used to build tag-based target expressions for query_graphite (e.g. seriesByTag('name=cpu.load\,env=prod')). Optionally filter by a prefix. Requires Graphite to be configured with tag support.

list_incidents

ChatGPT
List Grafana incidents. Allows filtering by status ('active', 'resolved') and optionally including drill incidents. Returns a preview list with basic details.

list_investigation_evidence

ChatGPT
List the evidence citation index for one Grafana Assistant investigation (AI-driven root-cause investigation) by ID. Investigation reports cite captured query panels with [cite:pN] markers. Each evidence entry describes one captured panel, keyed by that panel ID: the tool that produced it (prometheus, loki, tempo, pyroscope), a human-readable query summary, the epoch (agent turn) at capture time, the capture timestamp, and the tool call ID that produced it. This is an index, not the data: raw query results live in the investigation thread. To see the data behind a citation, call get_investigation_thread and match the entry's toolUseId against the thread's tool results. Legacy (v1) investigations have no engine session and return an empty list.

list_investigation_profiles

ChatGPT
List the agent profiles available for Grafana Assistant investigations (AI-driven root-cause investigations) on this Grafana Cloud stack. Each profile describes an investigation agent configuration: its ID, display name, description, whether it is the default, its step budget, the tools it can use, and its content hash. Use a profile's ID as agentProfileId when creating an investigation.

list_investigations

ChatGPT
List Grafana Assistant investigations (AI-driven root-cause investigations) on this Grafana Cloud stack. Returns one summary per investigation — ID, chat ID, title, state, timestamps, labels, team ownership, progress, and completion quality — plus the total count of matches for pagination. Results are limited to investigations the authenticated user is allowed to see. All filters are optional. Use chatId to find the investigation that owns a known chat (all other filters are then ignored), q for free-text search, state/scope/label/teamName/from/to to narrow results, and limit/offset with the returned total to paginate.

list_loki_label_names

ChatGPT
Lists all available label/field names (keys) found in logs within a specified Loki or VictoriaLogs datasource and time range. Returns a list of unique label strings (e.g., ["app", "env", "pod"]). If the time range is not provided, it defaults to the last hour.

list_loki_label_values

ChatGPT
Retrieves all unique values associated with a specific labelName within a Loki or VictoriaLogs datasource and time range. Returns a list of string values (e.g., for labelName="env", might return ["prod", "staging", "dev"]). Useful for discovering filter options. Defaults to the last hour if the time range is omitted.

list_oncall_schedules

ChatGPT
List Grafana OnCall schedules, optionally filtering by team ID. If a specific schedule ID is provided, retrieves details for only that schedule. Returns a list of schedule summaries including ID, name, team ID, timezone, and shift IDs. Supports pagination.

list_oncall_teams

ChatGPT
List teams configured in Grafana OnCall. Returns a list of team objects with their details. Supports pagination.

list_oncall_users

ChatGPT
List users from Grafana OnCall. These are OnCall users (separate from Grafana users). Can retrieve all users in the OnCall directory, a specific user by ID, or filter by username. Returns a list of user objects with their details. Supports pagination.

list_prometheus_label_names

ChatGPT
List label names in a PromQL-compatible datasource (Prometheus, Thanos, Mimir, Cloud Monitoring, etc.). Allows filtering by series selectors and time range.

list_prometheus_label_values

ChatGPT
Use after list_prometheus_metric_names to find label values for filtering queries. Gets the values for a specific label name in a PromQL-compatible datasource (Prometheus, Thanos, Mimir, Cloud Monitoring, etc.). Allows filtering by series selectors and time range.

list_prometheus_metric_metadata

ChatGPT
List Prometheus metric metadata. Returns metadata about metrics currently scraped from targets. Note: This endpoint is experimental.

list_prometheus_metric_names

ChatGPT
DISCOVERY: Call this first to find available metrics before querying. Lists metric names in a PromQL-compatible datasource (Prometheus, Thanos, Mimir, Cloud Monitoring, etc.). Retrieves all metric names and filters them using the provided regex. Supports pagination and an optional time range to restrict results to metrics active within that window.

list_pyroscope_label_names

ChatGPT
Lists all available label names (keys) found in profiles within a specified Pyroscope datasource, time range, and optional label matchers. Label matchers are typically used to qualify a service name ({service_name="foo"}). Returns a list of unique label strings (e.g., ["app", "env", "pod"]). Label names with double underscores (e.g. __name__) are internal and rarely useful to users. If the time range is not provided, it defaults to the last hour.

list_pyroscope_label_values

ChatGPT
Lists all available label values for a particular label name found in profiles within a specified Pyroscope datasource, time range, and optional label matchers. Label matchers are typically used to qualify a service name ({service_name="foo"}). Returns a list of unique label strings (e.g. for label name "env": ["dev", "staging", "prod"]). If the time range is not provided, it defaults to the last hour.

list_pyroscope_profile_types

ChatGPT
Lists all available profile types available in a specified Pyroscope datasource and time range. Returns a list of all available profile types (example profile type: "process_cpu:cpu:nanoseconds:cpu:nanoseconds"). A profile type has the following structure: <name>:<sample type>:<sample unit>:<period type>:<period unit>. Not all profile types are available for every service. If the time range is not provided, it defaults to the last hour.

list_snowflake_tables

ChatGPT
START HERE for Snowflake: List available tables (database, schema, name, kind, row count, size) via INFORMATION_SCHEMA. NEXT: Use describe_snowflake_table to see column schemas.

list_team_roles

ChatGPT
List all roles assigned to one or more teams. Returns a map of team IDs to their assigned roles.

list_teams

ChatGPT
Search for Grafana teams by a query string. Returns a list of matching teams with details like name, ID, and URL.

list_user_roles

ChatGPT
List all roles assigned to one or more users. Returns a map of user IDs to their assigned roles, excluding built-in roles and team-inherited roles.

list_users_by_org

ChatGPT
List users in the Grafana organization. Returns a list of organization users with details like userid, email, role etc.

query_athena

ChatGPT
Query Amazon Athena via Grafana. REQUIRED FIRST: Use list_athena_catalogs -> list_athena_databases -> list_athena_tables -> describe_athena_table to discover schema, then query. Supports macros: $__timeFilter(column), $__dateFilter(column), $__unixEpochFilter(column), $__timeFrom(), $__timeTo(), $__from, $__to, $__interval, ${varname} Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms) Athena queries are async — Grafana handles polling. Use LIMIT and partition-aware WHERE clauses to avoid timeouts on large tables. Example: SELECT request_time, status FROM my_table WHERE $__timeFilter(request_time) LIMIT 100

query_clickhouse

ChatGPT
Query ClickHouse via Grafana. REQUIRED FIRST: Use list_clickhouse_tables to find tables, then describe_clickhouse_table to see column schemas, then query. Supports macros: $__timeFilter(column), $__from, $__to, $__interval, ${varname} Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms) Example: SELECT Timestamp, Body FROM otel_logs WHERE $__timeFilter(Timestamp)

query_cloudwatch

ChatGPT
Query AWS CloudWatch metrics via Grafana. Requires region. REQUIRED FIRST: Use list_cloudwatch_namespaces -> list_cloudwatch_metrics -> list_cloudwatch_dimensions -> then query. Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms) Common namespaces: AWS/EC2, AWS/ECS, AWS/RDS, AWS/Lambda, ECS/ContainerInsights Example dimensions: ECS: {ClusterName, ServiceName}, EC2: {InstanceId} Cross-account monitoring: Use accountId to query metrics from a specific source account (e.g. '123456789012') or 'all' to query all linked accounts. Only applicable when using a CloudWatch monitoring account datasource.

query_elasticsearch

ChatGPT
Executes a search query against an Elasticsearch or OpenSearch datasource and retrieves matching documents. Supports Lucene query syntax (e.g., 'status:200 AND host:server1') for both Elasticsearch and OpenSearch. Elasticsearch Query DSL JSON is also supported for Elasticsearch datasources only (not OpenSearch). Returns a list of documents with their index, ID, source fields, and optional score. Use this to search logs, metrics, or any indexed data stored in Elasticsearch or OpenSearch. Defaults to 10 results and sorts by @timestamp in descending order (newest first).

query_graphite

ChatGPT
WORKFLOW: list_graphite_metrics -> query_graphite. Executes a Graphite render API query against a Graphite datasource and returns matching metric series with their datapoints. Supports the full Graphite target expression language including wildcard patterns (e.g. 'servers.web.cpu.load5'), aggregation functions (e.g. 'sumSeries(app..requests)'), and tag-based queries (e.g. 'seriesByTag(\'name=cpu.load\')'). Datapoints with no recorded value are returned with a null value field. Time range defaults to the last hour if not specified.

query_graphite_density

ChatGPT
Analyses metric data density for one or more Graphite series over a time window. Returns per-series statistics: fillRatio (fraction of non-null datapoints, 0.0–1.0), totalPoints, nonNullPoints, lastSeen (Unix timestamp of most recent non-null value, or null if none), longestGap (longest consecutive null run in seconds), and estimatedInterval (inferred write interval in seconds). Supports wildcard targets (e.g. 'obox-cl*.sys.sessions') to diagnose stale, sparse, or dead metrics across a cluster. A fillRatio of 0 with lastSeen null means the series reported no data in the requested window.

query_influxdb

ChatGPT
Query an InfluxDB datasource via Grafana. Supports both InfluxQL (v1.x) and Flux (v2.x). The 'dialect' parameter selects the query language; if omitted it's inferred from the datasource configuration. Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms) InfluxQL example: SELECT mean("value") FROM "cpu" WHERE time > now() - 1h GROUP BY time(1m) Flux example: from(bucket: "metrics") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "cpu")

query_loki_logs

ChatGPT
Executes a log query against a Loki or VictoriaLogs datasource and returns matching log entries (or metric samples on Loki). Defaults to the last hour, a limit of 10 entries, and 'backward' direction (newest first). The logql parameter takes LogQL on Loki and LogsQL on VictoriaLogs (e.g., Loki: {app="foo"} |= "error"; VictoriaLogs: {app="foo"} "error"). To count matching log lines precisely, use a count_over_time() metric query with queryType='instant'. Prefer using query_loki_stats first to cheaply check whether a stream contains data (avoiding expensive queries against empty streams) and list_loki_label_names / list_loki_label_values to verify labels exist before querying. Note: query_loki_stats returns approximate storage-level counts, not exact log line counts.

query_loki_patterns

ChatGPT
Retrieves detected log patterns from a Loki datasource for a given stream selector and time range. Returns a list of patterns, each containing a pattern string and a total count of occurrences. Patterns help identify common log structures and anomalies. The logql parameter must be a stream selector (e.g., {job="nginx"}) and does not support line filters or aggregations. Defaults to the last hour if the time range is omitted. Not supported on VictoriaLogs datasources - use a | stats pipeline instead.

query_loki_stats

ChatGPT
Retrieves index-level statistics about log streams matching a given selector within a Loki or VictoriaLogs datasource and time range. Returns an object containing the count of streams, chunks, entries, and total bytes (e.g., {"streams": 5, "chunks": 50, "entries": 10000, "bytes": 512000}). Important: the entries count reflects storage-level index entries (chunk metadata), NOT the number of individual log lines matching the selector. To count actual matching log lines, use query_loki_logs with a count_over_time() metric query instead. On VictoriaLogs only entries is populated; the other fields remain zero. The logql parameter must be a simple label selector (e.g., {app="nginx", env="prod"}) and does not support line filters, parsers, or aggregations. Defaults to the last hour if the time range is omitted.

query_prometheus

ChatGPT
WORKFLOW: list_prometheus_metric_names -> list_prometheus_label_values -> query_prometheus. Query a PromQL-compatible datasource (Prometheus, Thanos, Mimir, Cloud Monitoring, etc.) using a PromQL expression. Supports instant queries (single point) and range queries (time range). Time: RFC3339 or relative expressions like 'now'\, 'now-1h'.

query_prometheus_histogram

ChatGPT
Query Prometheus histogram percentiles. DISCOVER FIRST: Use list_prometheus_metric_names with regex='.*_bucket$' to find histograms. Generates histogram_quantile PromQL. Example: metric='http_duration', percentile=95, labels='job="api"' Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms)

query_pyroscope

ChatGPT
Unified Pyroscope query tool for fetching profiles or metrics from Pyroscope. Profile data shows WHICH functions consume resources; metrics data shows WHEN consumption spiked. Use query_type="both" for complete analysis in one call. query_type options (extends Grafana's PyroscopeQueryType): - "profile": returns profile data (shape controlled by format) - "metrics": returns time-series data points - "both" (default): returns both profile and metrics in one response format options (shape of the profile data): - "table" (default): per-function table with flat (self) and cumulative values, ranked by flat - "dot": call graph in Graphviz DOT format; nodes are per source line, so one function may span several nodes

query_snowflake

ChatGPT
Query Snowflake via Grafana. REQUIRED FIRST: Use list_snowflake_tables to find tables (filter by database/schema), then describe_snowflake_table to see column schemas, then query. Supports macros: $__timeFilter(column), $__timeFrom, $__timeTo, $__from, $__to, $__interval, $__interval_ms, ${varname} Time formats: 'now-1h', '2026-02-02T19:00:00Z', '1738519200000' (Unix ms) Snowflake event tables (telemetry from logging APIs/auto-instrumentation) live in the database/schema configured by the EVENT TABLE setting; the standard one is SNOWFLAKE.TELEMETRY.EVENTS. Example: SELECT TIMESTAMP, RECORD['severity_text']::STRING AS LEVEL, VALUE FROM SNOWFLAKE.TELEMETRY.EVENTS WHERE $__timeFilter(TIMESTAMP) AND RECORD_TYPE = 'LOG'

run_panel_query

ChatGPT
Executes one or more dashboard panel queries with optional time range and variable overrides. Accepts an array of panel IDs to query in a single call. Fetches the dashboard\, extracts queries from the specified panels\, substitutes template variables and Grafana macros ($__range\, $__rate_interval\, $__interval)\, and routes to the appropriate datasource (Prometheus\, Loki\, ClickHouse\, CloudWatch\, InfluxDB\, or BigQuery). Returns results keyed by panel ID - partial failures are allowed (some panels can succeed while others fail). Use get_dashboard_summary first to find panel IDs. If a panel uses a template variable datasource you cannot access\, provide datasourceUid and datasourceType to override.

search_dashboards

ChatGPT
Search for Grafana dashboards by a query string. Returns a list of matching dashboards with details like title, UID, folder, tags, and URL.

search_folders

ChatGPT
Search for Grafana folders by a query string. Returns matching folders with details like title, UID, and URL.

search_plugin_information

ChatGPT
Search the Grafana plugin catalog by keyword to discover available plugins before installing or getting plugin details on a specific instance. Returns results sorted by trust: official Grafana Labs plugins first, then commercial partner plugins, then community plugins. Use this tool when a user describes a plugin by purpose or partial name (e.g. 'azure monitoring', 'loki', 'database') — it returns the exact pluginId to pass to get_plugin or install_plugin. Results include warnings for enterprise-only or Angular-based plugins.

suggest_loki_alloy_label_config

ChatGPT
Generates an Alloy loki.process snippet enforcing an approved label set via stage.label_keep, with optional log-level normalisation and soft-enforcement placeholders.

tempo_docs-config

ChatGPT
Documentation on Tempo configuration. Best for questions about how to configure or operate Tempo. Request the overview to learn which configuration block does what, or the reference for the complete list of options and their defaults.

tempo_docs-traceql

ChatGPT
Documentation on TraceQL search. Best for retrieval of traces. This covers basic attributes all the way through aggregates, pipelining, structural queries, and more. Includes examples.

tempo_get-attribute-names

ChatGPT
Get a list of available attribute names that can be used in TraceQL queries. This is useful for finding the names of attributes that can be used in a query.

tempo_get-attribute-values

ChatGPT
Get a list of values for a fully scoped attribute name. This is useful for finding the values of a specific attribute. i.e. you can find all the services in the data by asking for resource.service.name

tempo_get-trace

ChatGPT
Retrieve a specific trace by ID

tempo_traceql-metrics-instant

ChatGPT
Retrieve a single metric value given a TraceQL metrics query. The value is at the current instant or end. Most metrics questions can be answered with instant values.

tempo_traceql-metrics-range

ChatGPT
Retrieve a metric series given a TraceQL metrics query. The series ranges from start to end.

update_annotation

ChatGPT
Updates the provided properties of an annotation by ID. Only fields included in the request are modified; omitted fields are left unchanged.

update_dashboard

ChatGPT
Create or update a dashboard. Two modes: (1) Full JSON — provide 'dashboard' for new dashboards or complete replacements. (2) Patch — provide 'uid' + 'operations' to make targeted changes to an existing dashboard. One of these two modes is required; 'folderUid'\, 'message'\, and 'overwrite' are supplementary and do nothing on their own. Dashboard authoring guidance: if a saved query must support one\, many\, or All values from a multi-select variable inside a regex expression or matcher\, save '${var:regex}' rather than plain '$var'. Saved dashboard annotation queries/definitions must be written into dashboard JSON under 'annotations.list'; the create_annotation tool creates annotation events and does not add a reusable dashboard annotation query/definition to the saved dashboard. For stat panels over the current dashboard range\, make the query return the range-level result the stat should display; panel-side reduction only reduces returned series and does not compute peak-over-range or ratio-of-peaks semantics for you. Patch operations support JSONPaths like '$.panels[0].targets[0].expr'\, '$.panels[1].title'\, '$.panels[2].targets[0].datasource'\, '$.templating.list/-'\, and '$.annotations.list/-'. Append to arrays with '/- ' syntax: '$.panels/- '. Remove by index: {"op": "remove"\, "path": "$.panels[2]"}. Multiple removes on the same array are automatically reordered to avoid index-shifting issues. Note: only numeric array indices are supported in patch paths; filter expressions like [?(@.id==2)] and wildcards like [*] are not supported. v2 dashboards (check 'isV2' from get_dashboard_by_uid) use a different shape: patch '$.elements.<name>.spec.title' or '$.elements.<name>.spec.data.spec.queries[0].spec' and edit '$.variables'/'$.layout' rather than '$.panels'/'$.templating.list'. Full-JSON saves containing top-level 'elements'/'layout' are written as v2 and require a Kubernetes-capable Grafana. After creating or updating a dashboard\, verify that panel queries return data by using run_panel_query or the appropriate query tool (query_prometheus\, query_loki_logs\, etc.) to validate expressions before considering the task complete.

update_datasource

ChatGPT
Update non-secret datasource fields by UID. Omitted fields are preserved. IMPORTANT: always call this tool twice. First call: provide only the uid — the tool returns the datasource's field schema. After receiving the schema, ask the user which fields they want to change and confirm each new value; do not infer or reset fields the user did not mention. Second call: provide the uid, schemaReviewed=true, and the changed values in the fields map. Returns an update message and a health check. For secrets, direct the user to the Grafana UI.

add_activity_to_incident

Claude

alerting_manage_routing

Claude

alerting_manage_rules

Claude

ask_assistant

Claude

create_annotation

Claude

create_folder

Claude

create_incident

Claude

describe_clickhouse_table

Claude

describe_infrastructure

Claude

find_error_pattern_logs

Claude

find_slow_requests

Claude

get_alert_group

Claude

get_annotation_tags

Claude

get_annotations

Claude

get_assertions

Claude

get_current_oncall_users

Claude

get_dashboard_by_uid

Claude

get_dashboard_panel_queries

Claude

get_dashboard_property

Claude

get_dashboard_summary

Claude

get_datasource

Claude

get_incident

Claude

get_oncall_shift

Claude

get_panel_image

Claude

get_query_examples

Claude

get_sift_analysis

Claude

get_sift_investigation

Claude

list_alert_groups

Claude

list_clickhouse_tables

Claude

list_cloudwatch_dimensions

Claude

list_cloudwatch_metrics

Claude

list_cloudwatch_namespaces

Claude

list_datasources

Claude

list_incidents

Claude

list_loki_label_names

Claude

list_loki_label_values

Claude

list_oncall_schedules

Claude

list_oncall_teams

Claude

list_oncall_users

Claude

list_prometheus_label_names

Claude

list_prometheus_label_values

Claude

list_prometheus_metric_metadata

Claude

list_prometheus_metric_names

Claude

list_pyroscope_label_names

Claude

list_pyroscope_label_values

Claude

list_pyroscope_profile_types

Claude

list_sift_investigations

Claude

query_clickhouse

Claude

query_cloudwatch

Claude

query_elasticsearch

Claude

query_loki_logs

Claude

query_loki_patterns

Claude

query_loki_stats

Claude

query_prometheus

Claude

query_prometheus_histogram

Claude

query_pyroscope

Claude

search_dashboards

Claude

search_folders

Claude

update_annotation

Claude

update_dashboard

Claude

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

163

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily