Skip to main content

A Model Context Protocol server for Rootly APIs using OpenAPI spec

Project description

Rootly MCP Server

An MCP server for Rootly API that you can plug into your favorite 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

Run it in your IDE

Install with our PyPi package or by cloning this repo.

To set it up in your favorite MCP-compatible editor (we tested it with Cursor and Windsurf), here is the config :

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

If you want to customize allowed_paths to access more Rootly API paths, clone the package and use this config.

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

Features

This server dynamically generates MCP resources based on Rootly's OpenAPI (Swagger) specification:

  • Dynamically generated MCP tools based on Rootly's OpenAPI specification
  • Default pagination (10 items) for incident endpoints to prevent context window overflow
  • Limits the number of API paths exposed to the AI agent

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}

We limited the number of API paths exposed for 2 reasons:

  • Context size: because Rootly's API is very rich in paths, AI agents can get overwhelmed and not perform simple actions properly.
  • Security: if you want to limit the type of information or actions that users can access through the MCP server

If you want to make more paths available, edit the variable allowed_paths in src/rootly_mcp_server/server.py.

About the Rootly AI Labs

This project was developed by the Rootly AI Labs. The AI Labs is building the future of system reliability and operational excellence. We operate as an open-source incubator, sharing ideas, experimenting, and rapidly prototyping. We're committed to ensuring our research benefits the entire community. Rootly AI logo

Developer Setup & Troubleshooting

1. Install dependencies with uv

This project uses uv for fast dependency management. To install all dependencies from your pyproject.toml:

uv pip install .

2. Using a virtual environment

It is recommended to use a virtual environment for development:

uv venv .venv
source .venv/bin/activate

3. Running the test client

To run the test client and verify your setup:

python test_mcp_client.py

5. General tips

  • Always activate your virtual environment before running scripts.
  • If you add new dependencies, use uv pip install <package> to keep your environment up to date.
  • If you encounter issues, check your Python version and ensure it matches the project's requirements.

6. Connecting to Our MCP Server

You can configure your client to 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>"
      }
    }
  }
}

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.0.tar.gz (6.0 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.0-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rootly_mcp_server-2.0.0.tar.gz
  • Upload date:
  • Size: 6.0 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.0.tar.gz
Algorithm Hash digest
SHA256 52fb61dec04b2f2a80b6436ea3f008c89b74556215af53a0a8c8a1e99b3fd5a0
MD5 4cdd469445c79c798373bf5b96ea4ade
BLAKE2b-256 e3b66bd659a1637bdef822cab884b8dd2920a4156fdbca076c155f2c84f8fc3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rootly_mcp_server-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b374483f380ccc968cd4a92124c50dd16fd135b5026014d841c915cb35907d62
MD5 55054d78f3255d9d44eeb1945e588903
BLAKE2b-256 827523513c57b3f30c7cee09f16b740ef7b152e49c6f5c6cbfa23ee3a7878810

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