Skip to content

anshuv-mfst/PM-AIDE-Agent

Repository files navigation

Azure Networking PM Aide Agent

AI-powered PM and DRI assistant for Azure networking services — built on VS Code + GitHub Copilot Chat with 14 MCP servers for live data access to Kusto, Geneva/MDM, ICM, Azure DevOps, Grafana, and competitive intelligence.

Use it for Azure Front Door, Application Gateway, Load Balancer, VPN Gateway, ExpressRoute, Azure Firewall, Private Link, Virtual Network, NAT Gateway, DNS, Traffic Manager, Bastion, DDoS, WAF, Virtual WAN, Network Watcher, and other Azure networking services with Kusto and MDM telemetry.

Supported Agent Skills

The repository ships two Copilot agents, @pmagent and @dri. Each agent reads markdown skills on demand from .github/skills/ and routes requests to the right MCP servers for Kusto, MDM, ICM, Azure DevOps, documentation, and report generation.

Shared Capability Skills

These skills are available to both PM and DRI workflows.

Skill Description
kusto-queries Kusto query patterns, schema checks, and cluster/database routing
mdm-queries Geneva/MDM metric query patterns and account reference
metric-visualization Metric chart rendering with Grafana links
code-search Azure DevOps code search across Azure Networking repositories
wiki-search Azure DevOps wiki lookup for TSGs, playbooks, and operational docs

@pmagent Skills

Use @pmagent for product planning, fleet analytics, customer reporting, executive updates, competitive analysis, and customer-ready artifacts.

Skill Description
fleet-sampling Statistically rigorous fleet distribution analysis with sampling methodology and confidence bands
fleet-trends Period-over-period comparisons for growth, decline, region shifts, SKU migration, and churn
customer-report Named-customer Azure Networking usage, traffic profile, feature adoption, risk, and recommendation reports
customer-comms Customer-facing PIRs, incident notifications, maintenance notices, and escalation responses
wbr Weekly Business Review covering fleet health, incidents, trends, SLI, deployments, and action items
exec-brief One-page executive summaries with headline metric, implication, and recommendation
prd Data-backed Product Requirements Documents grounded in fleet impact and market context
analysis Competitive and strategic analysis, including feature gaps, comparison matrices, pricing/TCO, and market research
diagnostic DRI-equivalent triage, investigation, mitigation guidance, and RCA from the PM agent
feature-priority Weighted feature prioritization from community signal, competitive gap, fleet impact, and customer demand
churn-analysis Multi-signal churn risk scoring across Azure networking services and subscriptions
newsletter Periodic Azure Networking updates for leadership, engineering, and field teams
report-generation Markdown-to-docx, pptx, and HTML report generation using the existing investigation scripts
portal-mock Azure portal blade mockups matching Fluent UI design language
customer-scenario-builder Customer scenario synthesis from emails, chats, slides, and briefs with PowerPoint or email output
rca-template Structured RCA document format reused by PM and DRI outputs

@dri Skills

Use @dri for on-call incident response across Azure networking services.

Skill Description
incident-triage Queue prioritization by severity, impact, age, SLA risk, and escalation pressure
incident-analysis Metrics-first incident investigation workflow with MDM, Kusto, timeline, and evidence capture
mitigation-playbook Mitigation guidance, operational playbooks, approval boundaries, and risk notes
rca-template Structured RCA document format for root cause, timeline, contributing factors, and prevention items

Every data-backed answer should include the exact Kusto/MDM queries used, sample sizes, and confidence bands where applicable.

Prerequisites

  • VS Code with GitHub Copilot Chat extension
  • Copilot subscription (Business or Enterprise)
  • Azure CLI authenticated (az login) for Kusto/MDM/ICM access
  • uv/uvx installed (Astral) for ADX, fetch, AWS docs, GCP docs, and Grafana MCP servers

Quick Start

1. Clone and Open

git clone https://github.com/anshuv-mfst/PM-AIDE-Agent.git
cd pm-aide-agent
code .

2. Install MCP Server Dependencies

Windows (PowerShell):

.\scripts\install-mcp-servers.ps1

Linux/macOS:

chmod +x scripts/install-mcp-servers.sh
./scripts/install-mcp-servers.sh

HTTP-based servers (ICM, Microsoft Docs) are cloud-hosted — no local install needed.

3. Authenticate

az login

4. Start MCP Servers

MCP servers don't auto-start. Start them manually:

  1. Ctrl+Shift+PMCP: List Servers
  2. Click Start on each server (at minimum: adx, mdm, icm)

You can also open .vscode/mcp.json and click the ▶ Start button above each server.

5. Start Using the PM Agent

  1. Open GitHub Copilot Chat (Ctrl+Shift+I)
  2. Type @pmagent followed by your request:
@pmagent create PRD for mTLS passthrough
@pmagent competitive analysis Azure Front Door vs CloudFront — here are docs: https://docs.aws.amazon.com/...
@pmagent customer report for T-Mobile
@pmagent what % of Azure Front Door profiles serve less than 25 RPS?
@pmagent generate WBR
@pmagent exec summary for VP
@pmagent draft PIR for incident 795708404
@pmagent investigate incident 795708404
@pmagent mock the portal blade for mTLS passthrough settings
@pmagent create PRD for HTTP/3, compare with [URL1] [URL2], use this template [URL3]

The agent reads skills on demand from .github/skills/ and routes queries to the appropriate MCP servers automatically.

Custom Templates & Reference URLs

You can provide your own templates or reference material:

@pmagent create PRD for mTLS passthrough using this template: ./my-prd-template.md
@pmagent compare Azure Load Balancer with AWS NLB — use these docs:
https://docs.aws.amazon.com/elasticloadbalancing/
https://cloud.google.com/load-balancing/docs
@pmagent draft PIR using this format: https://internal.wiki/pir-template
@pmagent create PRD for HTTP/3, compare with these competitors [URL1] [URL2], use template [URL3]

The agent will:

  1. Fetch URLs — retrieve content from provided links
  2. Extract structure — use custom templates instead of defaults
  3. Incorporate data — weave competitor/reference info into the output
  4. Ground in fleet data — always add Kusto/MDM evidence for quantified impact

MCP Servers (14 total)

Configured in .vscode/mcp.json:

Server Purpose
adx Kusto queries (logs, fleet inventory)
mdm Geneva/MDM metrics (TotalRequests, CPU, connections, charts)
appgw Bundled example service-specific MCP tools for Application Gateway
icm ICM incident management
grafana Grafana dashboard links and metric visualization
enghub Engineering Hub integration
workiq WorkIQ integration
azure-devops-mcp Code search, wiki search, work items
azure Azure resource search and documentation
microsoftdocs Microsoft Learn documentation search
fetch General web page fetching
github GitHub API access (requires GITHUB_TOKEN env var)
aws-docs AWS documentation search — competitive analysis (no credentials needed)
gcp-docs GCP documentation search — competitive analysis (no credentials needed)

Repository Structure

.github/
├── agents/
│   ├── pmagent.agent.md          # PM agent definition
│   └── dri.agent.md              # DRI on-call incident response agent
├── skills/                       # Domain knowledge (read on-demand by agent)
│   ├── fleet-sampling/           # Statistical fleet distribution analysis
│   ├── fleet-trends/             # MoM / region / SKU comparisons
│   ├── customer-report/          # Named-customer usage reports
│   ├── customer-comms/           # PIR, notifications, escalation responses
│   ├── customer-scenario-builder/ # Scenario synthesis from emails/chats/slides
│   ├── wbr/                      # Weekly Business Review
│   ├── exec-brief/               # One-page exec summaries
│   ├── prd/                      # Product Requirements Documents
│   ├── analysis/                 # Competitive & strategic analysis
│   ├── diagnostic/               # Incident triage, investigation, mitigation, RCA
│   ├── feature-priority/         # Feature prioritization using weighted scoring
│   ├── newsletter/               # Monthly/periodic Azure Networking updates
│   ├── report-generation/        # docx / pptx / html output
│   ├── rca-template/             # RCA document structure
│   ├── kusto-queries/            # Kusto query patterns + cluster reference
│   ├── mdm-queries/              # Geneva/MDM metric query patterns
│   ├── metric-visualization/     # Chart rendering + Grafana integration
│   ├── churn-analysis/           # Cross-service churn risk scoring
│   ├── portal-mock/              # Azure portal blade mockups (Fluent UI)
│   ├── code-search/              # Azure DevOps code search
│   ├── wiki-search/              # TSG / playbook wiki lookup
│   ├── incident-triage/          # DRI queue triage skill
│   ├── incident-analysis/        # DRI investigation skill
│   ├── mitigation-playbook/      # DRI mitigation guidance
│   ├── docx-writer/              # Word writer utility skill
│   ├── ppt-creator/              # PowerPoint writer utility skill
│   ├── xlsx-writer/              # Excel writer utility skill
│   ├── chart-creator/            # Chart image generation utility skill
│   └── adaptive-cards/           # Adaptive Card artifact generation
└── copilot-instructions.md       # Global agent instructions
.vscode/
└── mcp.json                      # MCP server configuration (14 servers)
dashboards/
├── churn-risk-dashboard.html     # Customer Churn Risk Dashboard (React SPA)
├── func/                         # Azure Functions for dashboard data pipeline
├── infra/                        # Bicep for Azure Container Apps deployment
└── azure.yaml                    # azd deployment config
investigations/
├── *.md                          # Investigation outputs (RPS methodology, customer reports, etc.)
└── generate_*.py                 # Report generators (docx, pptx, html)

Service Coverage

The PM Aide Agent is designed for Azure networking services broadly. Service coverage is driven by markdown skills, Kusto routing, MDM account mappings, and optional service-specific MCP tools.

How to Add or Tune a Service (e.g., VPN Gateway, VNet, ExpressRoute, Load Balancer)

Step 1 — Update Kusto cluster/database routing: Edit .github/skills/kusto-queries/CLUSTER_REFERENCE.md to add your service's Kusto clusters and tables.

## VPN Gateway
- **Cluster:** `https://yourcluster.kusto.windows.net`
- **Database:** `VpnGatewayManager`
- **Key tables:** `VpnGatewaysExtendedLatestProd`, `VpnTunnelEvents`

Step 2 — Update MDM account/namespace routing: Edit .github/skills/mdm-queries/ACCOUNT_REFERENCE.md to add your service's Geneva accounts.

## VPN Gateway
- **Account:** `VpnGWT`
- **Namespace:** `Shoebox`
- **Key metrics:** `TunnelBandwidth`, `TunnelEgressBytes`, `TunnelIngressBytes`

Step 3 — Create service-specific skills: Add new skill folders under .github/skills/ with a SKILL.md describing the query patterns, telemetry sources, and domain knowledge for your service.

.github/skills/
├── vpn-fleet-sampling/    # VPN Gateway fleet distribution
├── vnet-topology/         # VNet connectivity and peering analysis
├── expressroute-health/   # ExpressRoute circuit health and metrics
└── lb-fleet-trends/       # Load Balancer fleet trends

Step 4 — Register skills in the agent definition: Add your new skills to .github/agents/pmagent.agent.md:

## Task N: VPN Fleet Distribution
> **READ**: `.github/skills/vpn-fleet-sampling/SKILL.md`
Use to analyze VPN Gateway fleet RPS/bandwidth distribution using hash sampling.

Step 5 — Add MCP servers (if needed): If your service has a dedicated MCP server, add it to .vscode/mcp.json. Otherwise, the existing adx and mdm servers work for Azure networking services with Kusto/MDM access.

Services This Pattern Works For

Service Kusto Data MDM Metrics Ready to Extend
VPN Gateway VpnGatewayManager VpnGWT/Shoebox Yes
Virtual Network VNetManager VNetMetrics Yes
ExpressRoute ExpressRouteManager ErGWT/Shoebox Yes
Load Balancer LBManager LBGWT/Shoebox Yes
Azure Firewall AzFWManager AzFW/Shoebox Yes
Front Door FrontDoorManager FdGWT/Shoebox Yes
Private Link PrivateLinkManager PLMetrics Yes
Any Azure networking service with Kusto + MDM

Key insight: The agent's skills are just markdown files with query patterns and domain knowledge. Most service onboarding is skill and routing work; dedicated MCP code is optional.

Also Included: DRI Agent

The repo also ships a dri agent (.github/agents/dri.agent.md) for on-call incident triage, investigation, and mitigation. Select dri from the agent dropdown when you need real-time incident response instead of PM analytics.

MCP Servers

The following 14 MCP servers are configured in .vscode/mcp.json:

Server Purpose Type Requires
mdm Geneva/MDM metric queries stdio (dnx) .NET SDK + DNX
appgw Bundled Application Gateway MCP tools used as one service-specific example stdio (dotnet run) .NET SDK
adx Kusto queries against hybridnetworking cluster stdio (uvx) Python + uv
icm Incident management (IcM) integration HTTP None (cloud-hosted)
grafana Grafana dashboard links and metric visualization stdio (uvx) Python + uv
enghub Engineering Hub (eng.ms docs) stdio (npx) Node.js 18+ + gh CLI
workiq Microsoft 365 Copilot / Work IQ stdio (npx) Node.js 18+
azure-devops Azure DevOps integration (code search, wiki, work items) stdio (npx) Node.js 18+
azure Azure resource management stdio (dnx) .NET SDK + DNX
microsoftdocs Microsoft Learn documentation search HTTP None (cloud-hosted)
fetch General web page fetching stdio (uvx) Python + uv
github GitHub API access (issues, PRs, repos) stdio (npx) Node.js 18+ + GITHUB_TOKEN
aws-docs AWS documentation search — competitive analysis stdio (uvx) Python + uv
gcp-docs GCP documentation search — competitive analysis stdio (uvx) Python + uv

Manual Install

If the installation scripts don't work for your environment, you can install the dependencies manually.

Prerequisites

Dependency Required For Install
Node.js 18+ WorkIQ, Azure DevOps, EngHub, GitHub nodejs.org
uv ADX (Kusto), fetch, Grafana, AWS docs, GCP docs powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
.NET SDK 8+ Azure MCP, MDM MCP dot.net/download
DNX Azure MCP, MDM MCP dotnet tool install -g Microsoft.DotNet.Tools.Dnx

Manual Installation

# MDM (Geneva Metrics) - requires .NET SDK + DNX
dnx SdnPubSub-GenevaMCP --prerelease --interactive --yes \
  --source https://msazure.pkgs.visualstudio.com/One/_packaging/networking-madari-Consumption/nuget/v3/index.json

# ADX (Kusto) - requires uv
uvx microsoft-fabric-rti-mcp --stdio

# WorkIQ - auto-downloads via npx
npx -y @microsoft/workiq mcp

# Azure DevOps - auto-downloads via npx
npx -y @azure-devops/mcp@latest

# Azure MCP - requires .NET SDK + DNX
dnx Azure.Mcp@2.0.0-beta.13 -- server start

HTTP-Based Servers (No Installation Required)

These servers are cloud-hosted and require no local installation:

  • ICM: https://icm-mcp-prod.azure-api.net/v1/
  • Microsoft Docs: https://learn.microsoft.com/api/mcp

Additional Servers

# Fetch (web page fetching) - requires uv
uvx mcp-server-fetch

# GitHub - requires Node.js + GITHUB_TOKEN env var
npx -y @modelcontextprotocol/server-github

# AWS Documentation - competitive analysis (no AWS credentials needed)
uvx awslabs.aws-documentation-mcp-server@latest

# GCP Documentation - competitive analysis (no GCP credentials needed)
uvx cloud-run-mcp -- docs

# Grafana - requires uv
uvx mcp-grafana

# EngHub - requires Node.js + gh CLI
npx -y enghub-mcp

Example Usage

⚠️ Important: Choose the right agent in Copilot Chat before running commands:

  • Use @pmagent for product management analytics, strategy, reports, and scenario outputs.
  • Use @dri for incident triage, investigation, mitigation guidance, and RCA.

Prioritize the Queue

triage the queue

or use the slash command:

/triage

The agent will:

  1. Fetch active incidents from ICM
  2. Score by severity, impact, age, and SLA risk
  3. Present prioritized queue with recommendations

Investigate an Incident

investigate 123456

or use the slash command:

/investigate 123456

The agent will:

  1. Extract identifiers from incident
  2. Query relevant telemetry sources (metrics first, then logs)
  3. Build chronological timeline
  4. Save findings to investigations/123456.md

Get Mitigation Help

how do I mitigate 123456?

or use the slash command:

/mitigate 123456

The agent will:

  1. Identify the failure pattern
  2. Present mitigation options with risk levels

Generate RCA

generate RCA for 123456

or use the slash command:

/rca 123456

The agent will generate a structured RCA document in Markdown format.

Contributing

See CONTRIBUTING.md for guidelines on:

  • Adding new failure patterns
  • Adding Kusto tables/functions
  • Updating database routing
  • Testing changes

TODO

  • Add more kusto queries to enhance the incident analysis
  • Use ADO wiki search to augment mitigation steps, augmenting any TSGs added to ICM
  • Use ADO code search MCP to add more context using deployment version and logs
  • Refactor into a distributable executable (via Copilot SDK) or standalone web interface, or Teams bot

About

PM AIDE agent for Azure networking services

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages