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

mseep_rootly_mcp_server-1.0.1.tar.gz (6.2 MB view details)

Uploaded Source

Built Distribution

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

mseep_rootly_mcp_server-1.0.1-py3-none-any.whl (133.0 kB view details)

Uploaded Python 3

File details

Details for the file mseep_rootly_mcp_server-1.0.1.tar.gz.

File metadata

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

File hashes

Hashes for mseep_rootly_mcp_server-1.0.1.tar.gz
Algorithm Hash digest
SHA256 7a304736e22457e19f65798e3066c2f1ac8789c4a326eb485306c22669fc3e95
MD5 dbdb3a15448cfb0e71f1c363d0f709e7
BLAKE2b-256 17ee35bb3a9380a417a22cfd1029ab9802b280ddb172d7637f7f01b6b180e5c4

See more details on using hashes here.

File details

Details for the file mseep_rootly_mcp_server-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_rootly_mcp_server-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56e63487b5fb7b344287b4c1b1d5c63941b929ec9d184a15ceba8e66653f432d
MD5 43eadb3c85467fcbe36d28682eec9142
BLAKE2b-256 45a9b369bb95d832de6cad13349dbbfe2b6b7e67e94a635f026df1b5c45d5c93

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