Skip to main content
Glama
JLKmach

ServiceNow MCP Server

by JLKmach

create_incident

Create new incidents in ServiceNow to report and track IT issues, service requests, or system problems for resolution.

Instructions

Create a new incident in ServiceNow

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
short_descriptionYesShort description of the incident
descriptionNoDetailed description of the incident
caller_idNoUser who reported the incident
categoryNoCategory of the incident
subcategoryNoSubcategory of the incident
priorityNoPriority of the incident
impactNoImpact of the incident
urgencyNoUrgency of the incident
assigned_toNoUser assigned to the incident
assignment_groupNoGroup assigned to the incident

Implementation Reference

  • The handler function that executes the create_incident tool logic by posting data to the ServiceNow incident table API.
    def create_incident(
        config: ServerConfig,
        auth_manager: AuthManager,
        params: CreateIncidentParams,
    ) -> IncidentResponse:
        """
        Create a new incident in ServiceNow.
    
        Args:
            config: Server configuration.
            auth_manager: Authentication manager.
            params: Parameters for creating the incident.
    
        Returns:
            Response with the created incident details.
        """
        api_url = f"{config.api_url}/table/incident"
    
        # Build request data
        data = {
            "short_description": params.short_description,
        }
    
        if params.description:
            data["description"] = params.description
        if params.caller_id:
            data["caller_id"] = params.caller_id
        if params.category:
            data["category"] = params.category
        if params.subcategory:
            data["subcategory"] = params.subcategory
        if params.priority:
            data["priority"] = params.priority
        if params.impact:
            data["impact"] = params.impact
        if params.urgency:
            data["urgency"] = params.urgency
        if params.assigned_to:
            data["assigned_to"] = params.assigned_to
        if params.assignment_group:
            data["assignment_group"] = params.assignment_group
    
        # Make request
        try:
            response = requests.post(
                api_url,
                json=data,
                headers=auth_manager.get_headers(),
                timeout=config.timeout,
            )
            response.raise_for_status()
    
            result = response.json().get("result", {})
    
            return IncidentResponse(
                success=True,
                message="Incident created successfully",
                incident_id=result.get("sys_id"),
                incident_number=result.get("number"),
            )
    
        except requests.RequestException as e:
            logger.error(f"Failed to create incident: {e}")
            return IncidentResponse(
                success=False,
                message=f"Failed to create incident: {str(e)}",
            )
  • Pydantic BaseModel defining the input parameters and validation schema for the create_incident tool.
    class CreateIncidentParams(BaseModel):
        """Parameters for creating an incident."""
    
        short_description: str = Field(..., description="Short description of the incident")
        description: Optional[str] = Field(None, description="Detailed description of the incident")
        caller_id: Optional[str] = Field(None, description="User who reported the incident")
        category: Optional[str] = Field(None, description="Category of the incident")
        subcategory: Optional[str] = Field(None, description="Subcategory of the incident")
        priority: Optional[str] = Field(None, description="Priority of the incident")
        impact: Optional[str] = Field(None, description="Impact of the incident")
        urgency: Optional[str] = Field(None, description="Urgency of the incident")
        assigned_to: Optional[str] = Field(None, description="User assigned to the incident")
        assignment_group: Optional[str] = Field(None, description="Group assigned to the incident")
  • Registration of the create_incident tool in the tool_definitions dictionary, mapping name to handler, schema, return type, description, and serialization method.
    "create_incident": (
        create_incident_tool,
        CreateIncidentParams,
        str,
        "Create a new incident in ServiceNow",
        "str",
    ),
  • Import of the create_incident handler aliased as create_incident_tool for use in tool registration.
        create_incident as create_incident_tool,
    )
  • Re-export of create_incident from incident_tools.py in the tools package __init__.
    from servicenow_mcp.tools.incident_tools import (
        add_comment,
        create_incident,

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JLKmach/servicenow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server