{
  "markdown": "# rootly-mcp\n\nMCP server for the [Rootly](https://rootly.com) incident management platform.\n\nBuilt by WYRE Technology — part of the wyre-projects MCP server collection.\n\nUses **decision-tree navigation**: start with `rootly_navigate` to select a domain, then use that domain's tools. Call `rootly_back` to return.\n\n## Domains & Tools\n\n### Navigation (always available)\n| Tool | Description |\n|------|-------------|\n| `rootly_navigate` | Navigate to a domain: `incidents`, `alerts`, `schedules`, `org` |\n| `rootly_status` | Check connection status and available domains |\n| `rootly_back` | Return to the navigation menu |\n\n### Domain: incidents\n| Tool | Description |\n|------|-------------|\n| `rootly_incidents_list` | List incidents with optional status/severity filters |\n| `rootly_incidents_get` | Get a single incident by ID |\n| `rootly_incidents_create` | Create a new incident |\n| `rootly_incidents_update` | Update title, summary, status, or severity |\n| `rootly_incidents_resolve` | Resolve an incident |\n\n### Domain: alerts\n| Tool | Description |\n|------|-------------|\n| `rootly_alerts_list` | List alerts with optional status filter |\n| `rootly_alerts_acknowledge` | Acknowledge an alert |\n| `rootly_alerts_resolve` | Resolve an alert |\n| `rootly_alerts_create` | Create a new alert |\n| `rootly_alerts_update` | Update alert status or summary |\n\n### Domain: schedules\n| Tool | Description |\n|------|-------------|\n| `rootly_schedules_list` | List on-call schedules |\n| `rootly_schedules_get` | Get a single on-call schedule |\n\n### Domain: org\n| Tool | Description |\n|------|-------------|\n| `rootly_org_list_teams` | List teams |\n| `rootly_org_list_severities` | List severity levels |\n| `rootly_org_current_user` | Get current authenticated user |\n\n## Interactive Incident Card (MCP Apps)\n\n`rootly_incidents_get` renders as an interactive read-only card in MCP Apps\nhosts (Claude Desktop/web) showing status, severity, services, environments,\nteams, and a lifecycle timeline; plain-JSON behavior is unchanged in other\nhosts. The card is neutral by default and brandable via `window.__BRAND__`\ninjection or `MCP_BRAND_*` env vars (`MCP_BRAND_NAME`, `MCP_BRAND_LOGO_URL`,\n`MCP_BRAND_PRIMARY_COLOR`, `MCP_BRAND_ACCENT_COLOR`, `MCP_BRAND_BG`,\n`MCP_BRAND_TEXT`) — no rebuild needed. Rebuild the card bundle itself with\n`npm run build:ui` (only needed when `ui/` changes; the embedded output is\ncommitted).\n\n## Setup\n\n### 1. Install & build\n\n```bash\ncd rootly-mcp\nnpm install\nnpm run build\n```\n\n### 2. Set your API token\n\n```bash\nexport ROOTLY_API_TOKEN=rootly_xxxxxxxxxxxxxxxx\n```\n\nGet your token from **Rootly → Profile → API Tokens**.\n\n### 3. Run (stdio — for mcporter/Claude Desktop)\n\n```bash\nROOTLY_API_TOKEN=your_token node dist/index.js\n```\n\n### 4. Run (HTTP streaming transport)\n\n```bash\nROOTLY_API_TOKEN=your_token MCP_TRANSPORT=http node dist/http.js\n# Listens on :8080 — /mcp for MCP, /health for health check\n```\n\n### 5. Run with Docker\n\n```bash\ndocker compose up\n# or\ndocker run -e ROOTLY_API_TOKEN=your_token ghcr.io/wyre-ai/rootly-mcp:latest\n```\n\n## mcporter Configuration\n\n```json\n{\n  \"rootly\": {\n    \"command\": \"node\",\n    \"args\": [\"/path/to/rootly-mcp/dist/index.js\"],\n    \"env\": {\n      \"ROOTLY_API_TOKEN\": \"rootly_xxxxxxxxxxxxxxxx\"\n    }\n  }\n}\n```\n\nThen: `mcporter call rootly.rootly_navigate --domain alerts`\n\n## Claude Desktop (MCPB)\n\nDownload the `.mcpb` bundle from [Releases](https://github.com/WYRE-AI/rootly-mcp/releases) and install it in Claude Desktop.\n\nOr manually add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"rootly\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/rootly-mcp/dist/index.js\"],\n      \"env\": { \"ROOTLY_API_TOKEN\": \"your_token\" }\n    }\n  }\n}\n```\n\n## Rate Limiting\n\nRootly enforces **3 write operations per 60 seconds**. The server tracks this in-process and returns a descriptive error with retry-after time if exceeded.\n\n## API Reference\n\n- Rootly API docs: <https://docs.rootly.com/api-reference>\n- API base URL: `https://api.rootly.com/v1`\n- Auth: `Authorization: Bearer <token>`\n- Write content-type: `application/vnd.api+json`\n\n## Development\n\n```bash\nnpm run dev        # watch mode\nnpm run lint       # TypeScript type-check\nnpm run test       # run tests\n```\n\n## License\n\nApache-2.0 © WYRE Technology\n",
  "bytes": 4290,
  "sha": "5f5a19d21f13d050c4081669d458cc9d8bd48a4e9252b71a4b2cc3bbdc90a295",
  "repo_slug": "wyre-ai/rootly-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_wyre_ai_rootly_mcp_68e77cff/readme"
}