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.

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

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. As of now we only expose the /incidents and /incidents/{incident_id}/alerts.
  • 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 path available, edit the variable allowed_paths in src/rootly_mcp_server/server.py.

Disclaimer

This project is a prototype and not intended for production use. If you have featured ideas or spotted some issues, feel free to submit a PR or open an issue.

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.

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-1.0.0.tar.gz (6.2 MB view details)

Uploaded Source

Built Distribution

rootly_mcp_server-1.0.0-py3-none-any.whl (133.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rootly_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ae49122b8561ecb845a1f528319556c5484e8638327505e35776448980e29c63
MD5 1980bcee1ecb35bd9b5d527e96ab4ada
BLAKE2b-256 9f355a248d00355b0691e4af1e32312bb60770dac924d009d35c67df11a08a47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rootly_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdcf01b87dfb5609f3976b4e5ea084b7999a14c325165e1f45b21bcb2e03c645
MD5 c2b30978e8e7cf344b276568e1ebfa9c
BLAKE2b-256 f85a84bdde57a9a412b1e2b9a833d907448882076687e779603d1af93d781cff

See more details on using hashes here.

Supported by

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