Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
MCP server for Rootly — incidents, alerts, escalations, and post-incident reports.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
ROOTLY_API_TOKEN, MCP_TRANSPORT, AUTH_MODE, LOG_LEVELLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"rootly": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROOTLY_API_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/rootly-mcp:v1.2.4"
],
"env": {
"ROOTLY_API_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add rootly --env ROOTLY_API_TOKEN=your-value --env MCP_TRANSPORT=your-value --env AUTH_MODE=your-value --env LOG_LEVEL=your-value -- docker run -i --rm -e ROOTLY_API_TOKEN -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/rootly-mcp:v1.2.4Completa los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"rootly": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROOTLY_API_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/rootly-mcp:v1.2.4"
],
"env": {
"ROOTLY_API_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"rootly": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROOTLY_API_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/rootly-mcp:v1.2.4"
],
"env": {
"ROOTLY_API_TOKEN": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MCP_TRANSPORT envAUTH_MODE envLOG_LEVEL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub wyre-technology, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: ROOTLY_API_TOKEN
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.2.4) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Docker en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Tool Guardian
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Too many MCP servers eating your context? A router that loads each tool's schema only when needed.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
MCP server for the Rootly incident management platform.
Built by WYRE Technology — part of the wyre-projects MCP server collection.
Uses decision-tree navigation: start with rootly_navigate to select a domain, then use that domain's tools. Call rootly_back to return.
| Tool | Description |
|---|---|
rootly_navigate | Navigate to a domain: incidents, alerts, schedules, org |
rootly_status | Check connection status and available domains |
rootly_back | Return to the navigation menu |
| Tool | Description |
|---|---|
rootly_incidents_list | List incidents with optional status/severity filters |
rootly_incidents_get | Get a single incident by ID |
rootly_incidents_create | Create a new incident |
rootly_incidents_update | Update title, summary, status, or severity |
rootly_incidents_resolve | Resolve an incident |
| Tool | Description |
|---|---|
rootly_alerts_list | List alerts with optional status filter |
rootly_alerts_acknowledge | Acknowledge an alert |
rootly_alerts_resolve | Resolve an alert |
rootly_alerts_create | Create a new alert |
rootly_alerts_update | Update alert status or summary |
| Tool | Description |
|---|---|
rootly_schedules_list | List on-call schedules |
rootly_schedules_get | Get a single on-call schedule |
| Tool | Description |
|---|---|
rootly_org_list_teams | List teams |
rootly_org_list_severities | List severity levels |
rootly_org_current_user | Get current authenticated user |
rootly_incidents_get renders as an interactive read-only card in MCP Apps hosts (Claude Desktop/web) showing status, severity, services, environments, teams, and a lifecycle timeline; plain-JSON behavior is unchanged in other hosts. The card is neutral by default and brandable via window.__BRAND__ injection or MCP_BRAND_* env vars (MCP_BRAND_NAME, MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG, MCP_BRAND_TEXT) — no rebuild needed. Rebuild the card bundle itself with npm run build:ui (only needed when ui/ changes; the embedded output is committed).
cd rootly-mcp
npm install npm run build
export ROOTLY_API_TOKEN=rootly_xxxxxxxxxxxxxxxx
Get your token from Rootly → Profile → API Tokens.
ROOTLY_API_TOKEN=your_token node dist/index.js
CONDUIT_S2S_SECRET is required. If it is empty or a known placeholder (changeme, change-me, secret, example, placeholder, replace-me, your-secret, your-s2s-secret, s2s-secret, replace-with-a-real-secret), the HTTP server logs an error and exits non-zero. It never prints the secret.
# Refuses to start until CONDUIT_S2S_SECRET is set. With a secret and no
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \ ROOTLY_API_TOKEN=your_token \ MCP_HTTP_HOST=127.0.0.1 \ npm run start:http
MCP_ALLOW_INSECURE_DEV=1 npm run start:http
/health stays unauthenticated, does not require X-Gateway-S2S, and does not return the API token. The stdio transport does not use CONDUIT_S2S_SECRET.
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass the S2S secret. In gateway mode the Rootly token arrives on each request as X-Rootly-Api-Token; it is not read from the environment.
docker build -t rootly-mcp .
docker run \ -e CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" \ -p 127.0.0.1:8080:8080 \ rootly-mcp
Do not pass a known placeholder such as your-s2s-secret or changeme. Startup treats those as unset and exits. Compose refuses to start when CONDUIT_S2S_SECRET is unset, sets AUTH_MODE=gateway, does not pass ROOTLY_API_TOKEN, and publishes 127.0.0.1:8080:8080. A project .env is interpolation only — do not add env_file to the gateway service.
CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" docker compose up
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses ROOTLY_API_TOKEN:
docker run \
-e CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" \ -e AUTH_MODE=env \ -e ROOTLY_API_TOKEN=your_token \ -e MCP_HTTP_HOST=0.0.0.0 \ -p 127.0.0.1:8080:8080 \ rootly-mcp
Copy .env.example and set the variables below.
| Variable | Required | Description |
|---|---|---|
ROOTLY_API_TOKEN | For stdio and AUTH_MODE=env | Rootly API token (Bearer). Gateway mode does not read this. |
MCP_TRANSPORT | No | stdio (default) or http |
AUTH_MODE | No | gateway (Docker image and Compose default) or env. Gateway mode requires X-Rootly-Api-Token on each /mcp request and never falls back to ROOTLY_API_TOKEN. env uses that variable after S2S auth succeeds. |
CONDUIT_S2S_SECRET | Yes for HTTP | Service-to-service secret. The HTTP server logs an error and exits non-zero when this is empty or a known placeholder. Compose will not start without it. Never commit a real value. |
MCP_ALLOW_INSECURE_DEV | No | Set to exactly 1 only for local development to start HTTP without CONDUIT_S2S_SECRET. The process logs a warning, does not enforce X-Gateway-S2S, and binds 127.0.0.1 only. A non-loopback MCP_HTTP_HOST is overridden and logged. A placeholder secret still refuses to start. |
MCP_HTTP_HOST | No | Bind address when a secret is configured. Unset means 0.0.0.0. The container image sets 0.0.0.0. Ignored in favor of 127.0.0.1 when the insecure-dev bypass is on. |
MCP_HTTP_PORT | No | HTTP port. Defaults to 8080. |
LOG_LEVEL | No | debug, info, warn, or error. Defaults to info. |
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S. The value is t= ,v1= . The hex digest is HMAC-SHA256 over the exact ASCII string t= (the same prefix that appears in the header), keyed with CONDUIT_S2S_SECRET, encoded as 64 lowercase hex characters. The timestamp must be within 300 seconds of the server clock. A missing or invalid header returns 401. The secret is never written to logs or the response.
X-Gateway-S2S: t=1710000000,v1=<64 lowercase hex chars>
In AUTH_MODE=gateway, /mcp also requires X-Rootly-Api-Token. That header is the only Rootly credential for the request. A request without it returns 401 and does not fall back to ROOTLY_API_TOKEN.
curl -sS http://127.0.0.1:8080/mcp \
-H 'content-type: application/json' \ -H 'accept: application/json, text/event-stream' \ -H "x-gateway-s2s: $X_GATEWAY_S2S" \ -H "x-rootly-api-token: $ROOTLY_API_TOKEN" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"rootly_status","arguments":{}}}'
{
"rootly": { "command": "node", "args": ["/path/to/rootly-mcp/dist/index.js"], "env": { "ROOTLY_API_TOKEN": "rootly_xxxxxxxxxxxxxxxx" } } }
Then: mcporter call rootly.rootly_navigate --domain alerts
Download the .mcpb bundle from Releases and install it in Claude Desktop.
Or manually add to claude_desktop_config.json:
{
"mcpServers": { "rootly": { "command": "node", "args": ["/path/to/rootly-mcp/dist/index.js"], "env": { "ROOTLY_API_TOKEN": "your_token" } } } }
Rootly enforces 3 write operations per 60 seconds. The server tracks this in-process and returns a descriptive error with retry-after time if exceeded.
https://api.rootly.com/v1Authorization: Bearer application/vnd.api+jsonnpm run dev # watch mode
npm run lint # TypeScript type-check npm run test # run tests
Apache-2.0 © WYRE Technology