ICM MCP
ICM MCP allows Microsoft Internal MCS Agents to interact with ICM Tickets. It supports standard MCP tools/list and tools/call and tools ranging from incident details to edit and transfer
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Standard | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Apps | Standard | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Standard | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | Agent365 Microsoft.com |
| URL | Microsoft Power Automate Support Microsoft Power Apps Support |
| robsanto@microsoft.com |
| Connector Metadata | |
|---|---|
| Publisher | Microsoft |
| Website | https://eng.ms/docs/products/icm/onboarding/introduction |
| Privacy policy | https://privacy.microsoft.com/en-US/privacystatement |
| Categories | AI;Productivity |
ICM MCP Tools Connector
Overview
The ICM MCP Tools connector provides access to Microsoft's Incident Management (ICM) system through the Model Context Protocol (MCP) interface. This connector enables Power Automate and Power Apps to interact with ICM for incident management using AI-powered tools and comprehensive incident analysis capabilities.
This connector provides direct access to the MCP server, allowing you to leverage a growing set of powerful incident management tools.
Prerequisites
- Valid Microsoft corporate credentials
- Access to the ICM system
- Appropriate permissions for the operations you want to perform
Authentication
The connector uses OAuth 2.0 authentication with Azure Active Directory. When you create a connection, you'll be prompted to sign in with your Microsoft corporate credentials.
Available Operations
Invoke MCP Server
The connector provides a single, powerful operation that gives you access to all MCP tools:
- Invoke MCP Server: Direct access to the MCP server with support for
tools/listandtools/callmethods
Available MCP Tools
The connector currently supports the following tools (this list will continue to grow):
Incident Analysis
get_incident_details_by_id- Retrieve detailed information about a specific incidentget_incident_context- Get contextual information and related data for an incidentget_incident_location- Get location information for an incidentget_incident_customer_impact- Analyze customer impact of an incidentget_similar_incidents- Find similar incidents for pattern analysisget_ai_summary- Get AI-generated summary of incident informationget_mitigation_hints- Get suggested mitigation strategies
Customer Impact Analysis
get_impacted_s500_customers- Get list of impacted S500 customersget_impacted_ace_customers- Get list of impacted ACE customersget_impacted_azure_priority0_customers- Get list of impacted Azure Priority 0 customersget_impacted_subscription_count- Get count of impacted subscriptionsis_specific_customer_impacted- Check if a specific customer is impacted
Service and Infrastructure
get_impacted_services_regions_clouds- Get information about impacted services, regions, and cloudsget_services_by_names- Retrieve service information by namesget_outage_high_priority_events- Get high priority outage events
Team and Contact Management
get_teams_by_public_id- Find teams by their public IDget_teams_by_name- Find teams by nameget_team_by_id- Get team information by IDget_contact_by_alias- Get contact information by aliasget_contact_by_id- Get contact information by IDget_on_call_schedule_by_team_id- Get on-call schedule for a team
Search and Queries
search_incidents_by_owning_team_id- Search for incidents by owning teamget_support_requests_crisit- Get critical support requests
How to Use the Connector
1. List Available Tools
To see all available tools, use the tools/list method:
Request:
{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"tools": [
{
"name": "get_incident_details_by_id",
"description": "Get detailed information about an incident by its ID",
"inputSchema": {
"type": "object",
"properties": {
"incident_id": {
"type": "string",
"description": "The unique identifier of the incident"
}
},
"required": ["incident_id"]
}
},
{
"name": "get_incident_context",
"description": "Get contextual information for an incident",
"inputSchema": {
"type": "object",
"properties": {
"incident_id": {
"type": "string",
"description": "The unique identifier of the incident"
}
},
"required": ["incident_id"]
}
}
]
},
"id": 1
}
2. Call Specific Tools
To call a specific tool, use the tools/call method:
Example: Get Incident Details
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_incident_details_by_id",
"arguments": {
"incident_id": "12345678"
}
},
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "{\"id\": \"12345678\", \"title\": \"Service degradation in West US\", \"severity\": \"Sev2\", \"status\": \"Active\", \"createDate\": \"2024-01-15T10:30:00Z\", \"description\": \"Users experiencing slow response times\", \"owningTeam\": \"ServiceTeam\", \"impactedServices\": [\"WebApp\", \"API\"]}"
}
]
},
"id": 1
}
Example: Get Customer Impact Analysis
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_impacted_s500_customers",
"arguments": {
"incident_id": "12345678"
}
},
"id": 1
}
Example: Search Incidents by Team
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_incidents_by_owning_team_id",
"arguments": {
"team_id": "team-123",
"status": "Active",
"max_results": 50
}
},
"id": 1
}
Example: Get AI Summary
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_ai_summary",
"arguments": {
"incident_id": "12345678",
"include_mitigation": true
}
},
"id": 1
}
Power Automate Usage
Setting up the Action
- Add the "Invoke MCP Server" action to your flow
- Set the method field to either:
tools/list- to discover available toolstools/call- to execute a specific tool
- Configure the params object based on your chosen method
Example Flow: Automated Incident Analysis
1. Trigger: When an incident is created
2. Action: Invoke MCP Server
- method: "tools/call"
- params: {
"name": "get_incident_details_by_id",
"arguments": {"incident_id": "@{triggerBody()['incident_id']}"}
}
3. Action: Invoke MCP Server
- method: "tools/call"
- params: {
"name": "get_ai_summary",
"arguments": {"incident_id": "@{triggerBody()['incident_id']}"}
}
4. Action: Send notification with incident details and AI summary
Example Flow: Customer Impact Assessment
1. Trigger: Manual trigger with incident ID
2. Action: Invoke MCP Server (Get S500 Customers)
- method: "tools/call"
- params: {
"name": "get_impacted_s500_customers",
"arguments": {"incident_id": "@{triggerBody()['incident_id']}"}
}
3. Action: Invoke MCP Server (Get ACE Customers)
- method: "tools/call"
- params: {
"name": "get_impacted_ace_customers",
"arguments": {"incident_id": "@{triggerBody()['incident_id']}"}
}
4. Action: Create comprehensive impact report
Common Use Cases
1. Comprehensive Incident Analysis
Combine multiple tools to get a complete picture:
get_incident_details_by_id- Basic incident informationget_incident_context- Related context and dataget_ai_summary- AI-powered analysisget_similar_incidents- Historical patternsget_mitigation_hints- Suggested actions
2. Customer Impact Assessment
Assess the full scope of customer impact:
get_impacted_s500_customers- Enterprise customersget_impacted_ace_customers- ACE customersget_impacted_azure_priority0_customers- Priority 0 customersget_impacted_subscription_count- Total subscription impact
3. Team Coordination
Coordinate response efforts across teams:
get_teams_by_name- Find relevant teamsget_on_call_schedule_by_team_id- Check who's on callget_contact_by_alias- Get contact informationsearch_incidents_by_owning_team_id- Check team workload
4. Service Health Monitoring
Monitor and analyze service health:
get_impacted_services_regions_clouds- Affected infrastructureget_outage_high_priority_events- Critical eventsget_services_by_names- Service details
Technical Details
Request/Response Flow
- Power Automate sends JSON-RPC formatted request to the connector
- Connector forwards the request to the MCP server with proper authentication
- MCP server processes the request and returns JSON-RPC response
- Connector handles Server-Sent Events (SSE) if present and converts to JSON
- Response is returned to Power Automate in standard JSON format
Error Handling
The connector handles various error scenarios:
- Invalid tool names
- Missing required arguments
- Authentication failures
- Server unavailability
Rate Limits
The connector implements rate limiting of 100 calls per 60-second period per connection to ensure fair usage of the ICM system.
Advanced Usage
Dynamic Tool Discovery
Use tools/list at the beginning of your flows to dynamically discover available tools and their schemas. This ensures your flows work even as new tools are added.
Complex Workflows
Chain multiple tool calls together to create sophisticated incident management workflows that leverage the full power of the MCP ecosystem.
Testing
Quick Test: List Tools
- Create a new flow with the "Invoke MCP Server" action
- Set method to
tools/list - Leave params empty:
{} - Run the flow to see all available tools
Test: Get Incident Details
- Use method
tools/call - Set params to:
{ "name": "get_incident_details_by_id", "arguments": { "incident_id": "your-test-incident-id" } } - Verify the response contains incident information
Growing Tool Set
The MCP tool ecosystem is continuously expanding. New tools are regularly added to enhance incident management capabilities. Use the tools/list method to stay updated on newly available tools and their capabilities.
Support
- For connector issues: Contact the Power Platform team
- For ICM-specific questions: Contact icmsupport@microsoft.com
- For general Power Platform support: Visit the Microsoft Power Platform Community
Throttling Limits
| Name | Calls | Renewal Period |
|---|---|---|
| API calls per connection | 100 | 60 seconds |
Actions
| Check whether a specific customer is impacted |
Check whether a specific customer is in the impacted customer list by the incident/outage id. Note: Even if the result is false, doesn't mean the customer is not impacted. Ask user to check other impact metric like Support requests, Sev A (CritSit) etc. |
| Get a list of similar incidents |
Get a list of similar incidents for a given incident id. |
| Get affected services, regions and clouds |
Get affected services, regions and clouds for given incident or outage. |
| Get contact details by contact alias |
Get contact details by contact alias. |
| Get contact details by contact Id |
Get contact details by contact Id. |
| Get impacted 'Azure Priority 0' or 'Life and Safety' customers |
Get impacted 'Azure Priority 0' or 'Life and Safety' customers for given incident or outage. |
| Get impacted ACE customers |
Get impacted ACE customers for given incident or outage. |
| Get impacted High Priority events |
Get impacted High Priority events for given incident or outage. |
| Get impacted S500 customers |
Get impacted S500 customers for given incident or outage. |
| Get impacted subscription count |
Get impacted subscription count for given incident or outage. |
| Get incident and outage summary |
Get incident and/or outage summary and only for summary. |
| Get Incident details By id |
Get Incident details By id. |
| Get location information of the incident |
Get location information of the incident and/or outage, including region, availability zone, data center, cluster, node, and region arm alias. |
| Get mitigation hints for a given incident id |
Get mitigation hints for a given incident id. |
|
Get support requests and support tickets (SRs) and SevA (Crit |
Get support requests/support tickets (SRs) and SevA (CritSit) linked to given incident/outage. |
| Get team details by team Id |
Get team details by team Id. |
| Get team details by team name |
Get team details by team name. |
| Get team details by team public Id |
Get team details by team public Id. Public Id looks like TenantName\TeamName |
| Get the on-call schedule for a team |
Get the on-call schedule for a team by team Id. |
| Get the services details by list of names |
Get the services details by list of names. |
| ICM MCP |
Direct invocation of ICM MCP server operations |
| Provide all detailed context information |
Provide all detailed context information, all original metadata for the incident and outage |
| Provide overall impact for the specified incident |
Provide overall impact for the specified incident or outage. |
| Search incidents by owning team's id |
This tool Searches for incidents by owning team's id. |
Check whether a specific customer is impacted
Check whether a specific customer is in the impacted customer list by the incident/outage id. Note: Even if the result is false, doesn't mean the customer is not impacted. Ask user to check other impact metric like Support requests, Sev A (CritSit) etc.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
|
customerName
|
customerName | True | string |
The customer name |
Returns
Get a list of similar incidents
Get a list of similar incidents for a given incident id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get affected services, regions and clouds
Get affected services, regions and clouds for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get contact details by contact alias
Get contact details by contact alias.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
alias
|
alias | True | string |
The contact alias |
Returns
Get contact details by contact Id
Get contact details by contact Id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
contactId
|
contactId | True | string |
The contact ID |
Returns
Get impacted 'Azure Priority 0' or 'Life and Safety' customers
Get impacted 'Azure Priority 0' or 'Life and Safety' customers for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get impacted ACE customers
Get impacted ACE customers for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get impacted High Priority events
Get impacted High Priority events for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get impacted S500 customers
Get impacted S500 customers for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get impacted subscription count
Get impacted subscription count for given incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get incident and outage summary
Get incident and/or outage summary and only for summary.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get Incident details By id
Get Incident details By id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get location information of the incident
Get location information of the incident and/or outage, including region, availability zone, data center, cluster, node, and region arm alias.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get mitigation hints for a given incident id
Get mitigation hints for a given incident id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get support requests and support tickets (SRs) and SevA (CritSit)
Get support requests/support tickets (SRs) and SevA (CritSit) linked to given incident/outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Get team details by team Id
Get team details by team Id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
teamId
|
teamId | True | string |
The team ID |
Returns
Get team details by team name
Get team details by team name.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
teamName
|
teamName | True | string |
The team name |
Returns
Get team details by team public Id
Get team details by team public Id. Public Id looks like TenantName\TeamName
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
publicId
|
publicId | True | string |
The public ID of the team |
Returns
Get the on-call schedule for a team
Get the on-call schedule for a team by team Id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
teamIds
|
teamIds | True | string |
The team IDs |
Returns
Get the services details by list of names
Get the services details by list of names.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
names
|
names | True | string |
The service names |
Returns
ICM MCP
Direct invocation of ICM MCP server operations
Provide all detailed context information
Provide all detailed context information, all original metadata for the incident and outage
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Provide overall impact for the specified incident
Provide overall impact for the specified incident or outage.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
incidentId
|
incidentId | True | string |
The incident ID |
Returns
Search incidents by owning team's id
This tool Searches for incidents by owning team's id.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
teamId
|
teamId | True | string |
The team ID |