Share via


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
Email 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/list and tools/call methods

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 incident
  • get_incident_context - Get contextual information and related data for an incident
  • get_incident_location - Get location information for an incident
  • get_incident_customer_impact - Analyze customer impact of an incident
  • get_similar_incidents - Find similar incidents for pattern analysis
  • get_ai_summary - Get AI-generated summary of incident information
  • get_mitigation_hints - Get suggested mitigation strategies

Customer Impact Analysis

  • get_impacted_s500_customers - Get list of impacted S500 customers
  • get_impacted_ace_customers - Get list of impacted ACE customers
  • get_impacted_azure_priority0_customers - Get list of impacted Azure Priority 0 customers
  • get_impacted_subscription_count - Get count of impacted subscriptions
  • is_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 clouds
  • get_services_by_names - Retrieve service information by names
  • get_outage_high_priority_events - Get high priority outage events

Team and Contact Management

  • get_teams_by_public_id - Find teams by their public ID
  • get_teams_by_name - Find teams by name
  • get_team_by_id - Get team information by ID
  • get_contact_by_alias - Get contact information by alias
  • get_contact_by_id - Get contact information by ID
  • get_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 team
  • get_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

  1. Add the "Invoke MCP Server" action to your flow
  2. Set the method field to either:
    • tools/list - to discover available tools
    • tools/call - to execute a specific tool
  3. 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 information
  • get_incident_context - Related context and data
  • get_ai_summary - AI-powered analysis
  • get_similar_incidents - Historical patterns
  • get_mitigation_hints - Suggested actions

2. Customer Impact Assessment

Assess the full scope of customer impact:

  • get_impacted_s500_customers - Enterprise customers
  • get_impacted_ace_customers - ACE customers
  • get_impacted_azure_priority0_customers - Priority 0 customers
  • get_impacted_subscription_count - Total subscription impact

3. Team Coordination

Coordinate response efforts across teams:

  • get_teams_by_name - Find relevant teams
  • get_on_call_schedule_by_team_id - Check who's on call
  • get_contact_by_alias - Get contact information
  • search_incidents_by_owning_team_id - Check team workload

4. Service Health Monitoring

Monitor and analyze service health:

  • get_impacted_services_regions_clouds - Affected infrastructure
  • get_outage_high_priority_events - Critical events
  • get_services_by_names - Service details

Technical Details

Request/Response Flow

  1. Power Automate sends JSON-RPC formatted request to the connector
  2. Connector forwards the request to the MCP server with proper authentication
  3. MCP server processes the request and returns JSON-RPC response
  4. Connector handles Server-Sent Events (SSE) if present and converts to JSON
  5. 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

  1. Create a new flow with the "Invoke MCP Server" action
  2. Set method to tools/list
  3. Leave params empty: {}
  4. Run the flow to see all available tools

Test: Get Incident Details

  1. Use method tools/call
  2. Set params to:
    {
      "name": "get_incident_details_by_id",
      "arguments": {
        "incident_id": "your-test-incident-id"
      }
    }
    
  3. 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 (CritSit)

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

Returns