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.
Prerequisites
- Python 3.12 or higher
uvpackage managercurl -LsSf https://astral.sh/uv/install.sh | sh
- Rootly API token
Installation
Install via our PyPi package or by cloning this repository.
Configure your MCP-compatible editor (tested with Cursor and Windsurf) with the following:
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 uv-tool-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
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:
- Context Management: Rootly's comprehensive API can overwhelm AI agents, affecting their ability to perform simple tasks effectively
- Security: Control 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.
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.
Developer Setup & Troubleshooting
Prerequisites
- Python 3.12 or higher
uvfor 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
Run the test client to ensure everything is configured correctly:
python src/rootly_mcp_server/test_client.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rootly_mcp_server-2.0.8.tar.gz.
File metadata
- Download URL: rootly_mcp_server-2.0.8.tar.gz
- Upload date:
- Size: 6.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ad69b3d5f15c427c26c10b0676651bacf9ac46375c78ab94f392979ac83b7e0
|
|
| MD5 |
5fb994819618a952322395c28a85afbd
|
|
| BLAKE2b-256 |
031cad3be24e74f6d35890d2833b21e19f3beff5506e4b75ca9debb5f2ead064
|
File details
Details for the file rootly_mcp_server-2.0.8-py3-none-any.whl.
File metadata
- Download URL: rootly_mcp_server-2.0.8-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee72cf17a7b591c85e3491e435a209f99932824c539819b068bc4ce81910dc96
|
|
| MD5 |
a14ee9d613a389045c1134dd51f330d7
|
|
| BLAKE2b-256 |
932a1027eb4d4a57278d9fc6503d2279c04657cba29acdc68b8eabfb7885bfe8
|