[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-azuremanagedgrafana":3,"mdc-v1m58u-key":39,"related-org-azure-azuremanagedgrafana":1320,"related-repo-azure-azuremanagedgrafana":1501},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":13,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":37,"mdContent":38},"azuremanagedgrafana","azure_managed_grafana","monitor Azure infrastructure with Grafana","Expertise in Azure Managed Grafana including dashboards, Azure Monitor metrics, Application Insights failures and traces, Azure Data Explorer (Kusto) queries, SQL Server queries, and Azure Resource Graph. Use for querying observability data, searching dashboards, investigating failures, analyzing GenAI agent telemetry, and running KQL or SQL queries via the AMG-MCP endpoint.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[14,18,21,24,25],{"name":15,"slug":16,"type":17},"Observability","observability","tag",{"name":19,"slug":20,"type":17},"Application Insights","application-insights",{"name":22,"slug":23,"type":17},"Dashboards","dashboards",{"name":12,"slug":9,"type":17},{"name":26,"slug":27,"type":17},"Monitoring","monitoring",2,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fsre-agent-plugins","2026-07-12T08:19:37.659849",null,5,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":36},[],"Azure SRE Agent Plugins","https:\u002F\u002Fgithub.com\u002FAzure\u002Fsre-agent-plugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fazure-managed-grafana\u002Fskills\u002Fazure_managed_grafana","---\nname: azure_managed_grafana\ndescription: Expertise in Azure Managed Grafana including dashboards, Azure Monitor metrics, Application Insights failures and traces, Azure Data Explorer (Kusto) queries, SQL Server queries, and Azure Resource Graph. Use for querying observability data, searching dashboards, investigating failures, analyzing GenAI agent telemetry, and running KQL or SQL queries via the AMG-MCP endpoint.\n---\n\n# Azure Managed Grafana Observability Skill\n\nYou have access to the Azure Managed Grafana MCP server (AMG-MCP) tools for querying observability data, dashboards, and connected data sources.\n\n## Available Tools\n\n| Tool | Purpose |\n|------|---------|\n| **amgmcp_insights_get_failures** | Get failure insights from Application Insights — failed requests, dependencies, and exceptions |\n| **amgmcp_insights_get_agents** | Get GenAI agent insights from Application Insights — invocations, token usage, latency (OpenTelemetry GenAI Semantic Conventions) |\n| **amgmcp_kusto_get_metadata** | List connected Azure Data Explorer clusters with databases and schema |\n| **amgmcp_kusto_query** | Execute KQL queries against Azure Data Explorer clusters |\n| **amgmcp_mssql_get_metadata** | List connected SQL Server data sources with databases, tables, and column schemas |\n| **amgmcp_mssql_query** | Execute SQL queries against connected Microsoft SQL Server data sources |\n| **amgmcp_query_application_insights_trace** | Query Application Insights trace data, aggregating across multiple instances |\n| **amgmcp_query_azure_subscriptions** | List Azure subscriptions accessible through the Grafana Azure Monitor data source |\n| **amgmcp_query_resource_graph** | Execute Azure Resource Graph (ARG) queries for resource inventory and configuration |\n| **amgmcp_query_resource_log** | Query Azure resource logs through the Azure Monitor data source |\n| **amgmcp_query_resource_metric** | Query Azure resource metric values through the Azure Monitor data source |\n| **amgmcp_query_resource_metric_definition** | Get available metric definitions for Azure resources |\n| **amgmcp_dashboard_search** | Search Grafana dashboards by query string — returns title, UID, folder, tags, and URL |\n| **amgmcp_datasource_list** | List all configured Grafana data sources |\n\n## Workflow\n\n### General Investigation\n\n1. **Understand the scope** — Identify which Azure resources, services, or data sources are involved\n2. **Discover data sources** — Use `amgmcp_datasource_list` to see what's connected\n3. **Check subscriptions** — Use `amgmcp_query_azure_subscriptions` to list accessible subscriptions\n4. **Query relevant data** — Use the appropriate tool for the data type (metrics, logs, traces, KQL, SQL)\n5. **Search dashboards** — Use `amgmcp_dashboard_search` to find existing dashboards with relevant visualizations\n6. **Analyze and recommend** — Summarize findings with actionable next steps\n\n### Failure Investigation\n\n1. **Get failure overview** — Use `amgmcp_insights_get_failures` to retrieve failure summary (failed requests, dependencies, exceptions)\n2. **Trace failures** — Use `amgmcp_query_application_insights_trace` to follow request traces across services\n3. **Check metrics** — Use `amgmcp_query_resource_metric` to correlate with resource-level metrics (CPU, memory, latency)\n4. **Query logs** — Use `amgmcp_query_resource_log` for detailed log entries around the failure time\n5. **Check resource health** — Use `amgmcp_query_resource_graph` to verify resource configuration and status\n\n### Azure Monitor Metrics Analysis\n\n1. **Discover metrics** — Use `amgmcp_query_resource_metric_definition` to list available metrics for a resource\n2. **Query metric values** — Use `amgmcp_query_resource_metric` with the desired metric name, aggregation, and time range\n3. **Correlate** — Check related resources' metrics to identify cascading issues\n\n### Azure Data Explorer (Kusto) Queries\n\n1. **Get cluster metadata** — Use `amgmcp_kusto_get_metadata` to list clusters, databases, and table schemas\n2. **Write and run KQL** — Use `amgmcp_kusto_query` to execute Kusto Query Language queries\n\n**Common KQL patterns:**\n\n```kql\n\u002F\u002F Recent errors from a table\nTableName\n| where Timestamp > ago(1h)\n| where Level == \"Error\"\n| project Timestamp, Message, Source\n| order by Timestamp desc\n| take 100\n\n\u002F\u002F Aggregated error counts\nTableName\n| where Timestamp > ago(24h)\n| summarize ErrorCount = count() by bin(Timestamp, 1h), Source\n| order by Timestamp desc\n\n\u002F\u002F Percentile latency analysis\nRequestTable\n| where Timestamp > ago(1h)\n| summarize p50 = percentile(Duration, 50),\n            p95 = percentile(Duration, 95),\n            p99 = percentile(Duration, 99)\n  by bin(Timestamp, 5m)\n```\n\n### SQL Server Queries\n\n1. **Get schema metadata** — Use `amgmcp_mssql_get_metadata` to list databases, tables, and columns\n2. **Run queries** — Use `amgmcp_mssql_query` to execute SQL queries\n\n### GenAI Agent Telemetry\n\nUse `amgmcp_insights_get_agents` to analyze GenAI agent performance. This tool queries data following [OpenTelemetry Generative AI Semantic Conventions](https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fspecs\u002Fsemconv\u002Fgen-ai\u002F) and returns:\n- Agent invocation counts\n- Token usage (input\u002Foutput)\n- Latency distributions\n- Error rates\n\n### Azure Resource Graph Queries\n\nUse `amgmcp_query_resource_graph` to query resource inventory across subscriptions:\n\n```kusto\n\u002F\u002F List all VMs and their status\nResources\n| where type == \"microsoft.compute\u002Fvirtualmachines\"\n| project name, location, properties.hardwareProfile.vmSize, powerState = properties.extended.instanceView.powerState.code\n\n\u002F\u002F Find resources by tag\nResources\n| where tags[\"environment\"] == \"production\"\n| summarize count() by type\n\n\u002F\u002F Check NSG rules\nResources\n| where type == \"microsoft.network\u002Fnetworksecuritygroups\"\n| mv-expand rules = properties.securityRules\n| project name, ruleName = rules.name, access = rules.properties.access, direction = rules.properties.direction\n```\n\n## Best Practices\n\n- **Start with data source discovery** — Always use `amgmcp_datasource_list` to understand what's connected before querying\n- **Check metric definitions first** — Use `amgmcp_query_resource_metric_definition` before querying metrics to get correct names\n- **Get schema before querying** — Use `amgmcp_kusto_get_metadata` or `amgmcp_mssql_get_metadata` to discover table\u002Fcolumn names\n- **Use dashboards for context** — Search for existing dashboards with `amgmcp_dashboard_search` — they often reveal which metrics and queries are most relevant\n- **Scope time ranges** — Always specify reasonable time ranges to avoid excessive data retrieval\n- **Aggregate across instances** — Use `amgmcp_query_application_insights_trace` when traces span multiple Application Insights instances\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| 401\u002F403 errors | Verify the service account token or Entra ID token is valid and not expired |\n| Token expired | Grafana service account tokens don't expire; if using Entra ID, refresh the token |\n| No data returned | Verify the Grafana instance has the expected data sources configured |\n| Data source not found | Use `amgmcp_datasource_list` to check available data sources |\n| Metric not found | Use `amgmcp_query_resource_metric_definition` to discover valid metric names |\n| KQL query error | Verify table and column names with `amgmcp_kusto_get_metadata` |\n| SQL query error | Verify schema with `amgmcp_mssql_get_metadata` |\n| Dashboard not found | Try broader search terms; search matches title, tags, and folder names |\n| Sovereign cloud | AMG-MCP is only available in Azure Public Cloud — sovereign clouds are not yet supported |\n",{"data":40,"body":41},{"name":5,"description":7},{"type":42,"children":43},"root",[44,53,59,66,319,325,332,417,423,506,512,557,563,598,606,803,809,844,850,873,897,903,914,1039,1045,1147,1153,1314],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"azure-managed-grafana-observability-skill",[50],{"type":51,"value":52},"text","Azure Managed Grafana Observability Skill",{"type":45,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"You have access to the Azure Managed Grafana MCP server (AMG-MCP) tools for querying observability data, dashboards, and connected data sources.",{"type":45,"tag":60,"props":61,"children":63},"h2",{"id":62},"available-tools",[64],{"type":51,"value":65},"Available Tools",{"type":45,"tag":67,"props":68,"children":69},"table",{},[70,89],{"type":45,"tag":71,"props":72,"children":73},"thead",{},[74],{"type":45,"tag":75,"props":76,"children":77},"tr",{},[78,84],{"type":45,"tag":79,"props":80,"children":81},"th",{},[82],{"type":51,"value":83},"Tool",{"type":45,"tag":79,"props":85,"children":86},{},[87],{"type":51,"value":88},"Purpose",{"type":45,"tag":90,"props":91,"children":92},"tbody",{},[93,111,127,143,159,175,191,207,223,239,255,271,287,303],{"type":45,"tag":75,"props":94,"children":95},{},[96,106],{"type":45,"tag":97,"props":98,"children":99},"td",{},[100],{"type":45,"tag":101,"props":102,"children":103},"strong",{},[104],{"type":51,"value":105},"amgmcp_insights_get_failures",{"type":45,"tag":97,"props":107,"children":108},{},[109],{"type":51,"value":110},"Get failure insights from Application Insights — failed requests, dependencies, and exceptions",{"type":45,"tag":75,"props":112,"children":113},{},[114,122],{"type":45,"tag":97,"props":115,"children":116},{},[117],{"type":45,"tag":101,"props":118,"children":119},{},[120],{"type":51,"value":121},"amgmcp_insights_get_agents",{"type":45,"tag":97,"props":123,"children":124},{},[125],{"type":51,"value":126},"Get GenAI agent insights from Application Insights — invocations, token usage, latency (OpenTelemetry GenAI Semantic Conventions)",{"type":45,"tag":75,"props":128,"children":129},{},[130,138],{"type":45,"tag":97,"props":131,"children":132},{},[133],{"type":45,"tag":101,"props":134,"children":135},{},[136],{"type":51,"value":137},"amgmcp_kusto_get_metadata",{"type":45,"tag":97,"props":139,"children":140},{},[141],{"type":51,"value":142},"List connected Azure Data Explorer clusters with databases and schema",{"type":45,"tag":75,"props":144,"children":145},{},[146,154],{"type":45,"tag":97,"props":147,"children":148},{},[149],{"type":45,"tag":101,"props":150,"children":151},{},[152],{"type":51,"value":153},"amgmcp_kusto_query",{"type":45,"tag":97,"props":155,"children":156},{},[157],{"type":51,"value":158},"Execute KQL queries against Azure Data Explorer clusters",{"type":45,"tag":75,"props":160,"children":161},{},[162,170],{"type":45,"tag":97,"props":163,"children":164},{},[165],{"type":45,"tag":101,"props":166,"children":167},{},[168],{"type":51,"value":169},"amgmcp_mssql_get_metadata",{"type":45,"tag":97,"props":171,"children":172},{},[173],{"type":51,"value":174},"List connected SQL Server data sources with databases, tables, and column schemas",{"type":45,"tag":75,"props":176,"children":177},{},[178,186],{"type":45,"tag":97,"props":179,"children":180},{},[181],{"type":45,"tag":101,"props":182,"children":183},{},[184],{"type":51,"value":185},"amgmcp_mssql_query",{"type":45,"tag":97,"props":187,"children":188},{},[189],{"type":51,"value":190},"Execute SQL queries against connected Microsoft SQL Server data sources",{"type":45,"tag":75,"props":192,"children":193},{},[194,202],{"type":45,"tag":97,"props":195,"children":196},{},[197],{"type":45,"tag":101,"props":198,"children":199},{},[200],{"type":51,"value":201},"amgmcp_query_application_insights_trace",{"type":45,"tag":97,"props":203,"children":204},{},[205],{"type":51,"value":206},"Query Application Insights trace data, aggregating across multiple instances",{"type":45,"tag":75,"props":208,"children":209},{},[210,218],{"type":45,"tag":97,"props":211,"children":212},{},[213],{"type":45,"tag":101,"props":214,"children":215},{},[216],{"type":51,"value":217},"amgmcp_query_azure_subscriptions",{"type":45,"tag":97,"props":219,"children":220},{},[221],{"type":51,"value":222},"List Azure subscriptions accessible through the Grafana Azure Monitor data source",{"type":45,"tag":75,"props":224,"children":225},{},[226,234],{"type":45,"tag":97,"props":227,"children":228},{},[229],{"type":45,"tag":101,"props":230,"children":231},{},[232],{"type":51,"value":233},"amgmcp_query_resource_graph",{"type":45,"tag":97,"props":235,"children":236},{},[237],{"type":51,"value":238},"Execute Azure Resource Graph (ARG) queries for resource inventory and configuration",{"type":45,"tag":75,"props":240,"children":241},{},[242,250],{"type":45,"tag":97,"props":243,"children":244},{},[245],{"type":45,"tag":101,"props":246,"children":247},{},[248],{"type":51,"value":249},"amgmcp_query_resource_log",{"type":45,"tag":97,"props":251,"children":252},{},[253],{"type":51,"value":254},"Query Azure resource logs through the Azure Monitor data source",{"type":45,"tag":75,"props":256,"children":257},{},[258,266],{"type":45,"tag":97,"props":259,"children":260},{},[261],{"type":45,"tag":101,"props":262,"children":263},{},[264],{"type":51,"value":265},"amgmcp_query_resource_metric",{"type":45,"tag":97,"props":267,"children":268},{},[269],{"type":51,"value":270},"Query Azure resource metric values through the Azure Monitor data source",{"type":45,"tag":75,"props":272,"children":273},{},[274,282],{"type":45,"tag":97,"props":275,"children":276},{},[277],{"type":45,"tag":101,"props":278,"children":279},{},[280],{"type":51,"value":281},"amgmcp_query_resource_metric_definition",{"type":45,"tag":97,"props":283,"children":284},{},[285],{"type":51,"value":286},"Get available metric definitions for Azure resources",{"type":45,"tag":75,"props":288,"children":289},{},[290,298],{"type":45,"tag":97,"props":291,"children":292},{},[293],{"type":45,"tag":101,"props":294,"children":295},{},[296],{"type":51,"value":297},"amgmcp_dashboard_search",{"type":45,"tag":97,"props":299,"children":300},{},[301],{"type":51,"value":302},"Search Grafana dashboards by query string — returns title, UID, folder, tags, and URL",{"type":45,"tag":75,"props":304,"children":305},{},[306,314],{"type":45,"tag":97,"props":307,"children":308},{},[309],{"type":45,"tag":101,"props":310,"children":311},{},[312],{"type":51,"value":313},"amgmcp_datasource_list",{"type":45,"tag":97,"props":315,"children":316},{},[317],{"type":51,"value":318},"List all configured Grafana data sources",{"type":45,"tag":60,"props":320,"children":322},{"id":321},"workflow",[323],{"type":51,"value":324},"Workflow",{"type":45,"tag":326,"props":327,"children":329},"h3",{"id":328},"general-investigation",[330],{"type":51,"value":331},"General Investigation",{"type":45,"tag":333,"props":334,"children":335},"ol",{},[336,347,365,381,391,407],{"type":45,"tag":337,"props":338,"children":339},"li",{},[340,345],{"type":45,"tag":101,"props":341,"children":342},{},[343],{"type":51,"value":344},"Understand the scope",{"type":51,"value":346}," — Identify which Azure resources, services, or data sources are involved",{"type":45,"tag":337,"props":348,"children":349},{},[350,355,357,363],{"type":45,"tag":101,"props":351,"children":352},{},[353],{"type":51,"value":354},"Discover data sources",{"type":51,"value":356}," — Use ",{"type":45,"tag":358,"props":359,"children":361},"code",{"className":360},[],[362],{"type":51,"value":313},{"type":51,"value":364}," to see what's connected",{"type":45,"tag":337,"props":366,"children":367},{},[368,373,374,379],{"type":45,"tag":101,"props":369,"children":370},{},[371],{"type":51,"value":372},"Check subscriptions",{"type":51,"value":356},{"type":45,"tag":358,"props":375,"children":377},{"className":376},[],[378],{"type":51,"value":217},{"type":51,"value":380}," to list accessible subscriptions",{"type":45,"tag":337,"props":382,"children":383},{},[384,389],{"type":45,"tag":101,"props":385,"children":386},{},[387],{"type":51,"value":388},"Query relevant data",{"type":51,"value":390}," — Use the appropriate tool for the data type (metrics, logs, traces, KQL, SQL)",{"type":45,"tag":337,"props":392,"children":393},{},[394,399,400,405],{"type":45,"tag":101,"props":395,"children":396},{},[397],{"type":51,"value":398},"Search dashboards",{"type":51,"value":356},{"type":45,"tag":358,"props":401,"children":403},{"className":402},[],[404],{"type":51,"value":297},{"type":51,"value":406}," to find existing dashboards with relevant visualizations",{"type":45,"tag":337,"props":408,"children":409},{},[410,415],{"type":45,"tag":101,"props":411,"children":412},{},[413],{"type":51,"value":414},"Analyze and recommend",{"type":51,"value":416}," — Summarize findings with actionable next steps",{"type":45,"tag":326,"props":418,"children":420},{"id":419},"failure-investigation",[421],{"type":51,"value":422},"Failure Investigation",{"type":45,"tag":333,"props":424,"children":425},{},[426,442,458,474,490],{"type":45,"tag":337,"props":427,"children":428},{},[429,434,435,440],{"type":45,"tag":101,"props":430,"children":431},{},[432],{"type":51,"value":433},"Get failure overview",{"type":51,"value":356},{"type":45,"tag":358,"props":436,"children":438},{"className":437},[],[439],{"type":51,"value":105},{"type":51,"value":441}," to retrieve failure summary (failed requests, dependencies, exceptions)",{"type":45,"tag":337,"props":443,"children":444},{},[445,450,451,456],{"type":45,"tag":101,"props":446,"children":447},{},[448],{"type":51,"value":449},"Trace failures",{"type":51,"value":356},{"type":45,"tag":358,"props":452,"children":454},{"className":453},[],[455],{"type":51,"value":201},{"type":51,"value":457}," to follow request traces across services",{"type":45,"tag":337,"props":459,"children":460},{},[461,466,467,472],{"type":45,"tag":101,"props":462,"children":463},{},[464],{"type":51,"value":465},"Check metrics",{"type":51,"value":356},{"type":45,"tag":358,"props":468,"children":470},{"className":469},[],[471],{"type":51,"value":265},{"type":51,"value":473}," to correlate with resource-level metrics (CPU, memory, latency)",{"type":45,"tag":337,"props":475,"children":476},{},[477,482,483,488],{"type":45,"tag":101,"props":478,"children":479},{},[480],{"type":51,"value":481},"Query logs",{"type":51,"value":356},{"type":45,"tag":358,"props":484,"children":486},{"className":485},[],[487],{"type":51,"value":249},{"type":51,"value":489}," for detailed log entries around the failure time",{"type":45,"tag":337,"props":491,"children":492},{},[493,498,499,504],{"type":45,"tag":101,"props":494,"children":495},{},[496],{"type":51,"value":497},"Check resource health",{"type":51,"value":356},{"type":45,"tag":358,"props":500,"children":502},{"className":501},[],[503],{"type":51,"value":233},{"type":51,"value":505}," to verify resource configuration and status",{"type":45,"tag":326,"props":507,"children":509},{"id":508},"azure-monitor-metrics-analysis",[510],{"type":51,"value":511},"Azure Monitor Metrics Analysis",{"type":45,"tag":333,"props":513,"children":514},{},[515,531,547],{"type":45,"tag":337,"props":516,"children":517},{},[518,523,524,529],{"type":45,"tag":101,"props":519,"children":520},{},[521],{"type":51,"value":522},"Discover metrics",{"type":51,"value":356},{"type":45,"tag":358,"props":525,"children":527},{"className":526},[],[528],{"type":51,"value":281},{"type":51,"value":530}," to list available metrics for a resource",{"type":45,"tag":337,"props":532,"children":533},{},[534,539,540,545],{"type":45,"tag":101,"props":535,"children":536},{},[537],{"type":51,"value":538},"Query metric values",{"type":51,"value":356},{"type":45,"tag":358,"props":541,"children":543},{"className":542},[],[544],{"type":51,"value":265},{"type":51,"value":546}," with the desired metric name, aggregation, and time range",{"type":45,"tag":337,"props":548,"children":549},{},[550,555],{"type":45,"tag":101,"props":551,"children":552},{},[553],{"type":51,"value":554},"Correlate",{"type":51,"value":556}," — Check related resources' metrics to identify cascading issues",{"type":45,"tag":326,"props":558,"children":560},{"id":559},"azure-data-explorer-kusto-queries",[561],{"type":51,"value":562},"Azure Data Explorer (Kusto) Queries",{"type":45,"tag":333,"props":564,"children":565},{},[566,582],{"type":45,"tag":337,"props":567,"children":568},{},[569,574,575,580],{"type":45,"tag":101,"props":570,"children":571},{},[572],{"type":51,"value":573},"Get cluster metadata",{"type":51,"value":356},{"type":45,"tag":358,"props":576,"children":578},{"className":577},[],[579],{"type":51,"value":137},{"type":51,"value":581}," to list clusters, databases, and table schemas",{"type":45,"tag":337,"props":583,"children":584},{},[585,590,591,596],{"type":45,"tag":101,"props":586,"children":587},{},[588],{"type":51,"value":589},"Write and run KQL",{"type":51,"value":356},{"type":45,"tag":358,"props":592,"children":594},{"className":593},[],[595],{"type":51,"value":153},{"type":51,"value":597}," to execute Kusto Query Language queries",{"type":45,"tag":54,"props":599,"children":600},{},[601],{"type":45,"tag":101,"props":602,"children":603},{},[604],{"type":51,"value":605},"Common KQL patterns:",{"type":45,"tag":607,"props":608,"children":613},"pre",{"className":609,"code":610,"language":611,"meta":612,"style":612},"language-kql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Recent errors from a table\nTableName\n| where Timestamp > ago(1h)\n| where Level == \"Error\"\n| project Timestamp, Message, Source\n| order by Timestamp desc\n| take 100\n\n\u002F\u002F Aggregated error counts\nTableName\n| where Timestamp > ago(24h)\n| summarize ErrorCount = count() by bin(Timestamp, 1h), Source\n| order by Timestamp desc\n\n\u002F\u002F Percentile latency analysis\nRequestTable\n| where Timestamp > ago(1h)\n| summarize p50 = percentile(Duration, 50),\n            p95 = percentile(Duration, 95),\n            p99 = percentile(Duration, 99)\n  by bin(Timestamp, 5m)\n","kql","",[614],{"type":45,"tag":358,"props":615,"children":616},{"__ignoreMap":612},[617,628,636,645,654,662,671,680,690,699,707,716,725,733,741,750,759,767,776,785,794],{"type":45,"tag":618,"props":619,"children":622},"span",{"class":620,"line":621},"line",1,[623],{"type":45,"tag":618,"props":624,"children":625},{},[626],{"type":51,"value":627},"\u002F\u002F Recent errors from a table\n",{"type":45,"tag":618,"props":629,"children":630},{"class":620,"line":28},[631],{"type":45,"tag":618,"props":632,"children":633},{},[634],{"type":51,"value":635},"TableName\n",{"type":45,"tag":618,"props":637,"children":639},{"class":620,"line":638},3,[640],{"type":45,"tag":618,"props":641,"children":642},{},[643],{"type":51,"value":644},"| where Timestamp > ago(1h)\n",{"type":45,"tag":618,"props":646,"children":648},{"class":620,"line":647},4,[649],{"type":45,"tag":618,"props":650,"children":651},{},[652],{"type":51,"value":653},"| where Level == \"Error\"\n",{"type":45,"tag":618,"props":655,"children":656},{"class":620,"line":32},[657],{"type":45,"tag":618,"props":658,"children":659},{},[660],{"type":51,"value":661},"| project Timestamp, Message, Source\n",{"type":45,"tag":618,"props":663,"children":665},{"class":620,"line":664},6,[666],{"type":45,"tag":618,"props":667,"children":668},{},[669],{"type":51,"value":670},"| order by Timestamp desc\n",{"type":45,"tag":618,"props":672,"children":674},{"class":620,"line":673},7,[675],{"type":45,"tag":618,"props":676,"children":677},{},[678],{"type":51,"value":679},"| take 100\n",{"type":45,"tag":618,"props":681,"children":683},{"class":620,"line":682},8,[684],{"type":45,"tag":618,"props":685,"children":687},{"emptyLinePlaceholder":686},true,[688],{"type":51,"value":689},"\n",{"type":45,"tag":618,"props":691,"children":693},{"class":620,"line":692},9,[694],{"type":45,"tag":618,"props":695,"children":696},{},[697],{"type":51,"value":698},"\u002F\u002F Aggregated error counts\n",{"type":45,"tag":618,"props":700,"children":702},{"class":620,"line":701},10,[703],{"type":45,"tag":618,"props":704,"children":705},{},[706],{"type":51,"value":635},{"type":45,"tag":618,"props":708,"children":710},{"class":620,"line":709},11,[711],{"type":45,"tag":618,"props":712,"children":713},{},[714],{"type":51,"value":715},"| where Timestamp > ago(24h)\n",{"type":45,"tag":618,"props":717,"children":719},{"class":620,"line":718},12,[720],{"type":45,"tag":618,"props":721,"children":722},{},[723],{"type":51,"value":724},"| summarize ErrorCount = count() by bin(Timestamp, 1h), Source\n",{"type":45,"tag":618,"props":726,"children":728},{"class":620,"line":727},13,[729],{"type":45,"tag":618,"props":730,"children":731},{},[732],{"type":51,"value":670},{"type":45,"tag":618,"props":734,"children":736},{"class":620,"line":735},14,[737],{"type":45,"tag":618,"props":738,"children":739},{"emptyLinePlaceholder":686},[740],{"type":51,"value":689},{"type":45,"tag":618,"props":742,"children":744},{"class":620,"line":743},15,[745],{"type":45,"tag":618,"props":746,"children":747},{},[748],{"type":51,"value":749},"\u002F\u002F Percentile latency analysis\n",{"type":45,"tag":618,"props":751,"children":753},{"class":620,"line":752},16,[754],{"type":45,"tag":618,"props":755,"children":756},{},[757],{"type":51,"value":758},"RequestTable\n",{"type":45,"tag":618,"props":760,"children":762},{"class":620,"line":761},17,[763],{"type":45,"tag":618,"props":764,"children":765},{},[766],{"type":51,"value":644},{"type":45,"tag":618,"props":768,"children":770},{"class":620,"line":769},18,[771],{"type":45,"tag":618,"props":772,"children":773},{},[774],{"type":51,"value":775},"| summarize p50 = percentile(Duration, 50),\n",{"type":45,"tag":618,"props":777,"children":779},{"class":620,"line":778},19,[780],{"type":45,"tag":618,"props":781,"children":782},{},[783],{"type":51,"value":784},"            p95 = percentile(Duration, 95),\n",{"type":45,"tag":618,"props":786,"children":788},{"class":620,"line":787},20,[789],{"type":45,"tag":618,"props":790,"children":791},{},[792],{"type":51,"value":793},"            p99 = percentile(Duration, 99)\n",{"type":45,"tag":618,"props":795,"children":797},{"class":620,"line":796},21,[798],{"type":45,"tag":618,"props":799,"children":800},{},[801],{"type":51,"value":802},"  by bin(Timestamp, 5m)\n",{"type":45,"tag":326,"props":804,"children":806},{"id":805},"sql-server-queries",[807],{"type":51,"value":808},"SQL Server Queries",{"type":45,"tag":333,"props":810,"children":811},{},[812,828],{"type":45,"tag":337,"props":813,"children":814},{},[815,820,821,826],{"type":45,"tag":101,"props":816,"children":817},{},[818],{"type":51,"value":819},"Get schema metadata",{"type":51,"value":356},{"type":45,"tag":358,"props":822,"children":824},{"className":823},[],[825],{"type":51,"value":169},{"type":51,"value":827}," to list databases, tables, and columns",{"type":45,"tag":337,"props":829,"children":830},{},[831,836,837,842],{"type":45,"tag":101,"props":832,"children":833},{},[834],{"type":51,"value":835},"Run queries",{"type":51,"value":356},{"type":45,"tag":358,"props":838,"children":840},{"className":839},[],[841],{"type":51,"value":185},{"type":51,"value":843}," to execute SQL queries",{"type":45,"tag":326,"props":845,"children":847},{"id":846},"genai-agent-telemetry",[848],{"type":51,"value":849},"GenAI Agent Telemetry",{"type":45,"tag":54,"props":851,"children":852},{},[853,855,860,862,871],{"type":51,"value":854},"Use ",{"type":45,"tag":358,"props":856,"children":858},{"className":857},[],[859],{"type":51,"value":121},{"type":51,"value":861}," to analyze GenAI agent performance. This tool queries data following ",{"type":45,"tag":863,"props":864,"children":868},"a",{"href":865,"rel":866},"https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fspecs\u002Fsemconv\u002Fgen-ai\u002F",[867],"nofollow",[869],{"type":51,"value":870},"OpenTelemetry Generative AI Semantic Conventions",{"type":51,"value":872}," and returns:",{"type":45,"tag":874,"props":875,"children":876},"ul",{},[877,882,887,892],{"type":45,"tag":337,"props":878,"children":879},{},[880],{"type":51,"value":881},"Agent invocation counts",{"type":45,"tag":337,"props":883,"children":884},{},[885],{"type":51,"value":886},"Token usage (input\u002Foutput)",{"type":45,"tag":337,"props":888,"children":889},{},[890],{"type":51,"value":891},"Latency distributions",{"type":45,"tag":337,"props":893,"children":894},{},[895],{"type":51,"value":896},"Error rates",{"type":45,"tag":326,"props":898,"children":900},{"id":899},"azure-resource-graph-queries",[901],{"type":51,"value":902},"Azure Resource Graph Queries",{"type":45,"tag":54,"props":904,"children":905},{},[906,907,912],{"type":51,"value":854},{"type":45,"tag":358,"props":908,"children":910},{"className":909},[],[911],{"type":51,"value":233},{"type":51,"value":913}," to query resource inventory across subscriptions:",{"type":45,"tag":607,"props":915,"children":919},{"className":916,"code":917,"language":918,"meta":612,"style":612},"language-kusto shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F List all VMs and their status\nResources\n| where type == \"microsoft.compute\u002Fvirtualmachines\"\n| project name, location, properties.hardwareProfile.vmSize, powerState = properties.extended.instanceView.powerState.code\n\n\u002F\u002F Find resources by tag\nResources\n| where tags[\"environment\"] == \"production\"\n| summarize count() by type\n\n\u002F\u002F Check NSG rules\nResources\n| where type == \"microsoft.network\u002Fnetworksecuritygroups\"\n| mv-expand rules = properties.securityRules\n| project name, ruleName = rules.name, access = rules.properties.access, direction = rules.properties.direction\n","kusto",[920],{"type":45,"tag":358,"props":921,"children":922},{"__ignoreMap":612},[923,931,939,947,955,962,970,977,985,993,1000,1008,1015,1023,1031],{"type":45,"tag":618,"props":924,"children":925},{"class":620,"line":621},[926],{"type":45,"tag":618,"props":927,"children":928},{},[929],{"type":51,"value":930},"\u002F\u002F List all VMs and their status\n",{"type":45,"tag":618,"props":932,"children":933},{"class":620,"line":28},[934],{"type":45,"tag":618,"props":935,"children":936},{},[937],{"type":51,"value":938},"Resources\n",{"type":45,"tag":618,"props":940,"children":941},{"class":620,"line":638},[942],{"type":45,"tag":618,"props":943,"children":944},{},[945],{"type":51,"value":946},"| where type == \"microsoft.compute\u002Fvirtualmachines\"\n",{"type":45,"tag":618,"props":948,"children":949},{"class":620,"line":647},[950],{"type":45,"tag":618,"props":951,"children":952},{},[953],{"type":51,"value":954},"| project name, location, properties.hardwareProfile.vmSize, powerState = properties.extended.instanceView.powerState.code\n",{"type":45,"tag":618,"props":956,"children":957},{"class":620,"line":32},[958],{"type":45,"tag":618,"props":959,"children":960},{"emptyLinePlaceholder":686},[961],{"type":51,"value":689},{"type":45,"tag":618,"props":963,"children":964},{"class":620,"line":664},[965],{"type":45,"tag":618,"props":966,"children":967},{},[968],{"type":51,"value":969},"\u002F\u002F Find resources by tag\n",{"type":45,"tag":618,"props":971,"children":972},{"class":620,"line":673},[973],{"type":45,"tag":618,"props":974,"children":975},{},[976],{"type":51,"value":938},{"type":45,"tag":618,"props":978,"children":979},{"class":620,"line":682},[980],{"type":45,"tag":618,"props":981,"children":982},{},[983],{"type":51,"value":984},"| where tags[\"environment\"] == \"production\"\n",{"type":45,"tag":618,"props":986,"children":987},{"class":620,"line":692},[988],{"type":45,"tag":618,"props":989,"children":990},{},[991],{"type":51,"value":992},"| summarize count() by type\n",{"type":45,"tag":618,"props":994,"children":995},{"class":620,"line":701},[996],{"type":45,"tag":618,"props":997,"children":998},{"emptyLinePlaceholder":686},[999],{"type":51,"value":689},{"type":45,"tag":618,"props":1001,"children":1002},{"class":620,"line":709},[1003],{"type":45,"tag":618,"props":1004,"children":1005},{},[1006],{"type":51,"value":1007},"\u002F\u002F Check NSG rules\n",{"type":45,"tag":618,"props":1009,"children":1010},{"class":620,"line":718},[1011],{"type":45,"tag":618,"props":1012,"children":1013},{},[1014],{"type":51,"value":938},{"type":45,"tag":618,"props":1016,"children":1017},{"class":620,"line":727},[1018],{"type":45,"tag":618,"props":1019,"children":1020},{},[1021],{"type":51,"value":1022},"| where type == \"microsoft.network\u002Fnetworksecuritygroups\"\n",{"type":45,"tag":618,"props":1024,"children":1025},{"class":620,"line":735},[1026],{"type":45,"tag":618,"props":1027,"children":1028},{},[1029],{"type":51,"value":1030},"| mv-expand rules = properties.securityRules\n",{"type":45,"tag":618,"props":1032,"children":1033},{"class":620,"line":743},[1034],{"type":45,"tag":618,"props":1035,"children":1036},{},[1037],{"type":51,"value":1038},"| project name, ruleName = rules.name, access = rules.properties.access, direction = rules.properties.direction\n",{"type":45,"tag":60,"props":1040,"children":1042},{"id":1041},"best-practices",[1043],{"type":51,"value":1044},"Best Practices",{"type":45,"tag":874,"props":1046,"children":1047},{},[1048,1065,1081,1104,1121,1131],{"type":45,"tag":337,"props":1049,"children":1050},{},[1051,1056,1058,1063],{"type":45,"tag":101,"props":1052,"children":1053},{},[1054],{"type":51,"value":1055},"Start with data source discovery",{"type":51,"value":1057}," — Always use ",{"type":45,"tag":358,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":51,"value":313},{"type":51,"value":1064}," to understand what's connected before querying",{"type":45,"tag":337,"props":1066,"children":1067},{},[1068,1073,1074,1079],{"type":45,"tag":101,"props":1069,"children":1070},{},[1071],{"type":51,"value":1072},"Check metric definitions first",{"type":51,"value":356},{"type":45,"tag":358,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":51,"value":281},{"type":51,"value":1080}," before querying metrics to get correct names",{"type":45,"tag":337,"props":1082,"children":1083},{},[1084,1089,1090,1095,1097,1102],{"type":45,"tag":101,"props":1085,"children":1086},{},[1087],{"type":51,"value":1088},"Get schema before querying",{"type":51,"value":356},{"type":45,"tag":358,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":51,"value":137},{"type":51,"value":1096}," or ",{"type":45,"tag":358,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":51,"value":169},{"type":51,"value":1103}," to discover table\u002Fcolumn names",{"type":45,"tag":337,"props":1105,"children":1106},{},[1107,1112,1114,1119],{"type":45,"tag":101,"props":1108,"children":1109},{},[1110],{"type":51,"value":1111},"Use dashboards for context",{"type":51,"value":1113}," — Search for existing dashboards with ",{"type":45,"tag":358,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":51,"value":297},{"type":51,"value":1120}," — they often reveal which metrics and queries are most relevant",{"type":45,"tag":337,"props":1122,"children":1123},{},[1124,1129],{"type":45,"tag":101,"props":1125,"children":1126},{},[1127],{"type":51,"value":1128},"Scope time ranges",{"type":51,"value":1130}," — Always specify reasonable time ranges to avoid excessive data retrieval",{"type":45,"tag":337,"props":1132,"children":1133},{},[1134,1139,1140,1145],{"type":45,"tag":101,"props":1135,"children":1136},{},[1137],{"type":51,"value":1138},"Aggregate across instances",{"type":51,"value":356},{"type":45,"tag":358,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":51,"value":201},{"type":51,"value":1146}," when traces span multiple Application Insights instances",{"type":45,"tag":60,"props":1148,"children":1150},{"id":1149},"troubleshooting",[1151],{"type":51,"value":1152},"Troubleshooting",{"type":45,"tag":67,"props":1154,"children":1155},{},[1156,1172],{"type":45,"tag":71,"props":1157,"children":1158},{},[1159],{"type":45,"tag":75,"props":1160,"children":1161},{},[1162,1167],{"type":45,"tag":79,"props":1163,"children":1164},{},[1165],{"type":51,"value":1166},"Issue",{"type":45,"tag":79,"props":1168,"children":1169},{},[1170],{"type":51,"value":1171},"Solution",{"type":45,"tag":90,"props":1173,"children":1174},{},[1175,1188,1201,1214,1233,1252,1270,1288,1301],{"type":45,"tag":75,"props":1176,"children":1177},{},[1178,1183],{"type":45,"tag":97,"props":1179,"children":1180},{},[1181],{"type":51,"value":1182},"401\u002F403 errors",{"type":45,"tag":97,"props":1184,"children":1185},{},[1186],{"type":51,"value":1187},"Verify the service account token or Entra ID token is valid and not expired",{"type":45,"tag":75,"props":1189,"children":1190},{},[1191,1196],{"type":45,"tag":97,"props":1192,"children":1193},{},[1194],{"type":51,"value":1195},"Token expired",{"type":45,"tag":97,"props":1197,"children":1198},{},[1199],{"type":51,"value":1200},"Grafana service account tokens don't expire; if using Entra ID, refresh the token",{"type":45,"tag":75,"props":1202,"children":1203},{},[1204,1209],{"type":45,"tag":97,"props":1205,"children":1206},{},[1207],{"type":51,"value":1208},"No data returned",{"type":45,"tag":97,"props":1210,"children":1211},{},[1212],{"type":51,"value":1213},"Verify the Grafana instance has the expected data sources configured",{"type":45,"tag":75,"props":1215,"children":1216},{},[1217,1222],{"type":45,"tag":97,"props":1218,"children":1219},{},[1220],{"type":51,"value":1221},"Data source not found",{"type":45,"tag":97,"props":1223,"children":1224},{},[1225,1226,1231],{"type":51,"value":854},{"type":45,"tag":358,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":51,"value":313},{"type":51,"value":1232}," to check available data sources",{"type":45,"tag":75,"props":1234,"children":1235},{},[1236,1241],{"type":45,"tag":97,"props":1237,"children":1238},{},[1239],{"type":51,"value":1240},"Metric not found",{"type":45,"tag":97,"props":1242,"children":1243},{},[1244,1245,1250],{"type":51,"value":854},{"type":45,"tag":358,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":51,"value":281},{"type":51,"value":1251}," to discover valid metric names",{"type":45,"tag":75,"props":1253,"children":1254},{},[1255,1260],{"type":45,"tag":97,"props":1256,"children":1257},{},[1258],{"type":51,"value":1259},"KQL query error",{"type":45,"tag":97,"props":1261,"children":1262},{},[1263,1265],{"type":51,"value":1264},"Verify table and column names with ",{"type":45,"tag":358,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":51,"value":137},{"type":45,"tag":75,"props":1271,"children":1272},{},[1273,1278],{"type":45,"tag":97,"props":1274,"children":1275},{},[1276],{"type":51,"value":1277},"SQL query error",{"type":45,"tag":97,"props":1279,"children":1280},{},[1281,1283],{"type":51,"value":1282},"Verify schema with ",{"type":45,"tag":358,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":51,"value":169},{"type":45,"tag":75,"props":1289,"children":1290},{},[1291,1296],{"type":45,"tag":97,"props":1292,"children":1293},{},[1294],{"type":51,"value":1295},"Dashboard not found",{"type":45,"tag":97,"props":1297,"children":1298},{},[1299],{"type":51,"value":1300},"Try broader search terms; search matches title, tags, and folder names",{"type":45,"tag":75,"props":1302,"children":1303},{},[1304,1309],{"type":45,"tag":97,"props":1305,"children":1306},{},[1307],{"type":51,"value":1308},"Sovereign cloud",{"type":45,"tag":97,"props":1310,"children":1311},{},[1312],{"type":51,"value":1313},"AMG-MCP is only available in Azure Public Cloud — sovereign clouds are not yet supported",{"type":45,"tag":1315,"props":1316,"children":1317},"style",{},[1318],{"type":51,"value":1319},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1321,"total":1500},[1322,1341,1360,1379,1394,1409,1422,1437,1448,1462,1475,1488],{"slug":1323,"name":1323,"fn":1324,"description":1325,"org":1326,"tags":1327,"stars":1338,"repoUrl":1339,"updatedAt":1340},"azure-arg-external-evaluation-policy-author","author and test Azure Resource Graph policies","Use when the user wants to author, design, or test an Azure Policy that queries Azure Resource Graph (ARG) at request-time — i.e. a policy whose deny\u002Faudit decision depends on data from elsewhere in the subscription (sibling\u002Fparent resource state, RG-wide invariants, multi-hop relationships, etc.). Formally called Azure Policy External Evaluation; sometimes referred to colloquially as \"Invoke\". Drives an iterative KQL co-design loop against the user's real subscription via `az graph query`, then emits a policy definition, assignment, `.http` test flow, and an `EXPLANATION.md` companion. Read-only; never provisions anything.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1328,1329,1332,1335],{"name":12,"slug":9,"type":17},{"name":1330,"slug":1331,"type":17},"Compliance","compliance",{"name":1333,"slug":1334,"type":17},"Governance","governance",{"name":1336,"slug":1337,"type":17},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":1342,"name":1342,"fn":1343,"description":1344,"org":1345,"tags":1346,"stars":1357,"repoUrl":1358,"updatedAt":1359},"azure-blueprints-migration","migrate Azure Blueprints to Template Specs","Use when a user needs to migrate off Azure Blueprints (definitions and\u002For assignments) to Template Specs and Deployment Stacks before the January 31, 2027 retirement. Covers inventory, export, conversion to Bicep, policy decoupling, Template Spec publishing, Deployment Stack deployment with deny-settings, validation, and cutover.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1347,1348,1351,1354],{"name":12,"slug":9,"type":17},{"name":1349,"slug":1350,"type":17},"Deployment","deployment",{"name":1352,"slug":1353,"type":17},"Infrastructure as Code","infrastructure-as-code",{"name":1355,"slug":1356,"type":17},"Migration","migration",260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":1376,"repoUrl":1377,"updatedAt":1378},"apiview-feedback-resolution","resolve APIView feedback on Azure SDKs","Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_typespec_customized_code_update.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1366,1369,1370,1373],{"name":1367,"slug":1368,"type":17},"API Development","api-development",{"name":12,"slug":9,"type":17},{"name":1371,"slug":1372,"type":17},"Code Review","code-review",{"name":1374,"slug":1375,"type":17},"Documentation","documentation",133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":1380,"name":1380,"fn":1381,"description":1382,"org":1383,"tags":1384,"stars":1376,"repoUrl":1377,"updatedAt":1393},"azsdk-common-live-and-recorded-tests","deploy resources and run Azure SDK tests","Deploy test resources and run Azure SDK tests in live, record, or playback mode. WHEN: \"run live tests\", \"run recorded tests\", \"deploy test resources\", \"record tests\", \"run tests in record mode\", \"clean up test resources\", \"run tests against live resources\". DO NOT USE FOR: writing new tests, authoring Bicep templates, playback-only test runs without resource deployment. INVOKES: azure-sdk-mcp:azsdk_package_run_tests.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1385,1386,1387,1390],{"name":12,"slug":9,"type":17},{"name":1349,"slug":1350,"type":17},{"name":1388,"slug":1389,"type":17},"SDK","sdk",{"name":1391,"slug":1392,"type":17},"Testing","testing","2026-07-12T08:17:44.718943",{"slug":1395,"name":1395,"fn":1396,"description":1397,"org":1398,"tags":1399,"stars":1376,"repoUrl":1377,"updatedAt":1408},"azsdk-common-prepare-release-plan","manage Azure SDK release plan work items","Create, get, update, abandon, and link SDK PRs to release plan work items for Azure SDK releases. **UTILITY SKILL**. USE FOR: \"create release plan\", \"get release plan\", \"update release plan\", \"update API spec in release plan\", \"update SDK details in release plan\", \"abandon release plan\", \"link SDK PR to plan\", \"namespace approval\", \"check release plan status\". DO NOT USE FOR: SDK code generation, pipeline troubleshooting, API review feedback. INVOKES: azure-sdk-mcp:azsdk_create_release_plan, azure-sdk-mcp:azsdk_get_release_plan, azure-sdk-mcp:azsdk_get_release_plan_for_spec_pr, azure-sdk-mcp:azsdk_update_release_plan, azure-sdk-mcp:azsdk_update_api_spec_pull_request_in_release_plan, azure-sdk-mcp:azsdk_update_sdk_details_in_release_plan, azure-sdk-mcp:azsdk_abandon_release_plan, azure-sdk-mcp:azsdk_link_sdk_pull_request_to_release_plan, azure-sdk-mcp:azsdk_link_namespace_approval_issue.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1400,1401,1404,1407],{"name":12,"slug":9,"type":17},{"name":1402,"slug":1403,"type":17},"GitHub","github",{"name":1405,"slug":1406,"type":17},"Project Management","project-management",{"name":1388,"slug":1389,"type":17},"2026-07-12T08:17:38.345387",{"slug":1410,"name":1410,"fn":1411,"description":1412,"org":1413,"tags":1414,"stars":1376,"repoUrl":1377,"updatedAt":1421},"azsdk-common-sdk-release","release Azure SDK packages","Check release readiness and trigger the release pipeline for Azure SDK packages. **UTILITY SKILL**. USE FOR: \"release SDK\", \"trigger release\", \"check release readiness\", \"release pipeline\", \"publish package\", \"ship SDK\". DO NOT USE FOR: SDK development, code generation, pipeline debugging, release plan creation. INVOKES: azure-sdk-mcp:azsdk_release_sdk.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1415,1416,1419,1420],{"name":12,"slug":9,"type":17},{"name":1417,"slug":1418,"type":17},"CI\u002FCD","ci-cd",{"name":1349,"slug":1350,"type":17},{"name":1388,"slug":1389,"type":17},"2026-07-12T08:17:34.27607",{"slug":1423,"name":1423,"fn":1424,"description":1425,"org":1426,"tags":1427,"stars":1376,"repoUrl":1377,"updatedAt":1436},"azure-typespec-author","author and modify Azure TypeSpec API specifications","Authors and modifies Azure TypeSpec (.tsp) API specifications. USE FOR: any TypeSpec\u002Ftsp change — api versions (add, bump, preview, stable, promote), resources, operations, models, properties, decorators, visibility, constraints, breaking changes, LRO, suppressions, operationId, spread model. Covers ARM resource-manager and data-plane services. DO NOT USE FOR: SDK generation, releasing SDK packages, or single MCP tool calls. INVOKES: azure-sdk-mcp:azsdk_typespec_generate_authoring_plan, azure-sdk-mcp:azsdk_run_typespec_validation.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1428,1429,1430,1433],{"name":1367,"slug":1368,"type":17},{"name":12,"slug":9,"type":17},{"name":1431,"slug":1432,"type":17},"OpenAPI","openapi",{"name":1434,"slug":1435,"type":17},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":1438,"name":1438,"fn":1439,"description":1440,"org":1441,"tags":1442,"stars":1376,"repoUrl":1377,"updatedAt":1447},"generate-sdk-locally","generate and test Azure SDKs locally","Generate, build, and test Azure SDKs locally from TypeSpec with automatic customization. WHEN: \"generate SDK locally\", \"build SDK\", \"run SDK tests\", \"run CI checks\", \"validate package\", \"run checks\", \"update changelog\", \"fix SDK build errors\", \"fix breaking changes\", \"resolve SDK generation errors\", \"customize TypeSpec\", \"rename SDK client\", \"rename SDK model\", \"hide operation from SDK\", \"fix analyzer errors\", \"resolve customization drift\", \"create subclient\", \"update metadata\", \"update version\". DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API design review. INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1443,1444,1445,1446],{"name":12,"slug":9,"type":17},{"name":1417,"slug":1418,"type":17},{"name":1388,"slug":1389,"type":17},{"name":1391,"slug":1392,"type":17},"2026-07-12T08:17:37.08523",{"slug":1449,"name":1449,"fn":1450,"description":1451,"org":1452,"tags":1453,"stars":1376,"repoUrl":1377,"updatedAt":1461},"markdown-token-optimizer","optimize markdown files for token efficiency","Analyze markdown files for token efficiency and reduce context-window bloat. **UTILITY SKILL**. DO NOT USE FOR: code optimization, general file editing, non-markdown files. TRIGGERS: optimize markdown, reduce tokens, token count, token bloat, too many tokens, make concise, shrink file, file too large, optimize for AI, token efficiency, verbose markdown, reduce file size. INVOKES: waza CLI.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1454,1457,1460],{"name":1455,"slug":1456,"type":17},"LLM","llm",{"name":1458,"slug":1459,"type":17},"Performance","performance",{"name":1434,"slug":1435,"type":17},"2026-07-12T08:17:42.080413",{"slug":1463,"name":1463,"fn":1464,"description":1465,"org":1466,"tags":1467,"stars":1376,"repoUrl":1377,"updatedAt":1474},"pipeline-troubleshooting","troubleshoot Azure SDK CI pipelines","Diagnose and resolve failures in Azure SDK CI and generation pipelines. **UTILITY SKILL**. USE FOR: \"pipeline failed\", \"build failure\", \"CI check failing\", \"SDK generation error\", \"reproduce pipeline locally\", \"debug SDK pipeline\". DO NOT USE FOR: local build issues without pipeline context, API design review, SDK publishing. INVOKES: azure-sdk-mcp:azsdk_analyze_pipeline, azure-sdk-mcp:azsdk_package_build_code, azure-sdk-mcp:azsdk_package_run_check.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1468,1469,1470,1473],{"name":12,"slug":9,"type":17},{"name":1417,"slug":1418,"type":17},{"name":1471,"slug":1472,"type":17},"Debugging","debugging",{"name":1388,"slug":1389,"type":17},"2026-07-12T08:17:40.821512",{"slug":1476,"name":1476,"fn":1477,"description":1478,"org":1479,"tags":1480,"stars":1376,"repoUrl":1377,"updatedAt":1487},"sensei","improve skill frontmatter compliance","**WORKFLOW SKILL** — Iteratively improve skill frontmatter compliance using the Ralph loop pattern. WHEN: \"run sensei\", \"sensei help\", \"improve skill\", \"fix frontmatter\", \"skill compliance\", \"frontmatter audit\", \"score skill\", \"check skill tokens\". INVOKES: token counting tools, test runners, git commands. FOR SINGLE OPERATIONS: use token CLI directly for counts\u002Fchecks.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1481,1482,1483,1486],{"name":12,"slug":9,"type":17},{"name":1330,"slug":1331,"type":17},{"name":1484,"slug":1485,"type":17},"Process Optimization","process-optimization",{"name":1434,"slug":1435,"type":17},"2026-07-12T08:17:32.970921",{"slug":1489,"name":1489,"fn":1490,"description":1491,"org":1492,"tags":1493,"stars":1376,"repoUrl":1377,"updatedAt":1499},"skill-authoring","author agent skills for agentskills.io","Write Agent Skills that comply with the agentskills.io specification. WHEN: \"create a skill\", \"new skill\", \"write a skill\", \"skill template\", \"skill structure\", \"review skill\", \"skill PR\", \"skill compliance\", \"SKILL.md format\", \"skill frontmatter\", \"skill best practices\". DO NOT USE FOR: improving existing skills (use sensei), general documentation. INVOKES: waza CLI.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1494,1495,1498],{"name":1374,"slug":1375,"type":17},{"name":1496,"slug":1497,"type":17},"Plugin Development","plugin-development",{"name":1434,"slug":1435,"type":17},"2026-07-12T08:17:35.873862",109,{"items":1502,"total":673},[1503,1521,1540,1548,1567,1580,1593],{"slug":1504,"name":1505,"fn":1506,"description":1507,"org":1508,"tags":1509,"stars":28,"repoUrl":29,"updatedAt":1520},"atlassianrovo","atlassian_rovo","manage Atlassian Jira and Confluence tasks","Expertise in Atlassian Cloud products including Jira, Confluence, Compass, and Jira Service Management. Use for searching issues with JQL, creating and updating pages, managing service components, investigating ops alerts, and navigating Atlassian workspaces via the Rovo MCP server.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1510,1513,1516,1519],{"name":1511,"slug":1512,"type":17},"Atlassian","atlassian",{"name":1514,"slug":1515,"type":17},"Confluence","confluence",{"name":1517,"slug":1518,"type":17},"Jira","jira",{"name":1405,"slug":1406,"type":17},"2026-07-12T08:20:33.735452",{"slug":1522,"name":1523,"fn":1524,"description":1525,"org":1526,"tags":1527,"stars":28,"repoUrl":29,"updatedAt":1539},"awscloudoperations","aws_cloud_operations","manage and troubleshoot AWS cloud operations","Expertise in AWS cloud operations including infrastructure management, troubleshooting, documentation search, API execution, and operational procedures. Use for querying AWS resources, investigating incidents, following SOPs, searching documentation, checking service availability, and executing AWS API calls via the AWS MCP Server.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1528,1531,1532,1535,1536],{"name":1529,"slug":1530,"type":17},"AWS","aws",{"name":1471,"slug":1472,"type":17},{"name":1533,"slug":1534,"type":17},"Infrastructure","infrastructure",{"name":26,"slug":27,"type":17},{"name":1537,"slug":1538,"type":17},"Operations","operations","2026-07-12T08:20:14.702793",{"slug":4,"name":5,"fn":6,"description":7,"org":1541,"tags":1542,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1543,1544,1545,1546,1547],{"name":19,"slug":20,"type":17},{"name":12,"slug":9,"type":17},{"name":22,"slug":23,"type":17},{"name":26,"slug":27,"type":17},{"name":15,"slug":16,"type":17},{"slug":1549,"name":1550,"fn":1551,"description":1552,"org":1553,"tags":1554,"stars":28,"repoUrl":29,"updatedAt":1566},"datadogobservability","datadog_observability","query Datadog telemetry and investigate behavior","Expertise in Datadog's observability platform including logs, metrics, APM, monitors, incidents, dashboards, hosts, and services. Use for searching logs, querying metrics, investigating incidents, analyzing traces, inspecting monitors, and navigating Datadog data via the Datadog MCP server.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1555,1558,1561,1564,1565],{"name":1556,"slug":1557,"type":17},"Datadog","datadog",{"name":1559,"slug":1560,"type":17},"Logs","logs",{"name":1562,"slug":1563,"type":17},"Metrics","metrics",{"name":26,"slug":27,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T08:20:41.400308",{"slug":1568,"name":1569,"fn":1570,"description":1571,"org":1572,"tags":1573,"stars":28,"repoUrl":29,"updatedAt":1579},"dynatraceobservability","dynatrace_observability","query Dynatrace observability data","Query Dynatrace observability data including logs, metrics, problems, and vulnerabilities using DQL",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1574,1575,1576,1577,1578],{"name":12,"slug":9,"type":17},{"name":1559,"slug":1560,"type":17},{"name":1562,"slug":1563,"type":17},{"name":26,"slug":27,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T08:19:00.664087",{"slug":1581,"name":1581,"fn":1582,"description":1583,"org":1584,"tags":1585,"stars":28,"repoUrl":29,"updatedAt":1592},"elasticsearch","query and analyze Elasticsearch data","Query and analyze Elasticsearch data including logs, indices, mappings, and cluster health using ES|QL",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1586,1589,1590,1591],{"name":1587,"slug":1588,"type":17},"Analytics","analytics",{"name":12,"slug":9,"type":17},{"name":1559,"slug":1560,"type":17},{"name":15,"slug":16,"type":17},"2026-07-12T08:20:22.325954",{"slug":1594,"name":1595,"fn":1596,"description":1597,"org":1598,"tags":1599,"stars":28,"repoUrl":29,"updatedAt":1610},"pagerduty","pager_duty","manage incidents with PagerDuty","Load this skill for expertise in PagerDuty's incident management platform including incidents, on-call schedules, services, teams, escalation policies, event orchestration, incident workflows, and status pages. Use for managing incidents, checking on-call status, investigating alerts, escalating issues, and navigating PagerDuty data via the PagerDuty MCP server.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1600,1603,1606,1607],{"name":1601,"slug":1602,"type":17},"Alerting","alerting",{"name":1604,"slug":1605,"type":17},"Incident Response","incident-response",{"name":26,"slug":27,"type":17},{"name":1608,"slug":1609,"type":17},"SRE","sre","2026-07-12T08:20:44.017673"]