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 Name | Description |
---|---|
incident_services | Get list of available incident services/providers |
incident_integrations | Get integrations for a specific service |
list_organizations | Browse organizations available for incident management |
get_organization | Get details for a specific organization |
list_services | Browse services within an organization |
get_service | Get details for a specific service |
list_teams | Browse teams within a service |
get_team | Get details for a specific team |
list_incidents | Browse and search incidents with filtering |
get_incident | Get details for a specific incident |
create_incident | Create new incidents with proper categorization and routing |
update_incident | Update 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 requestoffset
(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 requestorganization_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 requestorganization_id
(string, required): The unique identifier of the organizationoffset
(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 requestorganization_id
(string, required): The unique identifier of the organizationservice_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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceoffset
(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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceteam_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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceteam_id
(string, required): The unique identifier of the teamoffset
(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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceteam_id
(string, required): The unique identifier of the teamincident_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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceteam_id
(string, required): The unique identifier of the teamname
(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 prioritypriority_name
(string, required): Name of the priority (Critical
,High
,Medium
,Low
)service_type
(string, required): Type of the serviceservice_info_id
(string, required): Unique identifier of the serviceservice_name
(string, required): Name of the serviceusername
(string, optional): Username of the incident creatorincident_type
(string, optional): Type of incident (service
,infrastructure
,security
,performance
)targets
(array, optional): List of affected targets with type and slug fieldsis_multi_responder
(boolean, optional): Whether multiple responders are assignedproject_type
(string, optional): Type of the projectproject_id
(string, optional): Unique identifier of the projectproject_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 requestorganization_id
(string, required): The unique identifier of the organizationservice_id
(string, required): The unique identifier of the serviceteam_id
(string, required): The unique identifier of the teamincident_id
(string, required): The unique identifier of the incident to updatename
(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 creatorincident_type
(string, optional): Type of incident (service
,infrastructure
,security
,performance
)targets
(array, optional): List of affected targets with type and slug fieldsis_multi_responder
(boolean, optional): Whether multiple responders are assignedpriority_type
(string, optional): Priority type (P1
,P2
,P3
,P4
)priority_id
(string, optional): Unique identifier of the prioritypriority_name
(string, optional): Name of the priority (Critical
,High
,Medium
,Low
)service_type
(string, optional): Type of the serviceservice_info_id
(string, optional): Unique identifier of the serviceservice_name
(string, optional): Name of the serviceproject_type
(string, optional): Type of the projectproject_id
(string, optional): Unique identifier of the projectproject_name
(string, optional): Name of the project
Returns:
Updated incident details
Data Models
Incident Status Values
investigating
: Initial investigation phaseidentified
: Root cause identifiedmonitoring
: Monitoring for resolutionresolved
: Incident resolvedpostmortem
: Post-incident review phase
Priority Types
P1
/ Critical: Highest priority, immediate response requiredP2
/ High: High priority, rapid response neededP3
/ Medium: Medium priority, standard response timeP4
/ Low: Low priority, can be scheduled
Incident Types
service
: Service-related incidentinfrastructure
: Infrastructure failuresecurity
: Security-related incidentperformance
: Performance degradation
Target Types
service
: Service targetinfrastructure
: Infrastructure componentdatabase
: Database systemapi
: 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:
UNIZO_API_KEY
: Your Unizo API key Your Unizo API key
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 IDINCIDENT_NOT_FOUND
: Specified incident does not existRESPONDER_NOT_FOUND
: Responder not found or not assignableUNAUTHORIZED
: Invalid API key or insufficient permissionsRATE_LIMIT_EXCEEDED
: API quota exceededINVALID_STATUS
: Status update value not accepted by platform