This is a sample. This connector is designed to showcase the art of the possible with the Microsoft Graph Package Management (Inventory API). It is intended as a starting point and reference implementation, not a production-ready connector.
The Copilot Agent Catalog connector is a Power Platform Custom Connector that wraps the Microsoft Graph Package Management API. Once imported into your Power Platform environment, it can be used in Power Automate flows, Power Apps, and Logic Apps to programmatically access the Copilot agent inventory in your Microsoft 365 tenant — without writing any API integration code.
The connector exposes two actions against the /beta/copilot/admin/catalog/packages endpoint:
| Action | Description |
|---|---|
| Get Copilot Packages | Returns a paged list of all Copilot agent packages available in the tenant. Supports OData $filter, $top, and $skiptoken for filtering and pagination. |
| Get Package Detail | Returns full metadata for a specific agent package by ID, including element details, allowed users and groups, acquisition scope, and version information. |
With these two actions you can build flows and apps that:
- Inventory all Copilot agents in your tenant on a schedule and store the results in SharePoint or Dataverse
- Filter agents by type, publisher, availability scope, or blocked status
- Trigger governance workflows based on catalog changes — for example, when a new agent appears or an existing one is blocked
- Feed agent metadata into Power BI or other reporting solutions via Power Automate
- Drive attestation processes by retrieving agent details and routing them to owners for review
- A Microsoft 365 tenant with Microsoft 365 Copilot licences
- Access to the Package Management API — requires enrolment in the Microsoft 365 Frontier program at the time of writing
- A Power Platform environment with permissions to create custom connectors (Environment Maker role or higher)
- An Entra ID app registration configured with the
CopilotPackages.Read.Alldelegated permission - The user account running flows with this connector must hold the Global Administrator or AI Administrator role — the API only supports delegated authentication at the time of writing, so calls are made as the signed-in user
- Go to the Microsoft Entra admin centre and sign in.
- Navigate to Identity > Applications > App registrations and select New registration.
- Give the app a name (e.g.
Copilot Agent Catalog Connector) and set the supported account type to Accounts in this organisational directory only. - Under Redirect URI, select Web and enter the Power Platform consent redirect URL:
https://global.consent.azure-apim.net/redirect - Select Register.
- Navigate to API permissions > Add a permission > Microsoft Graph > Delegated permissions, search for
CopilotPackages.Read.All, add it, and then Grant admin consent. - Navigate to Certificates & secrets > New client secret, enter a description, choose an expiry period, and copy the Value — you will need this in step 3.
- Copy the Application (client) ID and Directory (tenant) ID from the app overview — you will also need these in step 3.
- Go to make.powerapps.com and select your target environment from the environment picker.
- In the left navigation, select More > Discover all, then find and pin Custom connectors. Or navigate directly via Data > Custom connectors if available in your environment.
- Select + New custom connector > Import an OpenAPI file.
- Enter a display name for the connector (e.g.
Copilot Agent Catalog) and upload theCopilotPackages.swagger.jsonfile from this folder. - Select Continue to open the connector editor.
On the Security tab of the connector editor:
-
Confirm that Authentication type is set to OAuth 2.0.
-
Set Identity provider to Azure Active Directory.
-
Fill in the following fields using the values from step 1:
Field Value Client ID Application (client) ID from your app registration Client secret Client secret value from your app registration Tenant ID Directory (tenant) ID (or commonfor multi-tenant)Resource URL https://graph.microsoft.com -
Ensure Enable on-behalf-of login is turned on.
-
Select Create connector to save.
- Navigate to the Test tab in the connector editor.
- Select + New connection and complete the OAuth sign-in with an account that holds the Global Administrator or AI Administrator role. The connection will be saved to your environment.
- Under Test an operation, select Get Copilot Packages and choose Test operation. A
200response with avaluearray of packages confirms the connector is working correctly.
Once the connector and a connection are created, they appear under Custom in the Power Automate action picker.
- Create a new Scheduled cloud flow with a daily recurrence.
- Add the Copilot Agent Catalog – Get Copilot Packages action.
- Add a Parse JSON action to extract the
valuearray (use the schema from the connector's response definition). - Add an Apply to each loop over the items and use SharePoint – Create item to write each agent's details to a SharePoint list.
Note: Pagination via
@odata.nextLink/$skiptokenis not currently supported for this API endpoint under delegated authentication. This is expected to be resolved when application permissions are introduced. Until then, set$topto999in the Get Copilot Packages action to retrieve as many results as possible in a single call.
Once application permissions are available, pagination will work as follows: if the tenant has more packages than the page size, the response will include an @odata.nextLink value containing a $skiptoken. Use a Do until loop, passing the token back into the $skiptoken parameter on each iteration, to retrieve all pages before processing.
- Microsoft Graph Package Management API
- Create a custom connector from an OpenAPI definition – Power Platform
- Register an application in Microsoft Entra ID
- Microsoft 365 Copilot extensibility samples
MIT — see LICENSE for details.
Note: This sample is community-maintained and is not covered by a Microsoft support SLA.