Clean
    2.2.4

    com.rootly/mcp-server

    Incident management, on-call scheduling, and intelligent analysis powered by Rootly.

    Manifest82
    Lineage82
    Safety90
    Rank#400
    rootlymcp-registryApi wrapperLast scanned Jul 17, 2026, 12:25 AMhttps://github.com/Rootly-AI-Labs/Rootly-MCP-server

    Security Findings

    Remote-only MCP server

    Remote endpoint requires secret credential (2 variants): https://mcp.rootly.com/mcp

    Workflow makes outbound network call

    [.github/workflows/ci.yml] curl -fsS http://localhost:8000/health || curl -fsS http://localhost:8000/;

    Tools

    20 tools exposed by this MCP server

    20 clean

    check_oncall_health_risk

    Check if any at-risk responders (based on On-Call Health analysis) are scheduled for on-call. Integrates with On-Call Health (oncallhealth.ai) to identify responders with elevated workload health risk and checks if they are scheduled during the specified period. Optionally recommends safe replacement responders. Requires ONCALLHEALTH_API_KEY environment variable.

    Clean
    src/rootly_mcp_server/tools/oncall.py

    check_responder_availability

    Check if specific users are scheduled for on-call in a date range. REQUIRED ARGUMENTS: start_date (ISO 8601), end_date (ISO 8601), user_ids (comma-separated numeric IDs — not emails). Resolve emails to user IDs via `listUsers` filtered by email before calling this. Use this to verify if at-risk users (from On-Call Health) are scheduled, or to check availability before assigning new shifts. Returns scheduled users with their shifts and total hours, plus users who are not scheduled.

    Clean
    src/rootly_mcp_server/tools/oncall.py

    collect_incidents

    Collect a bounded working set of incidents across multiple pages for audits and analysis. Use this instead of list_incidents when you want a compact batch of incidents in one tool call, while keeping payload size under control.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    create_incident

    Create an incident with a scoped set of fields for agent-driven workflows.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    create_override_recommendation

    Recommend replacement responders for an override shift. Finds users in the same schedule rotation who are not already heavily loaded during the period. Returns recommended replacements sorted by current load (lowest first), plus a ready-to-use override payload for the top recommendation.

    Clean
    src/rootly_mcp_server/tools/oncall.py

    find_related_incidents

    🔍 Find historically similar incidents using ML similarity analysis - CRITICAL for incident response. WHEN TO USE: • EARLY in incident response to learn from past similar issues • When you're unsure about root cause or resolution approach • Before escalating to find if this is a known pattern • For post-incident analysis to identify recurring issues Provide either incident_id OR incident_description (e.g., 'website is down', 'database timeout errors'). Use status_filter to limit to specific incident statuses or leave empty for all incidents.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    get_alert_by_short_id

    Get alert details by short_id or alert URL. Use this when a user pastes an alert URL or short_id from a pager notification and wants to investigate the alert.

    Clean
    src/rootly_mcp_server/tools/alerts.py

    get_incident

    Retrieve a single incident with PIR-related fields for direct verification.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    get_oncall_handoff_summary

    Get current on-call handoff summary. Shows who's currently on-call and who's next. Optionally fetch incidents (set include_incidents=True, but slower). Timezone handling: If user mentions their location/timezone, infer it (e.g., "Toronto" → "America/Toronto", "my time" → ask clarifying question or use a common timezone). Regional filtering: Use timezone + filter_by_region=True to see only people on-call during business hours in that region (e.g., timezone='Asia/Tokyo', filter_by_region=True shows only APAC on-call during APAC business hours). Performance: By default, incidents are NOT fetched for faster response. Set include_incidents=True to fetch incidents for each shift (slower, may timeout with many schedules). Useful for: - Quick on-call status checks - Daily handoff meetings - Regional on-call status (APAC, EU, Americas) - Team coordination across timezones

    Clean
    src/rootly_mcp_server/tools/oncall.py

    get_oncall_schedule_summary

    Get compact on-call schedule summary for a date range. REQUIRED ARGUMENTS: start_date, end_date (both ISO 8601 date strings). Optional: schedule_ids (comma-separated, plural), team_ids. Returns one entry per user per schedule (not raw shifts), with aggregated hours. Optimized for AI agent context windows. Use this instead of listShifts when you need: - Aggregated hours per responder - Schedule coverage overview - Responder load analysis with warnings

    Clean
    src/rootly_mcp_server/tools/oncall.py

    get_oncall_shift_metrics

    📊 Get on-call workload metrics and shift statistics - ESSENTIAL for fairness and planning. WHEN TO USE: • Monthly/quarterly reviews of on-call distribution • Before adjusting schedules to ensure fair workload • For management reporting on on-call burden • When investigating potential on-call burnout Returns shift counts, total hours, and statistics grouped by user, schedule, or team. Examples: - Monthly report: start_date='2025-10-01', end_date='2025-10-31' - Specific user: start_date='2025-10-01', end_date='2025-10-31', user_ids='123,456' - Specific team: team_ids='team-1' (will query schedules for that team first)

    Clean
    src/rootly_mcp_server/tools/oncall.py

    get_server_version

    Get the Rootly MCP server version. Returns the current version of the deployed MCP server. Useful for checking if the server has been updated.

    Clean
    src/rootly_mcp_server/server.py

    get_shift_incidents

    Get incidents and alerts that occurred during a specific shift or time period. Useful for: - Shift handoff summaries showing what happened during the shift - Post-shift debriefs and reporting - Incident analysis by time period - Understanding team workload during specific shifts Returns incident details including severity, status, duration, and basic summary.

    Clean
    src/rootly_mcp_server/tools/oncall.py

    list_endpoints

    List all available Rootly API endpoints with their descriptions.

    Clean
    src/rootly_mcp_server/server.py

    list_incidents

    🚨 List incidents with structured filters - ESSENTIAL for incident response. WHEN TO USE: • During incident response to check for related ongoing incidents • For shift handoffs to review recent incidents by team/service • For post-incident analysis to find patterns by severity/date range • For audit workflows requiring specific filtering criteria Use this when you need date-range, team, service, severity, or status filters. For simple text searches, prefer search_incidents instead.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    list_incidents_legacy

    ⚠️ DEPRECATED — use `list_incidents` instead. This is a backward-compatibility shim for clients that have the legacy `listIncidents` tool name pinned (e.g. in `ROOTLY_MCP_ENABLED_TOOLS` or cached agent configs). It forwards to `list_incidents` and will be removed in a future release. Update your configuration to call `list_incidents` directly.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    list_shifts

    List on-call shifts with reliable filtering, enrichment, and MCP-level pagination. Unlike the raw API, this tool: - Actually filters by user_ids (client-side filtering) - Includes user_name, user_email, schedule_name, team_name - Calculates total_hours for each shift - Returns a predictable paginated result for MCP clients Use this instead of the auto-generated listShifts when you need user filtering or dependable pagination on large tenants.

    Clean
    src/rootly_mcp_server/tools/oncall.py

    search_incidents

    Search incidents with flexible pagination control. Use page_number=0 to fetch all matching results across multiple pages up to max_results. Use page_number>0 to fetch a specific page. Argument caps: page_size <= 20, max_results <= 10.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    suggest_solutions

    💡 Get actionable solution recommendations from similar resolved incidents - KEY for incident response. WHEN TO USE: • AFTER find_related_incidents to get specific resolution steps • When team is stuck on how to resolve the current incident • To speed up incident resolution with proven solutions • For training new responders on resolution patterns Provide either incident_id OR title/description. Defaults to resolved incidents for solution mining.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    update_incident

    Update scoped incident fields for PIR lifecycle automation.

    Clean
    src/rootly_mcp_server/tools/incidents.py

    Versions

    1
    • 2.2.4
      Scanned Jul 17, 2026, 12:25 AM82
      Clean