Name | rootly-mcp-server JSON |
Version |
2.0.5
JSON |
| download |
home_page | None |
Summary | A Model Context Protocol server for Rootly APIs using OpenAPI spec |
upload_time | 2025-07-14 07:44:25 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | None |
keywords |
automation
incidents
llm
mcp
rootly
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Rootly MCP Server
An MCP server for the [Rootly API](https://docs.rootly.com/api-reference/overview) that integrates seamlessly with MCP-compatible editors like Cursor, Windsurf, and Claude. Resolve production incidents in under a minute without leaving your IDE.
[](https://cursor.com/install-mcp?name=rootly&config=eyJjb21tYW5kIjoibnB4IC15IG1jcC1yZW1vdGUgaHR0cHM6Ly9tY3Aucm9vdGx5LmNvbS9zc2UgLS1oZWFkZXIgQXV0aG9yaXphdGlvbjoke1JPT1RMWV9BVVRIX0hFQURFUn0iLCJlbnYiOnsiUk9PVExZX0FVVEhfSEVBREVSIjoiQmVhcmVyIDxZT1VSX1JPT1RMWV9BUElfVE9LRU4%2BIn19)

## Prerequisites
- Python 3.12 or higher
- `uv` package manager
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
- [Rootly API token](https://docs.rootly.com/api-reference/overview#how-to-generate-an-api-key%3F)
## Installation
Install via our [PyPi package](https://pypi.org/project/rootly-mcp-server/) or by cloning this repository.
Configure your MCP-compatible editor (tested with Cursor and Windsurf) with the following:
### With uv
```json
{
"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
```json
{
"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:
```json
{
"mcpServers": {
"rootly": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/rootly-mcp-server",
"rootly-mcp-server"
],
"env": {
"ROOTLY_API_TOKEN": "<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:
1. **Context Management**: Rootly's comprehensive API can overwhelm AI agents, affecting their ability to perform simple tasks effectively
2. **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](https://labs.rootly.ai/), 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
- [`uv`](https://github.com/astral-sh/uv) for dependency management
### 1. Set Up Virtual Environment
Create and activate a virtual environment:
```bash
uv venv .venv
source .venv/bin/activate # Always activate before running scripts
```
### 2. Install Dependencies
Install all project dependencies:
```bash
uv pip install .
```
To add new dependencies during development:
```bash
uv pip install <package>
```
### 3. Verify Installation
Run the test client to ensure everything is configured correctly:
```bash
python test_mcp_client.py
```
### Connect to Hosted MCP Server
Alternatively, connect directly to our hosted MCP server:
```json
{
"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>"
}
}
}
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "rootly-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "automation, incidents, llm, mcp, rootly",
"author": null,
"author_email": "Rootly AI Labs <support@rootly.com>",
"download_url": "https://files.pythonhosted.org/packages/50/69/940477fb3ba639f81e9bb3a5cb149d8677d88120846973bb2d90e23c681b/rootly_mcp_server-2.0.5.tar.gz",
"platform": null,
"description": "# Rootly MCP Server\n\nAn MCP server for the [Rootly API](https://docs.rootly.com/api-reference/overview) that integrates seamlessly with MCP-compatible editors like Cursor, Windsurf, and Claude. Resolve production incidents in under a minute without leaving your IDE.\n\n[](https://cursor.com/install-mcp?name=rootly&config=eyJjb21tYW5kIjoibnB4IC15IG1jcC1yZW1vdGUgaHR0cHM6Ly9tY3Aucm9vdGx5LmNvbS9zc2UgLS1oZWFkZXIgQXV0aG9yaXphdGlvbjoke1JPT1RMWV9BVVRIX0hFQURFUn0iLCJlbnYiOnsiUk9PVExZX0FVVEhfSEVBREVSIjoiQmVhcmVyIDxZT1VSX1JPT1RMWV9BUElfVE9LRU4%2BIn19)\n\n\n\n## Prerequisites\n\n- Python 3.12 or higher\n- `uv` package manager\n ```bash\n curl -LsSf https://astral.sh/uv/install.sh | sh\n ```\n- [Rootly API token](https://docs.rootly.com/api-reference/overview#how-to-generate-an-api-key%3F)\n\n## Installation\n\nInstall via our [PyPi package](https://pypi.org/project/rootly-mcp-server/) or by cloning this repository.\n\nConfigure your MCP-compatible editor (tested with Cursor and Windsurf) with the following:\n\n### With uv\n\n```json\n{\n \"mcpServers\": {\n \"rootly\": {\n \"command\": \"uv\",\n \"args\": [\n \"tool\",\n \"run\",\n \"--from\",\n \"rootly-mcp-server\",\n \"rootly-mcp-server\",\n ], \n \"env\": {\n \"ROOTLY_API_TOKEN\": \"<YOUR_ROOTLY_API_TOKEN>\"\n }\n }\n }\n}\n```\n\n### With uv-tool-uvx\n\n```json\n{\n \"mcpServers\": {\n \"rootly\": {\n \"command\": \"uvx\",\n \"args\": [\n \"--from\",\n \"rootly-mcp-server\",\n \"rootly-mcp-server\",\n ], \n \"env\": {\n \"ROOTLY_API_TOKEN\": \"<YOUR_ROOTLY_API_TOKEN>\"\n }\n }\n }\n}\n```\n\nTo customize `allowed_paths` and access additional Rootly API paths, clone the repository and use this configuration:\n\n```json\n{\n \"mcpServers\": {\n \"rootly\": {\n \"command\": \"uv\",\n \"args\": [\n \"run\",\n \"--directory\",\n \"/path/to/rootly-mcp-server\",\n \"rootly-mcp-server\"\n ],\n \"env\": {\n \"ROOTLY_API_TOKEN\": \"<YOUR_ROOTLY_API_TOKEN>\"\n }\n }\n }\n}\n```\n\n## Features\n\n- **Dynamic Tool Generation**: Automatically creates MCP resources from Rootly's OpenAPI (Swagger) specification\n- **Smart Pagination**: Defaults to 10 items per request for incident endpoints to prevent context window overflow\n- **API Filtering**: Limits exposed API endpoints for security and performance\n\n### Whitelisted Endpoints\n\nBy default, the following Rootly API endpoints are exposed to the AI agent (see `allowed_paths` in `src/rootly_mcp_server/server.py`):\n\n```\n/v1/incidents\n/v1/incidents/{incident_id}/alerts\n/v1/alerts\n/v1/alerts/{alert_id}\n/v1/severities\n/v1/severities/{severity_id}\n/v1/teams\n/v1/teams/{team_id}\n/v1/services\n/v1/services/{service_id}\n/v1/functionalities\n/v1/functionalities/{functionality_id}\n/v1/incident_types\n/v1/incident_types/{incident_type_id}\n/v1/incident_action_items\n/v1/incident_action_items/{incident_action_item_id}\n/v1/incidents/{incident_id}/action_items\n/v1/workflows\n/v1/workflows/{workflow_id}\n/v1/workflow_runs\n/v1/workflow_runs/{workflow_run_id}\n/v1/environments\n/v1/environments/{environment_id}\n/v1/users\n/v1/users/{user_id}\n/v1/users/me\n/v1/status_pages\n/v1/status_pages/{status_page_id}\n```\n\n### Why Path Limiting?\n\nWe limit exposed API paths for two key reasons:\n\n1. **Context Management**: Rootly's comprehensive API can overwhelm AI agents, affecting their ability to perform simple tasks effectively\n2. **Security**: Control which information and actions are accessible through the MCP server\n\nTo expose additional paths, modify the `allowed_paths` variable in `src/rootly_mcp_server/server.py`.\n\n## About Rootly AI Labs\n\nThis project was developed by [Rootly AI Labs](https://labs.rootly.ai/), 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.\n\n\n## Developer Setup & Troubleshooting\n\n### Prerequisites\n- Python 3.12 or higher\n- [`uv`](https://github.com/astral-sh/uv) for dependency management\n\n### 1. Set Up Virtual Environment\n\nCreate and activate a virtual environment:\n\n```bash\nuv venv .venv\nsource .venv/bin/activate # Always activate before running scripts\n```\n\n### 2. Install Dependencies\n\nInstall all project dependencies:\n\n```bash\nuv pip install .\n```\n\nTo add new dependencies during development:\n```bash\nuv pip install <package>\n```\n\n### 3. Verify Installation\n\nRun the test client to ensure everything is configured correctly:\n\n```bash\npython test_mcp_client.py\n```\n\n### Connect to Hosted MCP Server\n\nAlternatively, connect directly to our hosted MCP server:\n\n```json\n{\n \"mcpServers\": {\n \"rootly\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"mcp-remote\",\n \"https://mcp.rootly.com/sse\",\n \"--header\",\n \"Authorization:${ROOTLY_AUTH_HEADER}\"\n ],\n \"env\": {\n \"ROOTLY_AUTH_HEADER\": \"Bearer <YOUR_ROOTLY_API_TOKEN>\"\n }\n }\n }\n}\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A Model Context Protocol server for Rootly APIs using OpenAPI spec",
"version": "2.0.5",
"project_urls": {
"Homepage": "https://github.com/Rootly-AI-Labs/Rootly-MCP-server",
"Issues": "https://github.com/Rootly-AI-Labs/Rootly-MCP-server/issues"
},
"split_keywords": [
"automation",
" incidents",
" llm",
" mcp",
" rootly"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d00c36093376cb7871a12ba82d9ed36129d3a8ba2e0fe724e25e88f36afe93ef",
"md5": "98d180032e77a879ec0745225bd8c3a3",
"sha256": "05b8720eb03b8209608169b44cd824e08f3d51c1ca1f7d42cbdd2c71022ce9b6"
},
"downloads": -1,
"filename": "rootly_mcp_server-2.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "98d180032e77a879ec0745225bd8c3a3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 22877,
"upload_time": "2025-07-14T07:44:23",
"upload_time_iso_8601": "2025-07-14T07:44:23.326082Z",
"url": "https://files.pythonhosted.org/packages/d0/0c/36093376cb7871a12ba82d9ed36129d3a8ba2e0fe724e25e88f36afe93ef/rootly_mcp_server-2.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5069940477fb3ba639f81e9bb3a5cb149d8677d88120846973bb2d90e23c681b",
"md5": "be037f8cb5cfefb0aeaebc4ce0a64b42",
"sha256": "c7f75635ee089297b2c772f785759973ca03f1cda1d08cd94ada108c0ec13013"
},
"downloads": -1,
"filename": "rootly_mcp_server-2.0.5.tar.gz",
"has_sig": false,
"md5_digest": "be037f8cb5cfefb0aeaebc4ce0a64b42",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 6030743,
"upload_time": "2025-07-14T07:44:25",
"upload_time_iso_8601": "2025-07-14T07:44:25.150291Z",
"url": "https://files.pythonhosted.org/packages/50/69/940477fb3ba639f81e9bb3a5cb149d8677d88120846973bb2d90e23c681b/rootly_mcp_server-2.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 07:44:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Rootly-AI-Labs",
"github_project": "Rootly-MCP-server",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rootly-mcp-server"
}