Rootly

com.rootlyPublished by rootly.comOfficial publisherv2.2.4Updated Oct 24, 2026

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

Overview

AI-generated overview

Rootly MCP server for incident management, on-call scheduling and incident analysis, usable as a hosted endpoint or a local Python process.

What you can do
  • List, search, read, create and update incidents, action items and post-incident reviews
  • Manage on-call schedules, rotations, override shifts, escalation policies and responder availability
  • Inspect alerts, alert groups, routing rules, heartbeats, pulses, dashboards and status pages
  • Analyze history with related-incident search, solution suggestions and AI SRE investigations
  • Browse teams, services, users, severities, environments, workflows and catalog entities
When to use it
Useful when an assistant should help during incident response, on-call coordination or post-incident retrospectives inside a Rootly organization, or answer questions about past incidents and schedules.
Requirements
Either the hosted endpoint with OAuth2 login, or a Rootly API token supplied as ROOTLY_API_TOKEN or an Authorization bearer header. Local use needs Python 3.12+ and the uv package manager; Docker is also shown. Network access to Rootly is required.
Before you install
The full profile exposes roughly 218 tools, and write tools can create or update incidents, schedules, escalation policies and investigations; restrict them with ROOTLY_MCP_ENABLE_WRITE_TOOLS=false or an allowlist. A global API key grants organization-wide access. Optional telemetry can send tool-call arguments and responses to AgentCat or PostHog when configured.

Installation

In SourceWeft

  1. Open Rootly in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via SSE. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.rootly%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "rootly": {
      "type": "sse",
      "url": "https://mcp.rootly.com/sse"
    }
  }
}

README

Rootly MCP Server

[PyPI version] [PyPI - Downloads] [Python Version]

An MCP server for the Rootly API for Cursor, Windsurf, Claude, and other MCP clients.

[Demo GIF]

Quick Start

Use the hosted MCP server. No local installation required.

Hosted Transport Options

  • Streamable HTTP (recommended): https://mcp.rootly.com/mcp
  • Code Mode: https://mcp.rootly.com/mcp-codemode
  • SSE (deprecated, removed after 2026-11-20): https://mcp.rootly.com/sse

[!WARNING] SSE is deprecated. The hosted https://mcp.rootly.com/sse endpoint and the self-hosted --transport sse option will be removed after 2026-11-20. Switch your client to Streamable HTTP (https://mcp.rootly.com/mcp) or Code Mode (https://mcp.rootly.com/mcp-codemode); for most clients that means changing the URL and, if your client config has one, setting the transport to http/streamable-http. SSE responses now carry Deprecation, Sunset and Link: rel="successor-version" headers.

Hosted tool profiles:

  • Full (default): use the URLs above as-is
  • Slim (~70 tools): add ?tool_profile=slim to the hosted URL, for example https://mcp.rootly.com/mcp?tool_profile=slim
  • Header alternative: send X-Rootly-Tool-Profile: slim
  • Server-wide default: set ROOTLY_MCP_HOSTED_TOOL_PROFILE=full|slim
  • Exact custom override: set ROOTLY_MCP_ENABLED_TOOLS=...

General Remote Setup

With OAuth2 (recommended):

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp"    }  }}

Your MCP client handles OAuth2 login automatically — a browser window opens for you to authenticate with Rootly. No API token needed.

With API Token:

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp",      "headers": {        "Authorization": "Bearer YOUR_ROOTLY_API_TOKEN"      }    }  }}

Code Mode:

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp-codemode"    }  }}

If your config still points at https://mcp.rootly.com/sse, replace it with https://mcp.rootly.com/mcp before 2026-11-20 (SSE is deprecated, see above).

Agent Setup

Claude Code

With OAuth2 (recommended):

bash
claude mcp add --transport http rootly https://mcp.rootly.com/mcp
# Code Mode:claude mcp add --transport http rootly-codemode https://mcp.rootly.com/mcp-codemode

With API Token:

bash
claude mcp add --transport http rootly https://mcp.rootly.com/mcp \  --header "Authorization: Bearer YOUR_ROOTLY_API_TOKEN"

Manual Configuration — Create .mcp.json in your project root:

json
{  "mcpServers": {    "rootly": {      "type": "http",      "url": "https://mcp.rootly.com/mcp"    }  }}
Gemini CLI

Install the extension:

bash
gemini extensions install https://github.com/rootlyhq/rootly-mcp-server

Or configure manually in ~/.gemini/settings.json:

json
{  "mcpServers": {    "rootly": {      "command": "uvx",      "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],      "env": {        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"      }    }  }}
Cursor

Add to .cursor/mcp.json or ~/.cursor/mcp.json:

With OAuth2 (recommended):

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp"    }  }}

With API Token:

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp",      "headers": {        "Authorization": "Bearer <YOUR_ROOTLY_API_TOKEN>"      }    }  }}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

With OAuth2 (recommended):

json
{  "mcpServers": {    "rootly": {      "serverUrl": "https://mcp.rootly.com/mcp"    }  }}

With API Token:

json
{  "mcpServers": {    "rootly": {      "serverUrl": "https://mcp.rootly.com/mcp",      "headers": {        "Authorization": "Bearer <YOUR_ROOTLY_API_TOKEN>"      }    }  }}
Codex

Add to ~/.codex/config.toml:

With OAuth2 (recommended):

toml
[mcp_servers.rootly]url = "https://mcp.rootly.com/mcp"

With API Token:

toml
[mcp_servers.rootly]url = "https://mcp.rootly.com/mcp"bearer_token_env_var = "ROOTLY_API_TOKEN"
Claude Desktop

With OAuth2 (recommended):

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "rootly": {      "url": "https://mcp.rootly.com/mcp"    }  }}

Claude Desktop handles OAuth2 login automatically.

With API Token (via mcp-remote):

json
{  "mcpServers": {    "rootly": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://mcp.rootly.com/mcp",        "--transport",        "http",        "--header",        "Authorization: Bearer <YOUR_ROOTLY_API_TOKEN>"      ]    }  }}
Databricks

Register the hosted server in Unity Gateway so Supervisor Agent, AI Playground, and other Databricks agents can use it:

  1. In your workspace, open Unity Gateway > MCPs, click + MCP, and choose Connect an existing MCP server.
  2. Pick a catalog and schema, name the MCP, and create a new connection with URL https://mcp.rootly.com/mcp.
  3. Choose an authentication method:
    • Dynamic Client Registration (recommended): each user signs in to Rootly with their own account.
    • Bearer token: paste a Rootly API token.
  4. Click Create & load tools, click Login if prompted, and select the tools to expose.

Or create the connection with the Databricks SDK:

python
from databricks.sdk import WorkspaceClientfrom databricks.sdk.service import catalog as c
WorkspaceClient().connections.create(    name="rootly_connection",    parent="schemas/main.default",    connection_type=c.ConnectionType.HTTP,    options={        "host": "https://mcp.rootly.com",        "port": "443",        "base_path": "/mcp",        "bearer_token": "<YOUR_ROOTLY_API_TOKEN>",    },)

The full profile exposes about 250 tools. Use Unity Gateway tool selection to expose only what your agents need. See docs/databricks-marketplace.md for the Marketplace listing details.

Rootly CLI

Standalone CLI for incidents, alerts, services, and on-call operations.

Install via Homebrew:

bash
brew install rootlyhq/tap/rootly-cli

Or via Go:

bash
go install github.com/rootlyhq/rootly-cli/cmd/rootly@latest

For more details, see the Rootly CLI repository.

Alternative Installation (Local)

Run the MCP server locally if you do not want to use the hosted service.

Prerequisites

  • Python 3.12 or higher
  • uv package manager
    bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Rootly API token

API Token Types

Choose the token type based on the access you need:

  • Global API Key: Full access across the Rootly instance. Best for organization-wide visibility.
  • Team API Key: Access limited to entities owned by that team.
  • Personal API Key: Access matches the user who created it.

A Global API Key is recommended for organization-wide queries and for actions that modify data, especially when workflows may span multiple teams, schedules, or incidents.

With uv

json
{  "mcpServers": {    "rootly": {      "command": "uv",      "args": [        "tool",        "run",        "--from",        "rootly-mcp-server",        "rootly-mcp-server"      ],      "env": {        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>",        "ROOTLY_MCP_ENABLE_WRITE_TOOLS": "true"      }    }  }}

Self-Hosted Transport Options

Choose one transport per server process:

  • Streamable HTTP endpoint path: /mcp
  • SSE (deprecated, removed after 2026-11-20) endpoint path: /sse. --transport sse logs a deprecation warning at startup; use --transport streamable-http instead.
  • Code Mode (experimental) endpoint path: /mcp-codemode in hosted dual-transport mode. One execute call may make at most 50 tool calls; set ROOTLY_CODE_MODE_MAX_TOOL_CALLS to a positive integer to change that.

Hosted and self-hosted deployments now both expose the full tool surface by default.

  • Hosted default: full surface
  • Hosted slim profile: about 70 high-usage tools via ?tool_profile=slim
  • Self-hosted default: full surface

To restrict either deployment to read-only tools, start the server with --no-enable-write-tools or set ROOTLY_MCP_ENABLE_WRITE_TOOLS=false.

For hosted clients that want the smaller remote profile, append ?tool_profile=slim to the MCP URL or send X-Rootly-Tool-Profile: slim.

AgentCat and Sentry telemetry

Hosted deployments can send MCP telemetry to AgentCat by setting ROOTLY_MCPCAT_PROJECT_ID. To also export AgentCat events to Sentry, provide SENTRY_DSN through the deployment's secret store. The optional ENVIRONMENT defaults to production, and SENTRY_RELEASE defaults to the installed Rootly MCP Server version. Sentry performance tracing is enabled when the exporter is configured. Free-form event text is redacted and actor names are omitted from Sentry-bound telemetry; stable internal actor IDs remain available for correlation.

AgentCat's enable_tool_call_context and enable_report_missing options are disabled. The SDK does not add an analytics context parameter or the get_more_tools feedback tool. Tool-call telemetry remains enabled, including arguments, responses, timing, errors, and configured identity information, subject to the existing redaction hooks.

Telemetry runs on AgentCat v2 (MCP 2026-07-28 spec). Session correlation uses the SDK's hook mode (resolve_session_id): the server derives the session from the request. The key always starts with the caller (authenticated user, or a digest of the token), then the client's Mcp-Session-Id when it sends one, otherwise the UTC hour. No session_id parameter or session instructions are added to tool schemas. Clients holding a cached tool list that still send context or session_id are tolerated; the stray argument is dropped before validation. initialize and tools/list events are no longer published by the SDK.

To override the hosted or self-hosted default profile entirely, set ROOTLY_MCP_ENABLED_TOOLS (or pass --enabled-tools) with a comma-separated allowlist of exact tool names. When that variable is set, it fully replaces the default selection.

To expose only a specific subset of MCP tools on a self-hosted deployment, set ROOTLY_MCP_ENABLED_TOOLS (or pass --enabled-tools) with a comma-separated allowlist of exact tool names, for example list_incidents,get_incident,get_server_version.

PostHog MCP analytics

Setting POSTHOG_PROJECT_TOKEN (and optionally POSTHOG_HOST, default https://us.i.posthog.com) sends $mcp_* events to PostHog with the same privacy settings as AgentCat: no injected context, conversation_id or llm_model parameters, credential scrubbing before send, and hosted users identified by Rootly user ID only.

When AgentCat is also configured, both run side by side. posthog.mcp's MCP SDK 1.x code path cannot handle AgentCat's middleware directly, so the server wraps it in an adapter first. On the stateless hosted transport, PostHog sessions are tied together through the Mcp-Session-Id header minted at initialize. AgentCat's session resolver also reads that header (scoped to the authenticated caller), so with PostHog on, AgentCat groups those clients' calls per connection instead of per hour.

OpenAI Apps domain verification

Hosted deployments expose an unauthenticated domain-verification endpoint used by the OpenAI plugin directory:

  • Endpoint: GET /.well-known/openai-apps-challenge
  • Environment variable: ROOTLY_OPENAI_APPS_CHALLENGE_TOKEN

Set ROOTLY_OPENAI_APPS_CHALLENGE_TOKEN to the token generated in the OpenAI submission portal. The endpoint returns that exact token as text/plain (with Cache-Control: no-store), and returns 404 when the variable is unset or empty. The token is read from the environment at request time — never hardcode or commit it. The route is served on both the dual-transport (--transport both) and profiled streamable-HTTP hosted deployments and is not subject to Bearer authentication.

To discover the exact tool names available under your current self-hosted configuration, run:

bash
ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \uv run python -m rootly_mcp_server --list-tools

This prints the effective MCP tool names after applying your current settings, including ROOTLY_MCP_ENABLE_WRITE_TOOLS and ROOTLY_MCP_ENABLED_TOOLS.

Smoke-test a self-hosted allowlist:

bash
ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \ROOTLY_MCP_ENABLED_TOOLS=list_incidents,get_incident,get_server_version \uv run python -m rootly_mcp_server --transport streamable-http --log-level ERROR

Then connect an MCP client to http://127.0.0.1:8000/mcp and verify tools/list returns only:

text
get_server_versionget_incidentlist_incidents

To include specific write tools for self-hosted testing, add both the write flag and the allowlist:

bash
ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \ROOTLY_MCP_ENABLE_WRITE_TOOLS=true \ROOTLY_MCP_ENABLED_TOOLS=create_incident,create_workflow_task,list_teams \uv run python -m rootly_mcp_server --transport streamable-http --log-level ERROR

Example Docker run (Streamable HTTP):

bash
docker run -p 8000:8000 \  -e ROOTLY_TRANSPORT=streamable-http \  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \  -e ROOTLY_MCP_ENABLE_WRITE_TOOLS=true \  rootly-mcp-server

Example Docker run (SSE, deprecated: removed after 2026-11-20, use Streamable HTTP above):

bash
docker run -p 8000:8000 \  -e ROOTLY_TRANSPORT=sse \  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \  rootly-mcp-server

Example Docker run (Dual transport + Code Mode; the /sse endpoint it also serves is deprecated):

bash
docker run -p 8000:8000 \  -e ROOTLY_TRANSPORT=both \  -e ROOTLY_API_TOKEN=<YOUR_ROOTLY_API_TOKEN> \  rootly-mcp-server

Workflow-Focused Tool Subsets

The full hosted and self-hosted surface exposes 200+ tools. If you want tighter workflow-specific subsets, use ROOTLY_MCP_ENABLED_TOOLS:

🚨 Incident Response (25 tools)

Essential tools for emergency responders and incident commanders

bash
ROOTLY_MCP_ENABLED_TOOLS="list_incidents,get_incident,create_incident,update_incident,search_incidents,find_related_incidents,suggest_solutions,create_incident_action_item,list_incident_action_items,update_incident_form_field_selection,list_teams,get_current_user,list_services,list_severities,get_alert,list_alerts,get_alert_by_short_id,list_escalation_policies,get_escalation_policy,list_on_call_roles,list_schedules,get_schedule_shifts,get_oncall_handoff_summary,get_shift_incidents,list_endpoints"

📅 On-Call Management (33 tools)

For schedule coordinators and on-call managers

bash
ROOTLY_MCP_ENABLED_TOOLS="list_schedules,get_schedule,update_schedule,get_schedule_shifts,list_shifts,create_schedule_rotation,update_schedule_rotation,list_schedule_rotations,get_schedule_rotation,list_schedule_rotation_users,update_schedule_rotation_user,create_on_call_shadow,update_on_call_shadow,list_on_call_shadows,create_override_shift,update_override_shift,list_override_shifts,list_on_call_roles,update_on_call_role,get_oncall_schedule_summary,get_oncall_shift_metrics,check_responder_availability,create_override_recommendation,list_teams,get_team,list_users,get_user,get_current_user,list_escalation_policies,update_escalation_policy,list_escalation_paths,update_escalation_path,list_escalation_levels"

📊 Monitoring & Alerting (40 tools)

For platform teams setting up observability

bash
ROOTLY_MCP_ENABLED_TOOLS="list_alerts,get_alert,get_alert_by_short_id,create_alert_group,update_alert_group,list_alert_groups,create_alert_routing_rule,update_alert_routing_rule,list_alert_routing_rules,list_alert_events,get_alert_event,update_alert_event,create_heartbeat,update_heartbeat,list_heartbeats,get_heartbeat,create_pulse,update_pulse,list_pulses,get_pulse,create_dashboard,update_dashboard,list_dashboards,get_dashboard,create_dashboard_panel,update_dashboard_panel,list_status_pages,get_status_page,update_status_page,list_status_page_templates,get_status_page_template,list_communications_templates,update_communications_template,create_live_call_router,update_live_call_router,list_services,list_teams,get_current_user,list_environments,list_severities,list_endpoints"

📋 Post-Incident Analysis (30 tools)

For SREs doing retrospectives and process improvement

bash
ROOTLY_MCP_ENABLED_TOOLS="get_incident,update_incident,find_related_incidents,suggest_solutions,list_incident_action_items,create_incident_action_item,update_incident_form_field_selection,create_post_incident_review,update_post_incident_review,list_post_incident_reviews,get_post_incident_review,create_retrospective_step,update_retrospective_step,list_retrospective_steps,create_retrospective_process,update_retrospective_process,list_retrospective_processes,create_playbook,update_playbook,list_playbooks,get_playbook,create_playbook_task,update_playbook_task,list_causes,get_cause,update_cause,list_incident_types,get_incident_type,update_incident_type,get_current_user"

📈 Analytics & Reporting (15 tools)

For leadership and metrics teams (read-only focus)

bash
ROOTLY_MCP_ENABLED_TOOLS="list_incidents,search_incidents,collect_incidents,list_teams,list_services,list_schedules,get_oncall_shift_metrics,get_shift_incidents,list_dashboards,get_dashboard,list_alerts,list_heartbeats,list_pulses,get_current_user,list_endpoints"

Multiple MCP Instances for Different Teams

You can run multiple MCP instances with different tool subsets:

json
{  "mcpServers": {    "rootly-incident-response": {      "command": "uvx", "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],      "env": {        "ROOTLY_API_TOKEN": "<token>",        "ROOTLY_MCP_ENABLED_TOOLS": "list_incidents,get_incident,create_incident,find_related_incidents,suggest_solutions..."      }    },    "rootly-oncall-management": {      "command": "uvx", "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],      "env": {        "ROOTLY_API_TOKEN": "<token>",        "ROOTLY_MCP_ENABLED_TOOLS": "list_schedules,update_schedule,create_override_shift,get_oncall_shift_metrics..."      }    }  }}

With uvx

json
{  "mcpServers": {    "rootly": {      "command": "uvx",      "args": [        "--from",        "rootly-mcp-server",        "rootly-mcp-server"      ],      "env": {        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"      }    }  }}

Features

  • Dynamic Tool Generation: Automatically creates MCP resources from Rootly's OpenAPI (Swagger) specification
  • Smart Pagination: Uses bounded pagination and compact incident responses to prevent context window overflow
  • API Filtering: Limits exposed API endpoints for security and performance
  • Intelligent Incident Analysis: Smart tools that analyze historical incident data
    • find_related_incidents: Uses TF-IDF similarity analysis to find historically similar incidents
    • suggest_solutions: Mines past incident resolutions to recommend actionable solutions
  • MCP Resources: Exposes incidents, teams, on-call status, and workflow guides as structured resources for AI context
  • Intelligent Pattern Recognition: Automatically identifies services, error types, and resolution patterns
  • On-Call Health Integration (self-hosted only): Detects workload health risk in scheduled responders

Supported Tools

The default tool surface depends on deployment profile:

  • Hosted default: about 218 tools
  • Hosted slim profile: about 70 tools
  • Self-hosted default: about 218 tools

Custom Agentic Tools

  • check_oncall_health_risk - self-hosted only
  • check_responder_availability
  • collect_incidents
  • create_incident - create a new incident with a scoped set of fields for agent workflows
  • create_override_recommendation
  • find_related_incidents
  • get_incident - retrieve a single incident for direct verification, including PIR-related fields
  • get_alert_by_short_id
  • get_investigation - an AI SRE investigation's verdict, evidence, causal chain and open questions (by id, or latest for an alert/incident)
  • get_investigation_progress - follow a running investigation; call again with after_cursor until done
  • get_oncall_handoff_summary
  • get_oncall_schedule_summary
  • get_oncall_shift_metrics
  • get_server_version
  • get_shift_incidents
  • list_endpoints
  • list_investigations
  • list_incidents
  • list_shifts
  • search_incidents
  • start_investigation, cancel_investigation - start or cancel an AI SRE investigation; write tools
  • suggest_solutions
  • update_incident - update native incident fields with severity validation; retrospective status changes require the Rootly UI

OpenAPI-Generated Tools

Tool naming: all tools use snake_case. The historical camelCase names (e.g. getScheduleShifts, listIncidents) are no longer advertised in tools/list, but remain callable as hidden aliases — they are transparently routed to their snake_case canonical. Update configs and ROOTLY_MCP_ENABLED_TOOLS allowlists to the snake_case names; legacy camelCase allowlist entries are auto-canonicalized.

text
list_workflow_runscreate_incident_action_itemcreate_incident_form_field_selectioncreate_workflow_taskget_alertget_alert_eventget_alert_groupget_alert_routing_ruleget_alert_sourceget_alert_urgencyget_catalogget_catalog_entityget_catalog_entity_propertyget_catalog_propertyget_causeget_current_userget_custom_formget_environmentget_escalation_levelget_escalation_pathget_escalation_policyget_form_fieldget_form_field_optionget_functionalityget_functionality_incidents_chartget_functionality_uptime_chartget_incident_action_itemsget_incident_form_field_selectionget_incident_typeget_on_call_roleget_on_call_shadowget_override_shiftget_scheduleget_schedule_rotationget_schedule_shiftsget_serviceget_service_incidents_chartget_service_uptime_chartget_severityget_status_pageget_status_page_templateget_teamget_team_incidents_chartget_userget_workflowget_workflow_form_field_conditionget_workflow_groupget_workflow_tasklist_alert_eventslist_alert_groupslist_alert_routing_ruleslist_alert_sourceslist_alert_urgencieslist_alertslist_all_incident_action_itemslist_catalog_entitieslist_catalog_entity_propertieslist_catalog_propertieslist_catalogslist_causeslist_custom_formslist_environmentslist_escalation_levelslist_escalation_levels_pathslist_escalation_pathslist_escalation_policieslist_form_field_optionslist_form_fieldslist_functionalitieslist_incident_action_itemslist_incident_alertslist_incident_form_field_selectionslist_incident_typeslist_observability_logslist_observability_patternscount_observability_logslist_on_call_roleslist_on_call_shadowslist_override_shiftslist_schedule_rotation_active_dayslist_schedule_rotation_userslist_schedule_rotationslist_scheduleslist_serviceslist_severitieslist_shiftslist_status_page_templateslist_status_pageslist_teamslist_userslist_workflow_form_field_conditionslist_workflow_groupslist_workflowslist_workflow_tasksupdate_environmentupdate_escalation_levelupdate_escalation_pathupdate_escalation_policyupdate_functionalityupdate_incident_typeupdate_on_call_roleupdate_on_call_shadowupdate_override_shiftupdate_scheduleupdate_schedule_rotationupdate_serviceupdate_severityupdate_teamupdate_workflowupdate_incident_form_field_selectionupdate_workflow_task

Major Expansion: This version includes 50+ new endpoints covering communications, dashboards, playbooks, post-incident reviews, monitoring, and advanced form management - while carefully excluding security-sensitive operations like API key management, user creation/deletion, role management, and webhook configuration.

Delete operations remain disabled in the default tool surface.

On-Call Health Integration (Self-Hosted Only)

Integrates with On-Call Health to detect workload health risk in scheduled responders.

check_oncall_health_risk is unavailable on the hosted MCP service, including the full and slim profiles, SSE, Streamable HTTP, and Code Mode. It is not registered in hosted mode, so an API key or ROOTLY_MCP_ENABLED_TOOLS allowlist cannot enable it. Ordinary on-call scheduling and incident tools remain available.

Self-hosted deployments retain this integration. Operators are responsible for appropriate employee disclosure and data handling for their deployment.

Setup

Set the ONCALLHEALTH_API_KEY environment variable:

json
{  "mcpServers": {    "rootly": {      "command": "uvx",      "args": ["--from", "rootly-mcp-server", "rootly-mcp-server"],      "env": {        "ROOTLY_API_TOKEN": "your_rootly_token",        "ONCALLHEALTH_API_KEY": "och_live_your_key"      }    }  }}

Usage

check_oncall_health_risk(    start_date="2026-02-09",    end_date="2026-02-15")

Returns at-risk users who are scheduled, recommended safe replacements, and action summaries.

Example Skills

Pre-built Claude Code skills:

🚨 Rootly Incident Responder

This skill:

  • Analyzes production incidents with full context
  • Finds similar historical incidents using ML-based similarity matching
  • Suggests solutions based on past successful resolutions
  • Coordinates with on-call teams across timezones
  • Correlates incidents with recent code changes and deployments
  • Creates action items and remediation plans
  • Provides confidence scores and time estimates

Quick Start:

bash
# Copy the skill to your projectmkdir -p .claude/skillscp examples/skills/rootly-incident-responder.md .claude/skills/
# Then in Claude Code, invoke it:# @rootly-incident-responder analyze incident #12345

It demonstrates a full incident response workflow using Rootly tools and GitHub context.

On-Call Shift Metrics

Get on-call shift metrics for any time period, grouped by user, team, or schedule. Includes primary/secondary role tracking, shift counts, hours, and days on-call.

get_oncall_shift_metrics(    start_date="2025-10-01",    end_date="2025-10-31",    group_by="user")

On-Call Handoff Summary

Complete handoff: current/next on-call + incidents during shifts.

python
# All on-call (any timezone)get_oncall_handoff_summary(team_ids="team-1,team-2", timezone="America/Los_Angeles")
# Regional filter - only show APAC on-call during APAC business hoursget_oncall_handoff_summary(timezone="Asia/Tokyo", filter_by_region=True)

Regional filtering shows only people on-call during business hours (9am-5pm) in the specified timezone.

Returns: schedules with current_oncall, next_oncall, and shift_incidents

MCP Resources for Context

AI agents can access these resources for situational awareness:

  • incident://{incident_id} - Detailed incident information for specific incidents
  • team://{team_id} - Team details including name, color, and metadata
  • rootly://incidents - List of recent incidents for quick reference
  • rootly://oncall-status - Current on-call status across all schedules (critical for incident response)
  • rootly://workflow-guide - Step-by-step workflow guidance for common operations

Example usage: "Check the current on-call status" → AI reads rootly://oncall-status resource

Shift Incidents

Incidents during a time period, with filtering by severity/status/tags.

python
get_shift_incidents(    start_time="2025-10-20T09:00:00Z",    end_time="2025-10-20T17:00:00Z",    severity="critical",  # optional    status="resolved",  # optional    tags="database,api",  # optional)

Returns: incidents list + summary (counts, avg resolution time, grouping)

Contributing

See CONTRIBUTING.md for developer setup and guidelines.

Play with it on Postman

[Run In Postman]

About Rootly AI Labs

This project was developed by Rootly AI Labs, where we're building the future of system reliability and operational excellence. As an open-source incubator, we share ideas, experiment, and rapidly prototype solutions that benefit the entire community. [Rootly AI logo]

Source: README.md at commit 61a887b

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v2.2.4LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Rootly integrations