Copilot Change Notifications MCP connector for Copilot Studio
April 21, 2026
If you want visibility into how Copilot is being used across your organization, polling APIs is slow and expensive. Change notifications give you a better model: subscribe once, receive events as activity happens, and then fetch details only when needed.
This connector does exactly that for Microsoft 365 Copilot scenarios. It combines REST operations and MCP tools so you can use the same connector in Power Automate flows and in Copilot Studio agents.
Full source: GitHub repository
What this connector covers
The connector focuses on three workflows:
- Create and manage Microsoft Graph subscriptions for Copilot interaction and meeting insight resources
- Validate and process incoming webhook payloads
- Retrieve full interaction or insight records for downstream automation and analysis
REST and MCP in one connector
This project exposes:
- 10 REST operations for subscription management, webhook connectivity testing, and direct Graph passthrough
- 11 MCP tools for conversational orchestration in Copilot Studio
That split matters in practice. REST operations are great for deterministic flow design, while MCP tools are better when an orchestrator needs to choose the next action dynamically.
MCP tools included
The connector exposes these MCP tools:
| Tool | Purpose |
|---|---|
create_tenant_interaction_subscription |
Subscribe to tenant-wide Copilot interactions |
create_user_interaction_subscription |
Subscribe to interactions for one user |
create_meeting_insight_subscription |
Subscribe to AI insights for a meeting |
list_subscriptions |
List active subscriptions |
delete_subscription |
Delete a subscription |
renew_subscription |
Extend subscription expiration |
process_interaction_notification |
Parse and validate interaction webhook payloads |
process_insight_notification |
Parse and validate meeting insight payloads |
get_interaction |
Fetch full interaction details by ID |
get_meeting_insight |
Fetch a specific meeting insight |
list_interactions |
Query recent interactions with optional OData filtering |
Why change notifications are a strong fit
For Copilot governance and observability, you usually need two things at the same time:
- Fast signals that something changed
- Rich detail only when the signal is relevant
This connector keeps those concerns separate. Notifications trigger quickly, and tool calls such as get_interaction or get_meeting_insight retrieve full records only when your workflow actually needs them.
Prerequisites
Before you import the connector, make sure you have:
- A Microsoft 365 tenant with Copilot features enabled
- An app registration with Graph permissions for your scenario
- A secure HTTPS webhook endpoint for notification delivery
- Copilot licensing and Power Platform licensing required for your environment
From the project documentation, common Graph permissions include:
AiEnterpriseInteraction.Read.Allfor tenant-wide interaction accessAiEnterpriseInteraction.Readfor delegated per-user accessOnlineMeetingAiInsight.Read.Allfor meeting insight scenarios
Setup flow
1. Register your app in Microsoft Entra ID
Create an app registration, generate a client secret, and grant required Graph permissions with admin consent.
2. Configure connector connection values
Provide:
- Tenant ID
- Client ID
- Client secret
3. Validate the webhook endpoint before creating subscriptions
Use the webhook connectivity test operation so you can catch certificate, routing, or firewall issues early.
4. Create the right subscription type
Choose one of three models:
- Tenant-wide interactions
- Per-user interactions
- Meeting insight notifications
Webhook design notes
Your webhook should:
- Accept HTTPS POST requests
- Validate client state before processing
- Respond quickly so Graph does not treat the endpoint as unhealthy
- Offload heavy processing asynchronously
A common production pattern is:
- Accept notification
- Validate minimal fields
- Queue payload for background processing
- Fetch full interaction or insight details after queueing
Validation guardrails built into the script
The script includes input validation before making Graph calls. Examples include:
- Webhook URL must be HTTPS
- Subscription expiration must be in a valid future window
- User ID, meeting ID, and subscription ID length checks
That defensive layer helps prevent avoidable failures and gives clear errors back to the caller.
Subscription lifecycle behavior to plan for
One detail worth calling out: when expiration is set beyond 60 minutes in some subscription paths, the script includes lifecycleNotificationUrl. This helps support lifecycle events and renewal workflows.
You should still design for:
- Expiration tracking
- Automatic renewals before expiry
- Recovery when subscriptions are deleted after repeated webhook failures
Example usage prompts for Copilot Studio
Try prompts like:
- “Create a tenant-wide Copilot interaction subscription for our compliance webhook”
- “List active Copilot change notification subscriptions”
- “Process this interaction webhook payload and return interaction IDs”
- “Get interaction details for this resource ID”
- “Renew this subscription for another 60 minutes”
Observability with Application Insights
The script supports telemetry and logs events such as:
- Request received and request errors
- Graph request success and Graph request errors
- MCP protocol and tool execution failures
- Webhook test outcomes
Add your instrumentation key in script.csx to enable this.
Deploy with Power Platform CLI
pac auth create --environment "https://yourorg.crm.dynamics.com"
pac connector create \
--api-definition-file apiDefinition.swagger.json \
--api-properties-file apiProperties.json \
--script-file script.csx
If your environment blocks script upload via CLI, create the connector first, then upload script.csx in the connector Code tab.
Files in this project
| File | Purpose |
|---|---|
apiDefinition.swagger.json |
OpenAPI operations and MCP protocol operation metadata |
apiProperties.json |
OAuth and connector parameter configuration |
script.csx |
MCP router, Graph request handlers, webhook testing, and validation logic |
readme.md |
Setup, usage patterns, and payload examples |
When to use this connector
Use this connector when you need near real-time Copilot event monitoring and want one implementation that works for both automation and conversational orchestration.
It is especially useful for:
- AI usage governance
- Audit and compliance workflows
- Meeting summary automation
- Copilot adoption analytics