[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-grafana-grafana-cloud-mcp-tools":3,"mdc-dz9ioe-key":27,"related-org-grafana-grafana-cloud-mcp-tools":1358,"related-repo-grafana-grafana-cloud-mcp-tools":1550},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":17,"repoUrl":18,"updatedAt":19,"license":20,"forks":21,"topics":22,"repo":23,"sourceUrl":25,"mdContent":26},"grafana-cloud-mcp-tools","use Grafana Cloud MCP server tools","Connect to and use the Grafana Cloud MCP server effectively, including natural-language Grafana Assistant questions and observability investigations. Covers setup, OAuth authorization, tool categories, read\u002Fwrite access scopes, and best practices for context window management. Use when the user wants to set up Grafana Cloud MCP, ask Grafana Assistant a question, investigate metrics, logs, traces, profiles, dashboards, alerts, or incidents, needs guidance on which tool to use, or wants to understand access scopes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"grafana","Grafana","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgrafana.jpg",[12,16],{"name":13,"slug":14,"type":15},"MCP","mcp","tag",{"name":9,"slug":8,"type":15},15,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fai-marketplace","2026-07-21T05:39:33.356231",null,3,[],{"repoUrl":18,"stars":17,"forks":21,"topics":24,"description":20},[],"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fai-marketplace\u002Ftree\u002FHEAD\u002Fplugins\u002Fgrafana-cloud-mcp\u002Fskills\u002Fgrafana-cloud-mcp-tools","---\nname: grafana-cloud-mcp-tools\ndescription: Connect to and use the Grafana Cloud MCP server effectively, including natural-language Grafana Assistant questions and observability investigations. Covers setup, OAuth authorization, tool categories, read\u002Fwrite access scopes, and best practices for context window management. Use when the user wants to set up Grafana Cloud MCP, ask Grafana Assistant a question, investigate metrics, logs, traces, profiles, dashboards, alerts, or incidents, needs guidance on which tool to use, or wants to understand access scopes.\n---\n\n# Grafana Cloud MCP Server\n\nHosted MCP server providing 60+ Grafana Cloud tools via Streamable HTTP transport with OAuth 2.1 authorization.\n\n## Prerequisites\n\n- Grafana Cloud account (self-hosted users should use the local OSS MCP server instead)\n- **Assistant Cloud MCP User** role or `grafana-assistant-app.cloud-mcp:access` permission (Editor role or higher has this by default)\n- An administrator must have accepted the Grafana Assistant terms and conditions\n\n## Configuration\n\nThe Cloud MCP server connects via `https:\u002F\u002Fmcp.grafana.com\u002Fmcp` using Streamable HTTP transport. No local installation or environment variables are required.\n\n### Setup steps\n\n1. The MCP server connects automatically when the plugin loads.\n2. When prompted, enter your Grafana Cloud URL and authorize the connection in your browser.\n3. Your OAuth token is valid for 1 hour and refreshes automatically for 30 days.\n\n## Read and write access\n\nWhen authorizing, you choose which permissions to grant:\n\n- **Read access**: View dashboards, alerts, incidents, and query data sources. Always available.\n- **Write access**: Create and modify dashboards, alerts, and incidents. You can uncheck this to grant read-only access.\n\nOrganization Admins can grant write access by default. If write access is disabled on the consent page, the user needs the **Assistant Admin** role.\n\n## Tool categories\n\n### Search and navigation\n\n- `search_dashboards` — search for dashboards by query string\n- `search_folders` — search for folders by query string\n- `generate_deeplink` — generate deeplink URLs for dashboards, panels, and Explore queries\n\n### Dashboards and folders\n\n- `get_dashboard_by_uid` — retrieve the complete dashboard JSON by UID\n- `get_dashboard_summary` — compact summary without full JSON (preferred)\n- `get_dashboard_property` — extract specific parts via JSONPath\n- `get_dashboard_panel_queries` — retrieve panel queries with template variable substitution\n- `update_dashboard` — create or update a dashboard (**Write**)\n- `create_folder` — create a Grafana folder (**Write**)\n\n### Datasources\n\n- `list_datasources` — list all configured data sources with optional type filtering\n- `get_datasource` — get detailed information by UID or name\n\n### Prometheus\n\n- `list_prometheus_metric_names` — discover available metrics with regex filtering\n- `list_prometheus_metric_metadata` — list metadata about currently scraped metrics\n- `list_prometheus_label_names` — list label names with optional series selector\n- `list_prometheus_label_values` — get values for a specific label\n- `query_prometheus` — execute PromQL instant or range queries\n- `query_prometheus_histogram` — query histogram percentiles\n\n### Loki\n\n- `list_loki_label_names` — list available label names in logs\n- `list_loki_label_values` — get unique values for a specific label\n- `query_loki_logs` — execute LogQL queries for log entries or metric values\n- `query_loki_stats` — get statistics about log streams\n- `query_loki_patterns` — detect and analyze common log patterns\n\n### Tempo\n\nIf you have Tempo data sources, the Cloud MCP server proxies tools from the Tempo data source, including TraceQL queries and attribute discovery.\n\n### Pyroscope\n\n- `list_pyroscope_label_names` — list available label names in profiles\n- `list_pyroscope_label_values` — list values for a specific label\n- `list_pyroscope_profile_types` — list available profile types\n- `query_pyroscope` — query profiles or metrics from Pyroscope\n\n### ClickHouse\n\n- `list_clickhouse_tables` — list available tables with metadata\n- `describe_clickhouse_table` — get column schema for a table\n- `query_clickhouse` — execute SQL queries against ClickHouse datasources\n\n### CloudWatch\n\n- `list_cloudwatch_namespaces` — list available AWS namespaces\n- `list_cloudwatch_metrics` — list metrics for a namespace\n- `list_cloudwatch_dimensions` — list dimension keys for a metric\n- `query_cloudwatch` — query AWS CloudWatch metrics\n\n### Elasticsearch\n\n- `query_elasticsearch` — execute Lucene or Query DSL searches\n\n### Alerting\n\n- `alerting_manage_rules` — list, filter, create, and update alert rules (Read \u002F **Write**)\n- `alerting_manage_routing` — view routing configuration, notification policies, contact points (Read)\n\n### Annotations\n\n- `get_annotations` — fetch annotations filtered by dashboard UID, time range, or tags\n- `get_annotation_tags` — get annotation tags with optional filtering\n- `create_annotation` — create a new annotation (**Write**)\n- `update_annotation` — update an existing annotation (**Write**)\n\n### Incidents\n\n- `list_incidents` — list incidents with optional status filtering\n- `get_incident` — get full incident details by ID\n- `create_incident` — create a new incident (**Write**)\n- `add_activity_to_incident` — add a note to an incident's timeline (**Write**)\n\n### OnCall\n\n- `list_oncall_schedules` — list OnCall schedules with optional team filtering\n- `get_oncall_shift` — get detailed shift information\n- `get_current_oncall_users` — get users currently on-call for a schedule\n- `list_oncall_teams` — list OnCall teams\n- `list_oncall_users` — list OnCall users with optional filtering\n- `list_alert_groups` — list alert groups with filtering\n- `get_alert_group` — get a specific alert group by ID\n\n### Sift\n\n- `list_sift_investigations` — list Sift investigations\n- `get_sift_investigation` — retrieve a Sift investigation by UUID\n- `get_sift_analysis` — retrieve a specific analysis from an investigation\n- `find_error_pattern_logs` — search Loki logs for elevated error patterns (**Write**)\n- `find_slow_requests` — search Tempo datasources for slow requests (**Write**)\n\n### Other tools\n\n- `ask_assistant` — send a prompt to Grafana Assistant and get the full reply (**Write**)\n- `get_assertions` — get assertion summary for an entity\n- `get_panel_image` — render a dashboard panel as a PNG image\n- `describe_infrastructure` — retrieve pre-built summaries of service groups\n- `get_query_examples` — get example queries for datasource types\n\n## Best practices\n\n### Grafana Assistant questions\n\n- For open-ended, natural-language requests (\"Why is checkout latency spiking?\", \"Summarize the current incident\", \"Explain this alert\"), use `ask_assistant` to let Grafana Assistant plan the investigation and return a grounded reply. `ask_assistant` is write-scoped and requires `grafana:write`.\n- If write access was not granted during OAuth authorization, `ask_assistant` is unavailable. Fall back to the appropriate read-only tools (for example `describe_infrastructure`, `get_assertions`, `query_prometheus`, `query_loki_logs`, `list_incidents`) and tell the user that the natural-language Assistant tool needs write scope. Re-authorizing only grants write if the user has the **Assistant Admin** role or the `grafana-assistant-app.cloud-mcp.scope:write` permission; otherwise a Grafana organization administrator must grant it first.\n- For specific, targeted lookups (a known query, dashboard, alert, or incident), call the corresponding tool directly rather than routing through `ask_assistant`.\n\n### Context window management\n\n- Use `get_dashboard_summary` instead of `get_dashboard_by_uid` to avoid consuming context with full dashboard JSON.\n- Use `get_dashboard_property` with JSONPath to extract only the specific parts you need.\n- Use `search_dashboards` to discover dashboards before retrieving by UID.\n- When presenting Grafana data, use `generate_deeplink` to provide clickable URLs rather than describing navigation steps.\n\n### Querying\n\n- When querying Prometheus, always specify a reasonable time range to avoid overwhelming results.\n- When querying Loki, prefer targeted LogQL selectors with label matchers over broad queries.\n- Use datasource discovery tools (`list_datasources`, `list_prometheus_metric_names`) before writing queries.\n\n### Safety\n\n- Avoid write operations (`update_dashboard`, `create_incident`, `alerting_manage_rules`) unless explicitly asked by the user.\n- If write access was not granted during OAuth authorization, write tools will not be available.\n\n### Access and permissions\n\n- Access is user-scoped: the agent has only the permissions your Grafana RBAC grants you.\n- Using the Cloud MCP server requires the **Assistant Cloud MCP User** role or the `grafana-assistant-app.cloud-mcp:access` permission. Editor and higher have this by default; other roles can be granted it explicitly.\n- Write tools require the `grafana:write` OAuth scope, granted during OAuth consent. Granting that scope is itself gated by Grafana RBAC: the user needs the **Assistant Admin** role or the `grafana-assistant-app.cloud-mcp.scope:write` permission to authorize a write-scoped connection. Read-only access does not require it.\n",{"data":28,"body":29},{"name":4,"description":6},{"type":30,"children":31},"root",[32,41,47,54,89,95,108,115,134,140,145,168,180,186,192,228,234,315,321,346,352,421,427,485,491,496,502,549,555,591,597,644,650,664,670,700,706,763,769,826,832,912,918,986,992,1055,1061,1067,1166,1172,1228,1234,1265,1271,1303,1309],{"type":33,"tag":34,"props":35,"children":37},"element","h1",{"id":36},"grafana-cloud-mcp-server",[38],{"type":39,"value":40},"text","Grafana Cloud MCP Server",{"type":33,"tag":42,"props":43,"children":44},"p",{},[45],{"type":39,"value":46},"Hosted MCP server providing 60+ Grafana Cloud tools via Streamable HTTP transport with OAuth 2.1 authorization.",{"type":33,"tag":48,"props":49,"children":51},"h2",{"id":50},"prerequisites",[52],{"type":39,"value":53},"Prerequisites",{"type":33,"tag":55,"props":56,"children":57},"ul",{},[58,64,84],{"type":33,"tag":59,"props":60,"children":61},"li",{},[62],{"type":39,"value":63},"Grafana Cloud account (self-hosted users should use the local OSS MCP server instead)",{"type":33,"tag":59,"props":65,"children":66},{},[67,73,75,82],{"type":33,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":39,"value":72},"Assistant Cloud MCP User",{"type":39,"value":74}," role or ",{"type":33,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":39,"value":81},"grafana-assistant-app.cloud-mcp:access",{"type":39,"value":83}," permission (Editor role or higher has this by default)",{"type":33,"tag":59,"props":85,"children":86},{},[87],{"type":39,"value":88},"An administrator must have accepted the Grafana Assistant terms and conditions",{"type":33,"tag":48,"props":90,"children":92},{"id":91},"configuration",[93],{"type":39,"value":94},"Configuration",{"type":33,"tag":42,"props":96,"children":97},{},[98,100,106],{"type":39,"value":99},"The Cloud MCP server connects via ",{"type":33,"tag":76,"props":101,"children":103},{"className":102},[],[104],{"type":39,"value":105},"https:\u002F\u002Fmcp.grafana.com\u002Fmcp",{"type":39,"value":107}," using Streamable HTTP transport. No local installation or environment variables are required.",{"type":33,"tag":109,"props":110,"children":112},"h3",{"id":111},"setup-steps",[113],{"type":39,"value":114},"Setup steps",{"type":33,"tag":116,"props":117,"children":118},"ol",{},[119,124,129],{"type":33,"tag":59,"props":120,"children":121},{},[122],{"type":39,"value":123},"The MCP server connects automatically when the plugin loads.",{"type":33,"tag":59,"props":125,"children":126},{},[127],{"type":39,"value":128},"When prompted, enter your Grafana Cloud URL and authorize the connection in your browser.",{"type":33,"tag":59,"props":130,"children":131},{},[132],{"type":39,"value":133},"Your OAuth token is valid for 1 hour and refreshes automatically for 30 days.",{"type":33,"tag":48,"props":135,"children":137},{"id":136},"read-and-write-access",[138],{"type":39,"value":139},"Read and write access",{"type":33,"tag":42,"props":141,"children":142},{},[143],{"type":39,"value":144},"When authorizing, you choose which permissions to grant:",{"type":33,"tag":55,"props":146,"children":147},{},[148,158],{"type":33,"tag":59,"props":149,"children":150},{},[151,156],{"type":33,"tag":68,"props":152,"children":153},{},[154],{"type":39,"value":155},"Read access",{"type":39,"value":157},": View dashboards, alerts, incidents, and query data sources. Always available.",{"type":33,"tag":59,"props":159,"children":160},{},[161,166],{"type":33,"tag":68,"props":162,"children":163},{},[164],{"type":39,"value":165},"Write access",{"type":39,"value":167},": Create and modify dashboards, alerts, and incidents. You can uncheck this to grant read-only access.",{"type":33,"tag":42,"props":169,"children":170},{},[171,173,178],{"type":39,"value":172},"Organization Admins can grant write access by default. If write access is disabled on the consent page, the user needs the ",{"type":33,"tag":68,"props":174,"children":175},{},[176],{"type":39,"value":177},"Assistant Admin",{"type":39,"value":179}," role.",{"type":33,"tag":48,"props":181,"children":183},{"id":182},"tool-categories",[184],{"type":39,"value":185},"Tool categories",{"type":33,"tag":109,"props":187,"children":189},{"id":188},"search-and-navigation",[190],{"type":39,"value":191},"Search and navigation",{"type":33,"tag":55,"props":193,"children":194},{},[195,206,217],{"type":33,"tag":59,"props":196,"children":197},{},[198,204],{"type":33,"tag":76,"props":199,"children":201},{"className":200},[],[202],{"type":39,"value":203},"search_dashboards",{"type":39,"value":205}," — search for dashboards by query string",{"type":33,"tag":59,"props":207,"children":208},{},[209,215],{"type":33,"tag":76,"props":210,"children":212},{"className":211},[],[213],{"type":39,"value":214},"search_folders",{"type":39,"value":216}," — search for folders by query string",{"type":33,"tag":59,"props":218,"children":219},{},[220,226],{"type":33,"tag":76,"props":221,"children":223},{"className":222},[],[224],{"type":39,"value":225},"generate_deeplink",{"type":39,"value":227}," — generate deeplink URLs for dashboards, panels, and Explore queries",{"type":33,"tag":109,"props":229,"children":231},{"id":230},"dashboards-and-folders",[232],{"type":39,"value":233},"Dashboards and folders",{"type":33,"tag":55,"props":235,"children":236},{},[237,248,259,270,281,299],{"type":33,"tag":59,"props":238,"children":239},{},[240,246],{"type":33,"tag":76,"props":241,"children":243},{"className":242},[],[244],{"type":39,"value":245},"get_dashboard_by_uid",{"type":39,"value":247}," — retrieve the complete dashboard JSON by UID",{"type":33,"tag":59,"props":249,"children":250},{},[251,257],{"type":33,"tag":76,"props":252,"children":254},{"className":253},[],[255],{"type":39,"value":256},"get_dashboard_summary",{"type":39,"value":258}," — compact summary without full JSON (preferred)",{"type":33,"tag":59,"props":260,"children":261},{},[262,268],{"type":33,"tag":76,"props":263,"children":265},{"className":264},[],[266],{"type":39,"value":267},"get_dashboard_property",{"type":39,"value":269}," — extract specific parts via JSONPath",{"type":33,"tag":59,"props":271,"children":272},{},[273,279],{"type":33,"tag":76,"props":274,"children":276},{"className":275},[],[277],{"type":39,"value":278},"get_dashboard_panel_queries",{"type":39,"value":280}," — retrieve panel queries with template variable substitution",{"type":33,"tag":59,"props":282,"children":283},{},[284,290,292,297],{"type":33,"tag":76,"props":285,"children":287},{"className":286},[],[288],{"type":39,"value":289},"update_dashboard",{"type":39,"value":291}," — create or update a dashboard (",{"type":33,"tag":68,"props":293,"children":294},{},[295],{"type":39,"value":296},"Write",{"type":39,"value":298},")",{"type":33,"tag":59,"props":300,"children":301},{},[302,308,310,314],{"type":33,"tag":76,"props":303,"children":305},{"className":304},[],[306],{"type":39,"value":307},"create_folder",{"type":39,"value":309}," — create a Grafana folder (",{"type":33,"tag":68,"props":311,"children":312},{},[313],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":109,"props":316,"children":318},{"id":317},"datasources",[319],{"type":39,"value":320},"Datasources",{"type":33,"tag":55,"props":322,"children":323},{},[324,335],{"type":33,"tag":59,"props":325,"children":326},{},[327,333],{"type":33,"tag":76,"props":328,"children":330},{"className":329},[],[331],{"type":39,"value":332},"list_datasources",{"type":39,"value":334}," — list all configured data sources with optional type filtering",{"type":33,"tag":59,"props":336,"children":337},{},[338,344],{"type":33,"tag":76,"props":339,"children":341},{"className":340},[],[342],{"type":39,"value":343},"get_datasource",{"type":39,"value":345}," — get detailed information by UID or name",{"type":33,"tag":109,"props":347,"children":349},{"id":348},"prometheus",[350],{"type":39,"value":351},"Prometheus",{"type":33,"tag":55,"props":353,"children":354},{},[355,366,377,388,399,410],{"type":33,"tag":59,"props":356,"children":357},{},[358,364],{"type":33,"tag":76,"props":359,"children":361},{"className":360},[],[362],{"type":39,"value":363},"list_prometheus_metric_names",{"type":39,"value":365}," — discover available metrics with regex filtering",{"type":33,"tag":59,"props":367,"children":368},{},[369,375],{"type":33,"tag":76,"props":370,"children":372},{"className":371},[],[373],{"type":39,"value":374},"list_prometheus_metric_metadata",{"type":39,"value":376}," — list metadata about currently scraped metrics",{"type":33,"tag":59,"props":378,"children":379},{},[380,386],{"type":33,"tag":76,"props":381,"children":383},{"className":382},[],[384],{"type":39,"value":385},"list_prometheus_label_names",{"type":39,"value":387}," — list label names with optional series selector",{"type":33,"tag":59,"props":389,"children":390},{},[391,397],{"type":33,"tag":76,"props":392,"children":394},{"className":393},[],[395],{"type":39,"value":396},"list_prometheus_label_values",{"type":39,"value":398}," — get values for a specific label",{"type":33,"tag":59,"props":400,"children":401},{},[402,408],{"type":33,"tag":76,"props":403,"children":405},{"className":404},[],[406],{"type":39,"value":407},"query_prometheus",{"type":39,"value":409}," — execute PromQL instant or range queries",{"type":33,"tag":59,"props":411,"children":412},{},[413,419],{"type":33,"tag":76,"props":414,"children":416},{"className":415},[],[417],{"type":39,"value":418},"query_prometheus_histogram",{"type":39,"value":420}," — query histogram percentiles",{"type":33,"tag":109,"props":422,"children":424},{"id":423},"loki",[425],{"type":39,"value":426},"Loki",{"type":33,"tag":55,"props":428,"children":429},{},[430,441,452,463,474],{"type":33,"tag":59,"props":431,"children":432},{},[433,439],{"type":33,"tag":76,"props":434,"children":436},{"className":435},[],[437],{"type":39,"value":438},"list_loki_label_names",{"type":39,"value":440}," — list available label names in logs",{"type":33,"tag":59,"props":442,"children":443},{},[444,450],{"type":33,"tag":76,"props":445,"children":447},{"className":446},[],[448],{"type":39,"value":449},"list_loki_label_values",{"type":39,"value":451}," — get unique values for a specific label",{"type":33,"tag":59,"props":453,"children":454},{},[455,461],{"type":33,"tag":76,"props":456,"children":458},{"className":457},[],[459],{"type":39,"value":460},"query_loki_logs",{"type":39,"value":462}," — execute LogQL queries for log entries or metric values",{"type":33,"tag":59,"props":464,"children":465},{},[466,472],{"type":33,"tag":76,"props":467,"children":469},{"className":468},[],[470],{"type":39,"value":471},"query_loki_stats",{"type":39,"value":473}," — get statistics about log streams",{"type":33,"tag":59,"props":475,"children":476},{},[477,483],{"type":33,"tag":76,"props":478,"children":480},{"className":479},[],[481],{"type":39,"value":482},"query_loki_patterns",{"type":39,"value":484}," — detect and analyze common log patterns",{"type":33,"tag":109,"props":486,"children":488},{"id":487},"tempo",[489],{"type":39,"value":490},"Tempo",{"type":33,"tag":42,"props":492,"children":493},{},[494],{"type":39,"value":495},"If you have Tempo data sources, the Cloud MCP server proxies tools from the Tempo data source, including TraceQL queries and attribute discovery.",{"type":33,"tag":109,"props":497,"children":499},{"id":498},"pyroscope",[500],{"type":39,"value":501},"Pyroscope",{"type":33,"tag":55,"props":503,"children":504},{},[505,516,527,538],{"type":33,"tag":59,"props":506,"children":507},{},[508,514],{"type":33,"tag":76,"props":509,"children":511},{"className":510},[],[512],{"type":39,"value":513},"list_pyroscope_label_names",{"type":39,"value":515}," — list available label names in profiles",{"type":33,"tag":59,"props":517,"children":518},{},[519,525],{"type":33,"tag":76,"props":520,"children":522},{"className":521},[],[523],{"type":39,"value":524},"list_pyroscope_label_values",{"type":39,"value":526}," — list values for a specific label",{"type":33,"tag":59,"props":528,"children":529},{},[530,536],{"type":33,"tag":76,"props":531,"children":533},{"className":532},[],[534],{"type":39,"value":535},"list_pyroscope_profile_types",{"type":39,"value":537}," — list available profile types",{"type":33,"tag":59,"props":539,"children":540},{},[541,547],{"type":33,"tag":76,"props":542,"children":544},{"className":543},[],[545],{"type":39,"value":546},"query_pyroscope",{"type":39,"value":548}," — query profiles or metrics from Pyroscope",{"type":33,"tag":109,"props":550,"children":552},{"id":551},"clickhouse",[553],{"type":39,"value":554},"ClickHouse",{"type":33,"tag":55,"props":556,"children":557},{},[558,569,580],{"type":33,"tag":59,"props":559,"children":560},{},[561,567],{"type":33,"tag":76,"props":562,"children":564},{"className":563},[],[565],{"type":39,"value":566},"list_clickhouse_tables",{"type":39,"value":568}," — list available tables with metadata",{"type":33,"tag":59,"props":570,"children":571},{},[572,578],{"type":33,"tag":76,"props":573,"children":575},{"className":574},[],[576],{"type":39,"value":577},"describe_clickhouse_table",{"type":39,"value":579}," — get column schema for a table",{"type":33,"tag":59,"props":581,"children":582},{},[583,589],{"type":33,"tag":76,"props":584,"children":586},{"className":585},[],[587],{"type":39,"value":588},"query_clickhouse",{"type":39,"value":590}," — execute SQL queries against ClickHouse datasources",{"type":33,"tag":109,"props":592,"children":594},{"id":593},"cloudwatch",[595],{"type":39,"value":596},"CloudWatch",{"type":33,"tag":55,"props":598,"children":599},{},[600,611,622,633],{"type":33,"tag":59,"props":601,"children":602},{},[603,609],{"type":33,"tag":76,"props":604,"children":606},{"className":605},[],[607],{"type":39,"value":608},"list_cloudwatch_namespaces",{"type":39,"value":610}," — list available AWS namespaces",{"type":33,"tag":59,"props":612,"children":613},{},[614,620],{"type":33,"tag":76,"props":615,"children":617},{"className":616},[],[618],{"type":39,"value":619},"list_cloudwatch_metrics",{"type":39,"value":621}," — list metrics for a namespace",{"type":33,"tag":59,"props":623,"children":624},{},[625,631],{"type":33,"tag":76,"props":626,"children":628},{"className":627},[],[629],{"type":39,"value":630},"list_cloudwatch_dimensions",{"type":39,"value":632}," — list dimension keys for a metric",{"type":33,"tag":59,"props":634,"children":635},{},[636,642],{"type":33,"tag":76,"props":637,"children":639},{"className":638},[],[640],{"type":39,"value":641},"query_cloudwatch",{"type":39,"value":643}," — query AWS CloudWatch metrics",{"type":33,"tag":109,"props":645,"children":647},{"id":646},"elasticsearch",[648],{"type":39,"value":649},"Elasticsearch",{"type":33,"tag":55,"props":651,"children":652},{},[653],{"type":33,"tag":59,"props":654,"children":655},{},[656,662],{"type":33,"tag":76,"props":657,"children":659},{"className":658},[],[660],{"type":39,"value":661},"query_elasticsearch",{"type":39,"value":663}," — execute Lucene or Query DSL searches",{"type":33,"tag":109,"props":665,"children":667},{"id":666},"alerting",[668],{"type":39,"value":669},"Alerting",{"type":33,"tag":55,"props":671,"children":672},{},[673,689],{"type":33,"tag":59,"props":674,"children":675},{},[676,682,684,688],{"type":33,"tag":76,"props":677,"children":679},{"className":678},[],[680],{"type":39,"value":681},"alerting_manage_rules",{"type":39,"value":683}," — list, filter, create, and update alert rules (Read \u002F ",{"type":33,"tag":68,"props":685,"children":686},{},[687],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":59,"props":690,"children":691},{},[692,698],{"type":33,"tag":76,"props":693,"children":695},{"className":694},[],[696],{"type":39,"value":697},"alerting_manage_routing",{"type":39,"value":699}," — view routing configuration, notification policies, contact points (Read)",{"type":33,"tag":109,"props":701,"children":703},{"id":702},"annotations",[704],{"type":39,"value":705},"Annotations",{"type":33,"tag":55,"props":707,"children":708},{},[709,720,731,747],{"type":33,"tag":59,"props":710,"children":711},{},[712,718],{"type":33,"tag":76,"props":713,"children":715},{"className":714},[],[716],{"type":39,"value":717},"get_annotations",{"type":39,"value":719}," — fetch annotations filtered by dashboard UID, time range, or tags",{"type":33,"tag":59,"props":721,"children":722},{},[723,729],{"type":33,"tag":76,"props":724,"children":726},{"className":725},[],[727],{"type":39,"value":728},"get_annotation_tags",{"type":39,"value":730}," — get annotation tags with optional filtering",{"type":33,"tag":59,"props":732,"children":733},{},[734,740,742,746],{"type":33,"tag":76,"props":735,"children":737},{"className":736},[],[738],{"type":39,"value":739},"create_annotation",{"type":39,"value":741}," — create a new annotation (",{"type":33,"tag":68,"props":743,"children":744},{},[745],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":59,"props":748,"children":749},{},[750,756,758,762],{"type":33,"tag":76,"props":751,"children":753},{"className":752},[],[754],{"type":39,"value":755},"update_annotation",{"type":39,"value":757}," — update an existing annotation (",{"type":33,"tag":68,"props":759,"children":760},{},[761],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":109,"props":764,"children":766},{"id":765},"incidents",[767],{"type":39,"value":768},"Incidents",{"type":33,"tag":55,"props":770,"children":771},{},[772,783,794,810],{"type":33,"tag":59,"props":773,"children":774},{},[775,781],{"type":33,"tag":76,"props":776,"children":778},{"className":777},[],[779],{"type":39,"value":780},"list_incidents",{"type":39,"value":782}," — list incidents with optional status filtering",{"type":33,"tag":59,"props":784,"children":785},{},[786,792],{"type":33,"tag":76,"props":787,"children":789},{"className":788},[],[790],{"type":39,"value":791},"get_incident",{"type":39,"value":793}," — get full incident details by ID",{"type":33,"tag":59,"props":795,"children":796},{},[797,803,805,809],{"type":33,"tag":76,"props":798,"children":800},{"className":799},[],[801],{"type":39,"value":802},"create_incident",{"type":39,"value":804}," — create a new incident (",{"type":33,"tag":68,"props":806,"children":807},{},[808],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":59,"props":811,"children":812},{},[813,819,821,825],{"type":33,"tag":76,"props":814,"children":816},{"className":815},[],[817],{"type":39,"value":818},"add_activity_to_incident",{"type":39,"value":820}," — add a note to an incident's timeline (",{"type":33,"tag":68,"props":822,"children":823},{},[824],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":109,"props":827,"children":829},{"id":828},"oncall",[830],{"type":39,"value":831},"OnCall",{"type":33,"tag":55,"props":833,"children":834},{},[835,846,857,868,879,890,901],{"type":33,"tag":59,"props":836,"children":837},{},[838,844],{"type":33,"tag":76,"props":839,"children":841},{"className":840},[],[842],{"type":39,"value":843},"list_oncall_schedules",{"type":39,"value":845}," — list OnCall schedules with optional team filtering",{"type":33,"tag":59,"props":847,"children":848},{},[849,855],{"type":33,"tag":76,"props":850,"children":852},{"className":851},[],[853],{"type":39,"value":854},"get_oncall_shift",{"type":39,"value":856}," — get detailed shift information",{"type":33,"tag":59,"props":858,"children":859},{},[860,866],{"type":33,"tag":76,"props":861,"children":863},{"className":862},[],[864],{"type":39,"value":865},"get_current_oncall_users",{"type":39,"value":867}," — get users currently on-call for a schedule",{"type":33,"tag":59,"props":869,"children":870},{},[871,877],{"type":33,"tag":76,"props":872,"children":874},{"className":873},[],[875],{"type":39,"value":876},"list_oncall_teams",{"type":39,"value":878}," — list OnCall teams",{"type":33,"tag":59,"props":880,"children":881},{},[882,888],{"type":33,"tag":76,"props":883,"children":885},{"className":884},[],[886],{"type":39,"value":887},"list_oncall_users",{"type":39,"value":889}," — list OnCall users with optional filtering",{"type":33,"tag":59,"props":891,"children":892},{},[893,899],{"type":33,"tag":76,"props":894,"children":896},{"className":895},[],[897],{"type":39,"value":898},"list_alert_groups",{"type":39,"value":900}," — list alert groups with filtering",{"type":33,"tag":59,"props":902,"children":903},{},[904,910],{"type":33,"tag":76,"props":905,"children":907},{"className":906},[],[908],{"type":39,"value":909},"get_alert_group",{"type":39,"value":911}," — get a specific alert group by ID",{"type":33,"tag":109,"props":913,"children":915},{"id":914},"sift",[916],{"type":39,"value":917},"Sift",{"type":33,"tag":55,"props":919,"children":920},{},[921,932,943,954,970],{"type":33,"tag":59,"props":922,"children":923},{},[924,930],{"type":33,"tag":76,"props":925,"children":927},{"className":926},[],[928],{"type":39,"value":929},"list_sift_investigations",{"type":39,"value":931}," — list Sift investigations",{"type":33,"tag":59,"props":933,"children":934},{},[935,941],{"type":33,"tag":76,"props":936,"children":938},{"className":937},[],[939],{"type":39,"value":940},"get_sift_investigation",{"type":39,"value":942}," — retrieve a Sift investigation by UUID",{"type":33,"tag":59,"props":944,"children":945},{},[946,952],{"type":33,"tag":76,"props":947,"children":949},{"className":948},[],[950],{"type":39,"value":951},"get_sift_analysis",{"type":39,"value":953}," — retrieve a specific analysis from an investigation",{"type":33,"tag":59,"props":955,"children":956},{},[957,963,965,969],{"type":33,"tag":76,"props":958,"children":960},{"className":959},[],[961],{"type":39,"value":962},"find_error_pattern_logs",{"type":39,"value":964}," — search Loki logs for elevated error patterns (",{"type":33,"tag":68,"props":966,"children":967},{},[968],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":59,"props":971,"children":972},{},[973,979,981,985],{"type":33,"tag":76,"props":974,"children":976},{"className":975},[],[977],{"type":39,"value":978},"find_slow_requests",{"type":39,"value":980}," — search Tempo datasources for slow requests (",{"type":33,"tag":68,"props":982,"children":983},{},[984],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":109,"props":987,"children":989},{"id":988},"other-tools",[990],{"type":39,"value":991},"Other tools",{"type":33,"tag":55,"props":993,"children":994},{},[995,1011,1022,1033,1044],{"type":33,"tag":59,"props":996,"children":997},{},[998,1004,1006,1010],{"type":33,"tag":76,"props":999,"children":1001},{"className":1000},[],[1002],{"type":39,"value":1003},"ask_assistant",{"type":39,"value":1005}," — send a prompt to Grafana Assistant and get the full reply (",{"type":33,"tag":68,"props":1007,"children":1008},{},[1009],{"type":39,"value":296},{"type":39,"value":298},{"type":33,"tag":59,"props":1012,"children":1013},{},[1014,1020],{"type":33,"tag":76,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":39,"value":1019},"get_assertions",{"type":39,"value":1021}," — get assertion summary for an entity",{"type":33,"tag":59,"props":1023,"children":1024},{},[1025,1031],{"type":33,"tag":76,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":39,"value":1030},"get_panel_image",{"type":39,"value":1032}," — render a dashboard panel as a PNG image",{"type":33,"tag":59,"props":1034,"children":1035},{},[1036,1042],{"type":33,"tag":76,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":39,"value":1041},"describe_infrastructure",{"type":39,"value":1043}," — retrieve pre-built summaries of service groups",{"type":33,"tag":59,"props":1045,"children":1046},{},[1047,1053],{"type":33,"tag":76,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":39,"value":1052},"get_query_examples",{"type":39,"value":1054}," — get example queries for datasource types",{"type":33,"tag":48,"props":1056,"children":1058},{"id":1057},"best-practices",[1059],{"type":39,"value":1060},"Best practices",{"type":33,"tag":109,"props":1062,"children":1064},{"id":1063},"grafana-assistant-questions",[1065],{"type":39,"value":1066},"Grafana Assistant questions",{"type":33,"tag":55,"props":1068,"children":1069},{},[1070,1097,1155],{"type":33,"tag":59,"props":1071,"children":1072},{},[1073,1075,1080,1082,1087,1089,1095],{"type":39,"value":1074},"For open-ended, natural-language requests (\"Why is checkout latency spiking?\", \"Summarize the current incident\", \"Explain this alert\"), use ",{"type":33,"tag":76,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":39,"value":1003},{"type":39,"value":1081}," to let Grafana Assistant plan the investigation and return a grounded reply. ",{"type":33,"tag":76,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":39,"value":1003},{"type":39,"value":1088}," is write-scoped and requires ",{"type":33,"tag":76,"props":1090,"children":1092},{"className":1091},[],[1093],{"type":39,"value":1094},"grafana:write",{"type":39,"value":1096},".",{"type":33,"tag":59,"props":1098,"children":1099},{},[1100,1102,1107,1109,1114,1116,1121,1122,1127,1128,1133,1134,1139,1141,1145,1147,1153],{"type":39,"value":1101},"If write access was not granted during OAuth authorization, ",{"type":33,"tag":76,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":39,"value":1003},{"type":39,"value":1108}," is unavailable. Fall back to the appropriate read-only tools (for example ",{"type":33,"tag":76,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":39,"value":1041},{"type":39,"value":1115},", ",{"type":33,"tag":76,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":39,"value":1019},{"type":39,"value":1115},{"type":33,"tag":76,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":39,"value":407},{"type":39,"value":1115},{"type":33,"tag":76,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":39,"value":460},{"type":39,"value":1115},{"type":33,"tag":76,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":39,"value":780},{"type":39,"value":1140},") and tell the user that the natural-language Assistant tool needs write scope. Re-authorizing only grants write if the user has the ",{"type":33,"tag":68,"props":1142,"children":1143},{},[1144],{"type":39,"value":177},{"type":39,"value":1146}," role or the ",{"type":33,"tag":76,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":39,"value":1152},"grafana-assistant-app.cloud-mcp.scope:write",{"type":39,"value":1154}," permission; otherwise a Grafana organization administrator must grant it first.",{"type":33,"tag":59,"props":1156,"children":1157},{},[1158,1160,1165],{"type":39,"value":1159},"For specific, targeted lookups (a known query, dashboard, alert, or incident), call the corresponding tool directly rather than routing through ",{"type":33,"tag":76,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":39,"value":1003},{"type":39,"value":1096},{"type":33,"tag":109,"props":1167,"children":1169},{"id":1168},"context-window-management",[1170],{"type":39,"value":1171},"Context window management",{"type":33,"tag":55,"props":1173,"children":1174},{},[1175,1194,1205,1216],{"type":33,"tag":59,"props":1176,"children":1177},{},[1178,1180,1185,1187,1192],{"type":39,"value":1179},"Use ",{"type":33,"tag":76,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":39,"value":256},{"type":39,"value":1186}," instead of ",{"type":33,"tag":76,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":39,"value":245},{"type":39,"value":1193}," to avoid consuming context with full dashboard JSON.",{"type":33,"tag":59,"props":1195,"children":1196},{},[1197,1198,1203],{"type":39,"value":1179},{"type":33,"tag":76,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":39,"value":267},{"type":39,"value":1204}," with JSONPath to extract only the specific parts you need.",{"type":33,"tag":59,"props":1206,"children":1207},{},[1208,1209,1214],{"type":39,"value":1179},{"type":33,"tag":76,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":39,"value":203},{"type":39,"value":1215}," to discover dashboards before retrieving by UID.",{"type":33,"tag":59,"props":1217,"children":1218},{},[1219,1221,1226],{"type":39,"value":1220},"When presenting Grafana data, use ",{"type":33,"tag":76,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":39,"value":225},{"type":39,"value":1227}," to provide clickable URLs rather than describing navigation steps.",{"type":33,"tag":109,"props":1229,"children":1231},{"id":1230},"querying",[1232],{"type":39,"value":1233},"Querying",{"type":33,"tag":55,"props":1235,"children":1236},{},[1237,1242,1247],{"type":33,"tag":59,"props":1238,"children":1239},{},[1240],{"type":39,"value":1241},"When querying Prometheus, always specify a reasonable time range to avoid overwhelming results.",{"type":33,"tag":59,"props":1243,"children":1244},{},[1245],{"type":39,"value":1246},"When querying Loki, prefer targeted LogQL selectors with label matchers over broad queries.",{"type":33,"tag":59,"props":1248,"children":1249},{},[1250,1252,1257,1258,1263],{"type":39,"value":1251},"Use datasource discovery tools (",{"type":33,"tag":76,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":39,"value":332},{"type":39,"value":1115},{"type":33,"tag":76,"props":1259,"children":1261},{"className":1260},[],[1262],{"type":39,"value":363},{"type":39,"value":1264},") before writing queries.",{"type":33,"tag":109,"props":1266,"children":1268},{"id":1267},"safety",[1269],{"type":39,"value":1270},"Safety",{"type":33,"tag":55,"props":1272,"children":1273},{},[1274,1298],{"type":33,"tag":59,"props":1275,"children":1276},{},[1277,1279,1284,1285,1290,1291,1296],{"type":39,"value":1278},"Avoid write operations (",{"type":33,"tag":76,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":39,"value":289},{"type":39,"value":1115},{"type":33,"tag":76,"props":1286,"children":1288},{"className":1287},[],[1289],{"type":39,"value":802},{"type":39,"value":1115},{"type":33,"tag":76,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":39,"value":681},{"type":39,"value":1297},") unless explicitly asked by the user.",{"type":33,"tag":59,"props":1299,"children":1300},{},[1301],{"type":39,"value":1302},"If write access was not granted during OAuth authorization, write tools will not be available.",{"type":33,"tag":109,"props":1304,"children":1306},{"id":1305},"access-and-permissions",[1307],{"type":39,"value":1308},"Access and permissions",{"type":33,"tag":55,"props":1310,"children":1311},{},[1312,1317,1334],{"type":33,"tag":59,"props":1313,"children":1314},{},[1315],{"type":39,"value":1316},"Access is user-scoped: the agent has only the permissions your Grafana RBAC grants you.",{"type":33,"tag":59,"props":1318,"children":1319},{},[1320,1322,1326,1327,1332],{"type":39,"value":1321},"Using the Cloud MCP server requires the ",{"type":33,"tag":68,"props":1323,"children":1324},{},[1325],{"type":39,"value":72},{"type":39,"value":1146},{"type":33,"tag":76,"props":1328,"children":1330},{"className":1329},[],[1331],{"type":39,"value":81},{"type":39,"value":1333}," permission. Editor and higher have this by default; other roles can be granted it explicitly.",{"type":33,"tag":59,"props":1335,"children":1336},{},[1337,1339,1344,1346,1350,1351,1356],{"type":39,"value":1338},"Write tools require the ",{"type":33,"tag":76,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":39,"value":1094},{"type":39,"value":1345}," OAuth scope, granted during OAuth consent. Granting that scope is itself gated by Grafana RBAC: the user needs the ",{"type":33,"tag":68,"props":1347,"children":1348},{},[1349],{"type":39,"value":177},{"type":39,"value":1146},{"type":33,"tag":76,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":39,"value":1152},{"type":39,"value":1357}," permission to authorize a write-scoped connection. Read-only access does not require it.",{"items":1359,"total":1549},[1360,1381,1398,1418,1433,1449,1462,1477,1494,1509,1522,1537],{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":1378,"repoUrl":1379,"updatedAt":1380},"faro-setup-web","instrument web apps with Grafana Faro","Instruments a web app with Grafana Faro Web SDK for frontend observability. Use when setting up error tracking, Web Vitals, session monitoring, or distributed tracing in a browser app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1366,1369,1372,1375],{"name":1367,"slug":1368,"type":15},"Distributed Tracing","distributed-tracing",{"name":1370,"slug":1371,"type":15},"Frontend","frontend",{"name":1373,"slug":1374,"type":15},"Monitoring","monitoring",{"name":1376,"slug":1377,"type":15},"Observability","observability",1103,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Ffaro-web-sdk","2026-07-12T07:43:24.63314",{"slug":1382,"name":1382,"fn":1383,"description":1384,"org":1385,"tags":1386,"stars":1395,"repoUrl":1396,"updatedAt":1397},"configuring-yesoreyeram-infinity-datasource","configure Grafana Infinity data source","Configure the Infinity data source — base URL and allowed hosts, the authentication methods (basic, bearer token, API key, digest, OAuth passthrough, OAuth 2.0 client credentials\u002FJWT, Azure, Azure Blob, AWS), TLS, custom HTTP headers, network and security settings, the custom health check, and provisioning with a config file. Use when a user asks how to set up, configure, or change settings for the Infinity data source; how to authenticate to an API; how to allow hosts; how to provision it as YAML; or how to troubleshoot connection, authentication, or health-check issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1387,1390,1393,1394],{"name":1388,"slug":1389,"type":15},"API Development","api-development",{"name":1391,"slug":1392,"type":15},"Authentication","authentication",{"name":94,"slug":91,"type":15},{"name":9,"slug":8,"type":15},1056,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgrafana-infinity-datasource","2026-07-12T07:43:25.939136",{"slug":1399,"name":1399,"fn":1400,"description":1401,"org":1402,"tags":1403,"stars":1395,"repoUrl":1396,"updatedAt":1417},"querying-yesoreyeram-infinity-datasource","query data with Infinity datasource","Build queries with the Infinity data source — the query types (JSON, CSV, TSV, XML, GraphQL, HTML, UQL, GROQ, Google Sheets, Series, Transformations), the parsers (Frontend\u002Fsimple, Backend JSONata, JQ, UQL, GROQ) and which support alerting, the sources (URL, Inline, Reference, Azure Blob, Random walk), output formats (table, timeseries, logs, trace, node graph, dataframe), root selector and columns, computed columns\u002Ffilters\u002Fsummarize, pagination, and template variables. Use when a user asks how to query Infinity; how to fetch JSON\u002FCSV\u002FXML\u002FGraphQL\u002FHTML from a URL or inline; how to select rows and columns; how to transform data with UQL\u002FGROQ\u002FJSONata\u002FJQ; how to make a query work with alerting; how to paginate; or how to use variables in a query.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1404,1407,1410,1411,1414],{"name":1405,"slug":1406,"type":15},"CSV","csv",{"name":1408,"slug":1409,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":1412,"slug":1413,"type":15},"GraphQL","graphql",{"name":1415,"slug":1416,"type":15},"JSON","json","2026-07-15T05:34:05.773947",{"slug":1419,"name":1419,"fn":1420,"description":1421,"org":1422,"tags":1423,"stars":1430,"repoUrl":1431,"updatedAt":1432},"agento11y","manage Grafana Agent Observability resources","Inspects and manages Grafana Agent Observability resources via gcx: conversations, generations, evaluators, rules, scores, and templates. Use when the user wants to list or search conversations, inspect generations, manage evaluators (upsert, test, delete), set up evaluation rules, check scores, or browse evaluator templates. Trigger on phrases like \"list conversations\", \"search generations\", \"what did the agent do\", \"debug LLM conversation\", \"create evaluator\", \"set up evaluation rule\", \"test evaluator\", \"check scores\", \"evaluate generation quality\", or \"set up online evaluation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1424,1427,1428,1429],{"name":1425,"slug":1426,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1373,"slug":1374,"type":15},{"name":1376,"slug":1377,"type":15},430,"https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fgcx","2026-07-25T05:30:40.29622",{"slug":1434,"name":1434,"fn":1435,"description":1436,"org":1437,"tags":1438,"stars":1430,"repoUrl":1431,"updatedAt":1448},"agento11y-instrument","instrument LLM apps for agent observability","Sets up and instruments a developer's own LLM app or agent to send generations and agentic workflow to Grafana Agent Observability (the Agent Observability SDKs) — greenfield setup, fixing broken instrumentation, or filling gaps in existing instrumentation. Uses gcx for the parts a static prompt can't do: `gcx login` \u002F `gcx cloud stacks` to find the stack, and `gcx agento11y agents|conversations|generations` to VERIFY that data actually lands — so it iterates (instrument → run → verify → fix) until generations arrive, not blindly. Reads the app's code, detects language\u002Fframework, classifies instrumentation state (none \u002F partial \u002F broken), then runs a fixed gap checklist whose #1 item is the silent failure no other prompt catches: the SDK emits OTel spans\u002Fmetrics but never creates a TracerProvider\u002FMeterProvider, so without them all metrics go to a no-op and are lost. Also checks agent_version (required for per-version Performance charts), set_result completeness, SYNC vs STREAM, parent_generation_ids DAG links, and workflow-step coverage. Recommends changes citing file:line and, only with explicit confirmation, applies minimal diffs that don't change app behavior. Pulls SDK reference from agento11y's llms.txt rather than restating it, and hands off to `agento11y-test-starter` once data flows. It does NOT write test suites or set up tenant evaluations, rules, or guards — offline test suites are `agento11y-test-starter`, tenant eval rules + guards are `agento11y-prod-setup`; does NOT install coding-agent telemetry plugins (that is llms.txt \"Path A\"); does NOT mint or store credentials or invent endpoints. Trigger on phrases like \"instrument my app\", \"send my agent's traces to Grafana\", \"set up AI observability for my app\", \"my generations aren't showing up\", \"why is Performance empty\", \"add Agent Observability to my code\", \"fix my instrumentation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1439,1440,1441,1444,1447],{"name":1425,"slug":1426,"type":15},{"name":9,"slug":8,"type":15},{"name":1442,"slug":1443,"type":15},"Instrumentation","instrumentation",{"name":1445,"slug":1446,"type":15},"LLM","llm",{"name":1376,"slug":1377,"type":15},"2026-07-31T05:53:52.580237",{"slug":1450,"name":1450,"fn":1451,"description":1452,"org":1453,"tags":1454,"stars":1430,"repoUrl":1431,"updatedAt":1461},"agento11y-prod-setup","setup production evaluation for AI agents","Sets up production evaluation and guardrails for a DEPLOYED AI agent in Grafana Agent Observability, grounded in the agent's own code and its real ingested traffic. The judgment layer on top of the `agento11y` skill: it reads the agent's source (system prompt, tools, entrypoint) AND samples its live traffic via gcx, checks what evaluators\u002Frules\u002Fguards already exist, then recommends only what's missing — online eval rules (score live conversations for regressions) and guards (warn-first request-path policies that redact \u002F tool-filter and may later be promoted to deny). It drafts reviewable YAML and, only with explicit confirmation, applies via `gcx agento11y`. New guards are drafted in warn mode (safe on live traffic — warn records but never blocks). It DOES create stack-level objects — that is the point — but every write is confirmed. It never rewrites or redeploys the agent. Trigger on phrases like \"set up production evaluation\", \"my agent is in prod what should I evaluate\", \"catch quality regressions\", \"add guardrails to my agent\", \"redact PII from my agent\", \"block dangerous tools\", \"set up online evals and guards\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1455,1456,1459,1460],{"name":1425,"slug":1426,"type":15},{"name":1457,"slug":1458,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":1376,"slug":1377,"type":15},"2026-07-31T05:53:53.576347",{"slug":1463,"name":1463,"fn":1464,"description":1465,"org":1466,"tags":1467,"stars":1430,"repoUrl":1431,"updatedAt":1476},"agento11y-test-starter","build and run agent test suites","Use early in an AI-agent project — before ship, before real traffic — to build a starter test suite for the agent and run it offline. Reads the agent's own code (system prompt, tools, task), writes a labeled draft suite of test cases (happy\u002Fedge\u002Fadversarial) grounded in real lines, and recommends how to score each case (the evaluators\u002Fjudges the offline runner uses). Assesses how runnable the agent is: for an easily-invoked agent it generates a runner stub (run_experiment.py) with two holes to fill and can optionally run it (only with permission, only against the endpoint the developer configured); for agents needing a harness or full runtime it points to the existing eval infra. It runs OFFLINE and never creates tenant-level evaluators, rules, or guards — that is `agento11y-prod-setup`, for a deployed agent with real traffic. Trigger on phrases like \"how do I test my agent before shipping\", \"write test cases for my agent\", \"set up tests for my agent\", \"check my agent before prod\", \"I have no traffic yet, how do I evaluate it\", \"test my agent offline\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1468,1469,1470,1473],{"name":1425,"slug":1426,"type":15},{"name":9,"slug":8,"type":15},{"name":1471,"slug":1472,"type":15},"QA","qa",{"name":1474,"slug":1475,"type":15},"Testing","testing","2026-07-31T05:53:51.62785",{"slug":1478,"name":1478,"fn":1479,"description":1480,"org":1481,"tags":1482,"stars":1430,"repoUrl":1431,"updatedAt":1493},"create-dashboard","create Grafana dashboards with gcx","Designs and creates Grafana dashboards with gcx, using `gcx dashboards snapshot` as a visual feedback loop. Use when the user wants to create a new Grafana dashboard, add panels, variables, or annotations to an existing dashboard, design dashboard panels, variables, queries, or layout, or make a material visual redesign. Triggers on \"create dashboard\", \"new dashboard\", \"build dashboard\", \"dashboard for \u003Cservice>\", \"add panels\", \"add variable\", \"add annotation\", \"improve this dashboard\", or \"iterate on a dashboard\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1483,1486,1489,1492],{"name":1484,"slug":1485,"type":15},"Dashboards","dashboards",{"name":1487,"slug":1488,"type":15},"Data Visualization","data-visualization",{"name":1490,"slug":1491,"type":15},"Design","design",{"name":9,"slug":8,"type":15},"2026-07-25T05:30:46.289717",{"slug":1495,"name":1495,"fn":1496,"description":1497,"org":1498,"tags":1499,"stars":1430,"repoUrl":1431,"updatedAt":1508},"debug-with-grafana","investigate application issues with Grafana","Structured workflow for investigating application problems with Grafana observability data (metrics, logs, traces) via gcx. Covers live firefighting AND retrospective incident analysis: incident triage, root-cause analysis, blast-radius checks (did an incident spill into other services), verifying whether a deployment or rollout triggered an incident, finding which service, endpoint, or path owns the most errors or slow requests, checking whether retries or queue backlogs piled up, and quantifying error or latency shares over a time window. Trigger on: \"my API is returning 500 errors\", \"latency is spiking\", \"investigate why requests are failing\", \"triage the incident\", \"blast radius\", \"root cause\", \"did the rollout cause it\", \"which endpoint owns the most 5xx\", \"did retries pile up\", or any request to analyse an earlier incident window using telemetry. For authoring dashboards use create-dashboard; for dashboard inventory use manage-dashboards.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1500,1503,1504,1507],{"name":1501,"slug":1502,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":1505,"slug":1506,"type":15},"Incident Response","incident-response",{"name":1376,"slug":1377,"type":15},"2026-07-18T05:11:10.445428",{"slug":1510,"name":1510,"fn":1511,"description":1512,"org":1513,"tags":1514,"stars":1430,"repoUrl":1431,"updatedAt":1521},"diagnose-entity-graph","diagnose Grafana Entity Graph issues","Diagnose Entity Graph problems: missing entities, missing edges, disconnected clusters, or filtering issues. Use when the user reports that Entity Graph doesn't look right, services are missing, edges aren't appearing, or environments can't be filtered. Triggers for: \"entity graph is empty\", \"services missing from entity graph\", \"no edges in entity graph\", \"disconnected services\", \"can't filter entity graph\", \"entity graph not working\", \"diagnose entity graph\", \"debug knowledge graph\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1515,1516,1517,1520],{"name":1501,"slug":1502,"type":15},{"name":9,"slug":8,"type":15},{"name":1518,"slug":1519,"type":15},"Graph Analysis","graph-analysis",{"name":1376,"slug":1377,"type":15},"2026-07-25T05:30:39.380934",{"slug":1523,"name":1523,"fn":1524,"description":1525,"org":1526,"tags":1527,"stars":1430,"repoUrl":1431,"updatedAt":1536},"gcx","manage Grafana Cloud resources via gcx","Manages Grafana Cloud resources via the gcx CLI. Trigger when the user wants to inspect, create, update, delete, query, or automate any Grafana resource - dashboards, datasources, alerts, SLOs, synthetic checks, oncall, incidents, fleet, k6, knowledge graph, or adaptive telemetry.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1528,1531,1532,1533],{"name":1529,"slug":1530,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":1373,"slug":1374,"type":15},{"name":1534,"slug":1535,"type":15},"Operations","operations","2026-07-31T05:53:50.587304",{"slug":1538,"name":1538,"fn":1539,"description":1540,"org":1541,"tags":1542,"stars":1430,"repoUrl":1431,"updatedAt":1548},"gcx-demo","present gcx demo tours","Run a narrated, read-only demo tour of gcx for customer or colleague presentations. Showcases the breadth of gcx across every Grafana Cloud product area — resources, datasources, metrics, logs, traces, SLOs, alerts, synthetic monitoring, IRM, k6, fleet, and more. All commands are strictly read-only. Trigger when the user says \"demo gcx\", \"show off gcx\", \"customer demo\", \"gcx tour\", or \"\u002Fgcx-demo\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1543,1544,1545],{"name":1529,"slug":1530,"type":15},{"name":9,"slug":8,"type":15},{"name":1546,"slug":1547,"type":15},"Presentations","presentations","2026-07-25T05:30:45.282458",80,{"items":1551,"total":21},[1552,1563,1568],{"slug":1553,"name":1553,"fn":1554,"description":1555,"org":1556,"tags":1557,"stars":17,"repoUrl":18,"updatedAt":1562},"grafana-assistant-cli","interact with Grafana Assistant via CLI","Use the grafana-assistant CLI to interact with Grafana Assistant via A2A API. Covers installation, configuration, prompting, keeping conversation context, and practical patterns for ops investigations. Use when the user mentions grafana-assistant, Grafana Assistant CLI, assistant tunnel, or wants to query a Grafana instance via the assistant.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1558,1559,1560,1561],{"name":1529,"slug":1530,"type":15},{"name":9,"slug":8,"type":15},{"name":1373,"slug":1374,"type":15},{"name":1534,"slug":1535,"type":15},"2026-07-12T07:43:53.491466",{"slug":4,"name":4,"fn":5,"description":6,"org":1564,"tags":1565,"stars":17,"repoUrl":18,"updatedAt":19},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1566,1567],{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":1569,"name":1569,"fn":1570,"description":1571,"org":1572,"tags":1573,"stars":17,"repoUrl":18,"updatedAt":1580},"grafana-mcp-tools","configure and use Grafana MCP server","Install, configure, and use the Grafana MCP server effectively. Covers setup via Docker or binary, environment variables, tool categories, RBAC, and best practices for context window management. Use when the user wants to set up mcp-grafana, configure Grafana MCP tools, or needs guidance on which MCP tool to use.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1574,1575,1578,1579],{"name":94,"slug":91,"type":15},{"name":1576,"slug":1577,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:45:09.886299"]