Skip to main content

Model Context Protocol (MCP)

Early Access

Try our newest feature! Only available through reach out. Contact us to join the early access program and get priority support.

Unizo offers an MCP server that integrates incident management platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to create incidents, coordinate responses, and analyze incident patterns across PagerDuty, Opsgenie, Incident.io, and other incident management tools via a single MCP server.

Supported Tools & Use Cases

The following tools are available in the Incident management MCP Server:

Tool NameDescription
incident_servicesGet list of available incident services/providers
incident_integrationsGet integrations for a specific service
list_organizationsBrowse organizations available for incident management
get_organizationGet details for a specific organization
list_servicesBrowse services within an organization
get_serviceGet details for a specific service
list_teamsBrowse teams within a service
get_teamGet details for a specific team
list_incidentsBrowse and search incidents with filtering
get_incidentGet details for a specific incident
create_incidentCreate new incidents with proper categorization and routing
update_incidentUpdate incident status, severity, or other properties

Tool Reference

incident_services

Get list of available incident services/providers

Parameters:
None

Returns:
List of available incident services

incident_integrations

Get integrations for a specific service

Parameters:

  • service (string, required): Service name to get integrations for

Returns:
List of integrations available for the specified service

list_organizations

Browse organizations available for incident management

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • offset (integer, optional): Number of records to skip (default: 0)
  • limit (integer, optional): Maximum number of records to return (default: 20)
  • sort (string, optional): Field to sort by

Returns:
List of organizations

get_organization

Get details for a specific organization

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization

Returns:
Organization details or null if not found

list_services

Browse services within an organization

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • offset (integer, optional): Number of records to skip (default: 0)
  • limit (integer, optional): Maximum number of records to return (default: 20)
  • sort (string, optional): Field to sort by

Returns:
List of services for the organization

get_service

Get details for a specific service

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service

Returns:
Service details or null if not found

list_teams

Browse teams within a service

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • offset (integer, optional): Number of records to skip (default: 0)
  • limit (integer, optional): Maximum number of records to return (default: 20)
  • sort (string, optional): Field to sort by

Returns:
List of teams for the service

get_team

Get details for a specific team

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • team_id (string, required): The unique identifier of the team

Returns:
Team details or null if not found

list_incidents

Browse and search incidents with filtering

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • team_id (string, required): The unique identifier of the team
  • offset (integer, optional): Number of records to skip (default: 0)
  • limit (integer, optional): Maximum number of records to return (default: 20)
  • sort (string, optional): Field to sort by

Returns:
List of incidents with pagination information

get_incident

Get details for a specific incident

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • team_id (string, required): The unique identifier of the team
  • incident_id (string, required): The unique identifier of the incident

Returns:
Incident details or error if not found

create_incident

Create new incidents with proper categorization and routing

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • team_id (string, required): The unique identifier of the team
  • name (string, required): Name of the incident (5-100 characters)
  • title (string, required): Title of the incident (10-200 characters)
  • description (string, required): Description of the incident (20-1000 characters)
  • status (string, required): Current status (investigating, identified, monitoring, resolved, postmortem)
  • priority_type (string, required): Priority type (P1, P2, P3, P4)
  • priority_id (string, required): Unique identifier of the priority
  • priority_name (string, required): Name of the priority (Critical, High, Medium, Low)
  • service_type (string, required): Type of the service
  • service_info_id (string, required): Unique identifier of the service
  • service_name (string, required): Name of the service
  • username (string, optional): Username of the incident creator
  • incident_type (string, optional): Type of incident (service, infrastructure, security, performance)
  • targets (array, optional): List of affected targets with type and slug fields
  • is_multi_responder (boolean, optional): Whether multiple responders are assigned
  • project_type (string, optional): Type of the project
  • project_id (string, optional): Unique identifier of the project
  • project_name (string, optional): Name of the project

Returns:
Created incident details with assigned ID

update_incident

Update incident status, severity, or other properties

Parameters:

  • integration_id (string, required): The integration ID to use for the request
  • organization_id (string, required): The unique identifier of the organization
  • service_id (string, required): The unique identifier of the service
  • team_id (string, required): The unique identifier of the team
  • incident_id (string, required): The unique identifier of the incident to update
  • name (string, optional): Name of the incident (5-100 characters)
  • title (string, optional): Title of the incident (10-200 characters)
  • description (string, optional): Description of the incident (20-1000 characters)
  • status (string, optional): Current status (investigating, identified, monitoring, resolved, postmortem)
  • username (string, optional): Username of the incident creator
  • incident_type (string, optional): Type of incident (service, infrastructure, security, performance)
  • targets (array, optional): List of affected targets with type and slug fields
  • is_multi_responder (boolean, optional): Whether multiple responders are assigned
  • priority_type (string, optional): Priority type (P1, P2, P3, P4)
  • priority_id (string, optional): Unique identifier of the priority
  • priority_name (string, optional): Name of the priority (Critical, High, Medium, Low)
  • service_type (string, optional): Type of the service
  • service_info_id (string, optional): Unique identifier of the service
  • service_name (string, optional): Name of the service
  • project_type (string, optional): Type of the project
  • project_id (string, optional): Unique identifier of the project
  • project_name (string, optional): Name of the project

Returns:
Updated incident details

Data Models

Incident Status Values

  • investigating: Initial investigation phase
  • identified: Root cause identified
  • monitoring: Monitoring for resolution
  • resolved: Incident resolved
  • postmortem: Post-incident review phase

Priority Types

  • P1 / Critical: Highest priority, immediate response required
  • P2 / High: High priority, rapid response needed
  • P3 / Medium: Medium priority, standard response time
  • P4 / Low: Low priority, can be scheduled

Incident Types

  • service: Service-related incident
  • infrastructure: Infrastructure failure
  • security: Security-related incident
  • performance: Performance degradation

Target Types

  • service: Service target
  • infrastructure: Infrastructure component
  • database: Database system
  • api: API endpoint

Installation

Prerequisites

  • A Unizo API key
  • An active Incidents integration (ServiceNow, Jira Service Management, ManageEngine ServiceDesk Plus, Opsgenie, PagerDuty, SolarWinds, VictorOps)
  • Node.js v20 or higher

MCP Configuration

Example configuration for running the Unizo Incident Management MCP server:

{
"mcpServers": {
"unizo-incidents": {
"command": "npx",
"args": [
"mcp-remote",
"http://api.unizo.ai/mcp/incidents",
"--allow-http",
"--header",
"apikey:${UNIZO_API_KEY}"
],
"env": {
"UNIZO_API_KEY": "your_api_key"
}
}
}
}

Client Setup

For detailed setup instructions with specific AI clients:

Environment Variables

The following environment variables are required:

Error Handling

All tools return errors in a consistent format:

{
"error": {
"code": "INCIDENT_NOT_FOUND",
"message": "Incident 'abc-123' not found"
}
}

Common error codes:

  • INTEGRATION_NOT_FOUND: Invalid incident management integration ID
  • INCIDENT_NOT_FOUND: Specified incident does not exist
  • RESPONDER_NOT_FOUND: Responder not found or not assignable
  • UNAUTHORIZED: Invalid API key or insufficient permissions
  • RATE_LIMIT_EXCEEDED: API quota exceeded
  • INVALID_STATUS: Status update value not accepted by platform