Skip to content

mmonisha/agent-inventory-explorer

Repository files navigation

Agent Inventory Explorer

Drop your Azure Resource Graph export and instantly visualize custom Copilot Studio agents across your tenant — no auth, no backend, no Entra app registration.

Agent Inventory Explorer dashboard

Power Platform Admin Center inventory mixes pre-built / system agents (D365 Sales, Customer Service, etc.) with the ones your makers actually built, inflating leadership-facing counts. This tool lets you:

  1. Export a clean custom-agents-only list from Azure Resource Graph (ARG)
  2. Drop the CSV here
  3. Get instant stats, charts, and a filterable table
  4. Re-export just the filtered slice for a leadership report

Everything runs in the browser — your CSV never leaves your machine.


🚀 Try it

Live demo: https://mmonisha.github.io/agent-inventory-explorer/

  1. Open the demo
  2. Click "try with sample data" to load 160 rows of generic data, or drop your own ARG CSV onto the drop zone
  3. Search, filter by authoring tool (Copilot Studio vs. M365 Agent Builder) or orchestration mode (Generative vs. Classic)
  4. Click Export filtered CSV to download the current view

🧪 Run locally

git clone https://github.com/mmonisha/agent-inventory-explorer.git
cd agent-inventory-explorer

# Any static server works. Python is built into Windows:
python -m http.server 8000

# Open http://localhost:8000/

Opening index.html directly with file:// works for drag-and-drop, but the "try with sample data" link needs a local server (browsers block fetch() against file://).


📥 Getting your own data from Azure Resource Graph

  1. Open Azure Resource Graph Explorer
  2. Paste a query that filters Copilot Studio agents (see the example below)
  3. Click Run queryDownload as CSV
  4. Drop the CSV into this dashboard

Example KQL — custom agents only, excluding pre-built / D365 system agents:

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| extend props = parse_json(properties)
| extend agentName = tostring(props.displayName)
| where agentName !in (
    "Case Enrichment Onboarding Agent", "Case Management Agent",
    "Copilot in Dynamics 365 Sales", "Copilot in Power Apps",
    "Customer Service Copilot Bot", "D365 Sales Agent - Outreach"
    /* ...add the full pre-built exclusion list for your tenant... */
  )
| project agentName,
    environmentId = tostring(props.environmentId),
    createdBy     = tostring(props.createdBy),
    createdAt     = tostring(props.createdAt),
    createdIn     = tostring(props.createdIn),
    orchestration = tostring(props.orchestration),
    lastPublished = tostring(props.lastPublishedAt),
    isManaged     = tostring(props.isManaged)
| order by createdAt asc

Prerequisites: an Azure subscription in the same tenant + Power Platform Administrator, Dynamics 365 Administrator, or Global Reader role.


📊 CSV schema

The dashboard reads a flat CSV with these columns (header names are case-insensitive and a few aliases are accepted):

Column Required Example
displayname (or agentName) HR Benefits Q&A
environmentid env-prod-shared-001
createdby amartin@contoso.com
createdat 2026-02-15T10:00:00Z
createdin Copilot Studio or Microsoft 365 Copilot Agent Builder
orchestration Generative or Classic
lastpublishedat 2026-03-01T09:30:00Z (blank = draft)
ismanaged true / false / blank

See sample-data.csv for 160 rows of generic synthetic data.


📁 What's in this repo

.
├── index.html                       Static dashboard (HTML + vanilla JS)
├── sample-data.csv                  160 rows of generic synthetic data
├── generate_sample_data.py          Deterministic data generator (seed=42)
├── generate_arg_mock_screenshot.py  Renders the ARG Explorer mock for the blog
├── arg-explorer-mock.png            Pre-rendered ARG Explorer mock
└── agent-inventory-explorer-dashboard.png   Dashboard screenshot

No build step, no dependencies — just open index.html.


📝 License

MIT. Fork it, tweak it, ship it.

About

Visualize custom Copilot Studio agents in your tenant. Drop an Azure Resource Graph export CSV and get instant charts and filtered tables. No auth, no backend.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors