AgentPerimeter
Download free

Free · PowerShell 7 · runs on your machine

Find the AI agents in your tenant

Download it, point it at Microsoft 365, get a scored inventory. Read-only. Nothing leaves your tenant.

Free to download and run. No licence key, no account, no telemetry.

The Agent Perimeter control panel showing a tenant overview: warning banners naming the signals that could not be read, a progress bar reading 64 per cent needing a fix and 28 per cent that cannot be judged, and an ordered list of fixes starting with Conditional Access policies.
The control panel, on demo data. The red banners are signals the run could not read — named, never counted as passes.

Run it

Three commands

01

Unpack and start

# PowerShell 7
pwsh ./Start-APOnboarding.ps1

Checks your prerequisites and walks you through consent.

02

Collect

pwsh ./collector/Invoke-AgentPerimeterCollector.ps1

Reads Entra, Agent 365, Defender and Copilot Studio. Read scopes only.

03

Look at it

pwsh ./ui/Start-APBrowserUI.ps1

Opens the panel above on 127.0.0.1. Nothing is published.

No install, no service, no agent on an endpoint. Try it first with -Demo, which needs no tenant at all.

See it

It tells you what to do next

Findings ordered by how many checks each one closes, with the agent count beside it, so the biggest fix is the first line.

Close view of the path to green: a bar split into green, red and purple segments, a note reading three of thirty-nine checks are green with twenty-five needing a fix and eleven that cannot be judged, and numbered fixes tagged with check identifiers such as AP.IM.02 and AP.AM.01.
Each fix carries the checks it closes and the Microsoft benchmark control behind them.

The part other tools get wrong

A check that could not run is not a pass

Every check records whether its input was actually readable. If it was not, the check says so. It never scores you green for data nobody read.

Pass  read it, control holds Fail  read it, control does not hold Not checked  could not read it, and says which licence would N/A  no agent in scope

What it checks

41 checks, 7 of 7 Microsoft AI controls

Discover

Four sources, one list

Entra agent identities, Agent 365, Defender and Copilot Studio, reconciled into one record per agent with the sources that saw it.

Score

Mapped to MCSB v2

Identity, access, data protection, logging and the AI domain. Each check names its Microsoft control and who can make the change.

Detect

21 Sentinel rules

New sign-in address, ownerless model bridge, instruction overriding the platform, tool invoked with no approval. Deployed disabled.

Report

HTML, Power BI, panel

One derived headline used everywhere, so the summary figure matches the table under it.

Fix

Impact before command

A script per failing check. Every command states what breaks before it appears, and arrives commented out.

Automate

Scheduled or in CI

Azure Automation, or GitHub Actions and Azure DevOps with federated identity. Red build when posture slips.

FAQ

Before you download

Is it really free?

Yes. Download it, run it, keep the reports. No licence key, no account, no usage limit and nothing phones home. If you later want help reading the findings or fixing them, that is the paid part — the tool is not.

What access does it need?

Read scopes across Entra, audit logs, applications and policy, consented by a Global Administrator to an app registration in your own tenant. Assessment makes no changes. Write permissions are separate and only requested if you choose to remediate.

Where does my data go?

Nowhere. Collection writes to a file on your machine, or to your own Log Analytics workspace if you point it at one. There is no vendor cloud in the path. Agent instruction text is measured, never captured.

Do we need Copilot or Agent 365 licences?

No. It reads whatever your tenant exposes. Licensed sources add detail where you have them; where you do not, the affected checks report NOT CHECKED and name the licence that would answer them.

Can it break anything?

Not while assessing — that path makes no changes at all. Remediation can, by design, which is why every generated script states the user-facing impact above the command, previews by default, and needs an explicit flag to act.

Download it and look

Half an hour from download to a scored inventory of every agent in your tenant.

Questions, or want the findings walked through? hello@cbfive.com