Skip to main content

A Model Context Protocol server for Rootly APIs using OpenAPI spec

Project description

Rootly MCP Server

An MCP server for the Rootly API that integrates seamlessly with MCP-compatible editors like Cursor, Windsurf, and Claude. Resolve production incidents in under a minute without leaving your IDE.

Install MCP Server

Demo GIF

Prerequisites

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

Installation

Configure your MCP-compatible editor (tested with Cursor) with one of the configurations below. The package will be automatically downloaded and installed when you first open your editor.

With uv

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

With uvx

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

To customize allowed_paths and access additional Rootly API paths, clone the repository and use this configuration:

{
  "mcpServers": {
    "rootly": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/rootly-mcp-server",
        "rootly-mcp-server"
      ],
      "env": {
        "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Connect to Hosted MCP Server

Alternatively, connect directly to our hosted MCP server:

{
  "mcpServers": {
    "rootly": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.rootly.com/sse",
        "--header",
        "Authorization:${ROOTLY_AUTH_HEADER}"
      ],
      "env": {
        "ROOTLY_AUTH_HEADER": "Bearer <YOUR_ROOTLY_API_TOKEN>"
      }
    }
  }
}

Features

  • Dynamic Tool Generation: Automatically creates MCP resources from Rootly's OpenAPI (Swagger) specification
  • Smart Pagination: Defaults to 10 items per request for incident endpoints to prevent context window overflow
  • API Filtering: Limits exposed API endpoints for security and performance
  • AI-Powered Incident Analysis: Smart tools that learn from 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 incident and team data as structured resources for easy AI reference
  • Intelligent Pattern Recognition: Automatically identifies services, error types, and resolution patterns

Whitelisted Endpoints

By default, the following Rootly API endpoints are exposed to the AI agent (see allowed_paths in src/rootly_mcp_server/server.py):

/v1/incidents
/v1/incidents/{incident_id}/alerts
/v1/alerts
/v1/alerts/{alert_id}
/v1/severities
/v1/severities/{severity_id}
/v1/teams
/v1/teams/{team_id}
/v1/services
/v1/services/{service_id}
/v1/functionalities
/v1/functionalities/{functionality_id}
/v1/incident_types
/v1/incident_types/{incident_type_id}
/v1/incident_action_items
/v1/incident_action_items/{incident_action_item_id}
/v1/incidents/{incident_id}/action_items
/v1/workflows
/v1/workflows/{workflow_id}
/v1/workflow_runs
/v1/workflow_runs/{workflow_run_id}
/v1/environments
/v1/environments/{environment_id}
/v1/users
/v1/users/{user_id}
/v1/users/me
/v1/status_pages
/v1/status_pages/{status_page_id}

Why Path Limiting?

We limit exposed API paths for two key reasons:

  1. Context Management: Rootly's comprehensive API can overwhelm AI agents, affecting their ability to perform simple tasks effectively
  2. Security: Controls which information and actions are accessible through the MCP server

To expose additional paths, modify the allowed_paths variable in src/rootly_mcp_server/server.py.

AI-Powered Smart Tools

The MCP server includes intelligent tools that analyze historical incident data to provide actionable insights:

find_related_incidents

Finds historically similar incidents using machine learning text analysis:

find_related_incidents(incident_id="12345", similarity_threshold=0.3, max_results=5)
  • Input: Incident ID, similarity threshold (0.0-1.0), max results
  • Output: Similar incidents with confidence scores, matched services, and resolution times
  • Use Case: Get context from past incidents to understand patterns and solutions

suggest_solutions

Recommends solutions by analyzing how similar incidents were resolved:

suggest_solutions(incident_id="12345", max_solutions=3)
# OR for new incidents:
suggest_solutions(incident_title="Payment API errors", incident_description="Users getting 500 errors during checkout")
  • Input: Either incident ID OR title/description text
  • Output: Actionable solution recommendations with confidence scores and time estimates
  • Use Case: Get AI-powered suggestions based on successful past resolutions

How It Works

  • Text Similarity: Uses TF-IDF vectorization and cosine similarity (scikit-learn)
  • Service Detection: Automatically identifies affected services from incident text
  • Pattern Recognition: Finds common error types, resolution patterns, and time estimates
  • Fallback Mode: Works without ML libraries using keyword-based similarity
  • Solution Mining: Extracts actionable steps from resolution summaries

Data Requirements

For optimal results, ensure your Rootly incidents have descriptive:

  • Titles: Clear, specific incident descriptions
  • Summaries: Detailed resolution steps when closing incidents
  • Service Tags: Proper service identification

Example good resolution summary: "Restarted auth-service, cleared Redis cache, and increased connection pool from 10 to 50"

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

Developer Setup & Troubleshooting

Prerequisites

  • Python 3.12 or higher
  • uv for dependency management

1. Set Up Virtual Environment

Create and activate a virtual environment:

uv venv .venv
source .venv/bin/activate  # Always activate before running scripts

2. Install Dependencies

Install all project dependencies:

uv pip install .

To add new dependencies during development:

uv pip install <package>

3. Verify Installation

The server should now be ready to use with your MCP-compatible editor.

For developers: Additional testing tools are available in the tests/ directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rootly_mcp_server-2.0.12.tar.gz (6.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rootly_mcp_server-2.0.12-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file rootly_mcp_server-2.0.12.tar.gz.

File metadata

  • Download URL: rootly_mcp_server-2.0.12.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for rootly_mcp_server-2.0.12.tar.gz
Algorithm Hash digest
SHA256 ef250ab13b4fe79bdffdcfa92316935cd8b1e40f06a42bafe48167169e22cb09
MD5 745204860b733f95e94db4347f8816c6
BLAKE2b-256 988a4648592d8b3c3bf5bf17de87bea3e9115f761a50e934e7a90da482f3a8cf

See more details on using hashes here.

File details

Details for the file rootly_mcp_server-2.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for rootly_mcp_server-2.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 d1a8c5d140b0a6a3f7b01697d68074a85e0e151c4fffc7e1c4d7b7c13b2a9a6a
MD5 ef071ba786f6a3c8d35ff72c81749bba
BLAKE2b-256 640924673d61054b6b26fa083df414bbe11db0da354f6ee614a4ddfccd12cee8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page