Crontinel MCP Server

Monitoreo de programación y colas de Laravel. Detecta fallos silenciosos de cron, colas y agentes antes que los usuarios.

Documentación

@crontinel/mcp-server

npm version Node.js License: MIT GitHub stars

Conecta asistentes de IA a la evidencia de monitoreo de Crontinel. Este paquete se ejecuta como un adaptador local stdio. La versión 0.3 añade claves MCP generadas y obtiene la lista de herramientas permitidas desde el servidor alojado.

Recomendado: OAuth remoto

Usa https://app.crontinel.com/mcp con un cliente MCP remoto. Inicia sesión en Crontinel, selecciona una organización y sus aplicaciones, y luego aprueba los permisos de lectura. No es necesario copiar ninguna clave. OAuth se ejecuta sobre HTTP, no stdio.

Las herramientas de lectura iniciales son get_connection, list_monitors, list_runs y list_incidents. Las listas requieren app_id y aceptan after_id y limit (máximo 100). Devuelven marcas de tiempo y metadatos acotados. No devuelven salida de trabajos, argumentos de comandos, credenciales ni herramientas de mutación.

La prueba de aceptación local de septiembre de 2026 ejecutó Codex 0.154.0 OAuth/CIMD más lecturas de conexión y ejecución; Claude Code 2.1.281 OAuth con pre-registro y salud de conexión; y Cursor CLI 2026.08.25-3e8eec8 OAuth con pre-registro y descubrimiento de herramientas. Estos son resultados de aceptación local, no una afirmación de que toda configuración alojada o de escritorio haya sido probada.

Conexión stdio con clave generada

Crea una clave en Configuración → Conexiones de IA → Usar una clave API en Conexiones de IA. Elige organización, aplicaciones, alcances de lectura y expiración. Guarda el secreto cuando se muestre; no se puede recuperar después.

Pásala al adaptador a través de CRONTINEL_MCP_KEY en el entorno o almacén de secretos de tu cliente. Inicia crontinel-mcp desde el paquete instalado. Para desarrollo, compila este checkout e inicia node dist/index.js.

  • CRONTINEL_MCP_KEY: clave ct_mcp_... generada. Tiene prioridad sobre la variable heredada.
  • CRONTINEL_API_URL: URL base opcional, por defecto https://app.crontinel.com. Las conexiones con alcance requieren HTTPS excepto para pruebas de loopback local.
  • El adaptador inicializa el servidor remoto y reenvía sus herramientas filtradas por alcance. Las claves con alcance inválidas o revocadas fallan; nunca recurren a la autenticación heredada.
  • La rotación y revocación están disponibles en Conexiones de IA. Los clientes en ejecución deben recibir el valor de entorno de reemplazo y reiniciarse después de la rotación.

La versión 0.3 debe publicarse antes de usarla a través de npx @crontinel/mcp-server@0.3.0. El arnés de aceptación del artefacto empaquetado está en el workspace en scripts/test-mcp-adapter.py.

Requisitos

  • Node.js 18+
  • Una cuenta de Crontinel y una clave MCP generada desde Conexiones de IA.

Instalación

npx -y @crontinel/mcp-server

O instala globalmente:

npm install -g @crontinel/mcp-server

Configuración heredada con clave de aplicación

Los ejemplos a continuación conservan la ruta CRONTINEL_API_KEY más antigua para instalaciones existentes. Esas claves de aplicación usan /api/mcp y los nombres de herramientas más antiguos. No son claves MCP con alcance. Cambiar a una clave generada modifica las herramientas anunciadas; migra los prompts a los nombres de herramientas de lectura anteriores. Una clave ct_mcp_ suministrada a través de la variable antigua también se reconoce como con alcance.

Claude Desktop

Añade a tu claude_desktop_config.json:

{
  "mcpServers": {
    "crontinel": {
      "command": "npx",
      "args": ["-y", "@crontinel/mcp-server"],
      "env": {
        "CRONTINEL_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code

Usa claude mcp add para la configuración actual de Claude Code. El JSON a continuación describe el proceso stdio heredado y el entorno; no es un archivo settings.json:

{
  "mcpServers": {
    "crontinel": {
      "command": "npx",
      "args": ["-y", "@crontinel/mcp-server"],
      "env": {
        "CRONTINEL_API_KEY": "your-api-key-here"
      }
    }
  }
}

Cursor

Añade a ~/.cursor/mcp.json o al .cursor/mcp.json a nivel de proyecto:

{
  "mcpServers": {
    "crontinel": {
      "command": "npx",
      "args": ["-y", "@crontinel/mcp-server"],
      "env": {
        "CRONTINEL_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windsurf

Añade a ~/.windsurf/settings.json:

{
  "mcpServers": {
    "crontinel": {
      "command": "npx",
      "args": ["-y", "@crontinel/mcp-server"],
      "env": {
        "CRONTINEL_API_KEY": "your-api-key-here"
      }
    }
  }
}

Continue.dev

Añade a ~/.continue/config.json:

{
  "experimental": {
    "mcpServers": {
      "crontinel": {
        "command": "npx",
        "args": ["-y", "@crontinel/mcp-server"],
        "env": {
          "CRONTINEL_API_KEY": "your-api-key-here"
        }
      }
    }
  }
}

Variables de entorno

VariableRequeridaPor defectoDescripción
CRONTINEL_API_KEYSín/aTu clave API de Crontinel
CRONTINEL_API_URLNohttps://app.crontinel.comSobrescribe la URL base de la API (autoalojado o desarrollo local)

Herramientas heredadas con clave de aplicación

HerramientaDescripción
list_scheduled_jobsLista todos los comandos cron monitoreados con el estado de la última ejecución
get_cron_statusDetalles de la última ejecución para un comando específico (código de salida, duración, salida)
get_queue_statusProfundidad, conteo de fallos y tiempo de espera para colas
get_horizon_statusInstantánea de salud del supervisor Horizon (estado, fallos/min)
list_recent_alertsAlertas disparadas en las últimas N horas
acknowledge_alertDescarta una alerta activa por su clave
create_alertCrea un nuevo canal de alerta (Slack, correo electrónico o webhook)

list_scheduled_jobs

Lista todos los trabajos cron monitoreados, con su estado y tiempo de la última ejecución.

Devuelve: Arreglo de objetos de trabajo con command, last_run_at, last_status, run_count_today.


get_cron_status

Obtiene el resultado de la última ejecución para un comando cron específico.

Parámetros:

NombreTipoRequeridoDescripción
commandstringSíLa cadena del comando cron o coincidencia parcial (p. ej. php artisan inspire o send-invoices)

Devuelve: command, status, exit_code, duration_ms, started_at, finished_at, output.


get_queue_status

Obtiene la profundidad de la cola, el conteo de fallos y la antigüedad del trabajo pendiente más antiguo.

Parámetros:

NombreTipoRequeridoDescripción
queuestringNoNombre específico de la cola; omítelo para todas las colas

Devuelve: Arreglo de objetos de cola con name, depth, failed, oldest_job_age_seconds.


get_horizon_status

Obtiene una instantánea de salud de Laravel Horizon: estados de supervisores, pausado/ejecutándose, trabajos fallidos por minuto.

Devuelve: status (running / paused / inactive), failed_jobs_per_minute, arreglo de supervisors.


list_recent_alerts

Lista las alertas que se han disparado dentro de las últimas N horas.

Parámetros:

NombreTipoRequeridoDescripción
hoursnumberNoVentana de retroceso en horas (por defecto: 24)

Devuelve: Arreglo de objetos de alerta con alert_key, state (firing / resolved), fired_at, resolved_at.


acknowledge_alert

Descarta una alerta activa para que deje de notificar.

Parámetros:

NombreTipoRequeridoDescripción
alert_keystringSíClave de la alerta (de list_recent_alerts)

Devuelve: { acknowledged: true, alert_key: "..." } en caso de éxito.


create_alert

Crea un nuevo canal de alerta para una aplicación. Requiere un plan Starter, Pro o Ultra.

Parámetros:

NombreTipoRequeridoDescripción
typestringSíslack, email o webhook
webhook_urlstringNoURL de webhook entrante de Slack (requerida para slack)
tostringNoDirección de correo electrónico del destinatario (requerida para email)
urlstringNoURL del endpoint del webhook (requerida para webhook)

Devuelve: { created: true, channel_id: "...", type: "..." } en caso de éxito.


Cómo funciona

  1. Tu asistente de IA inicia el servidor MCP como un proceso stdio local
  2. El servidor recibe llamadas de herramientas JSON-RPC a través de stdin
  3. Las claves con alcance se conectan a app.crontinel.com/mcp; las claves de aplicación heredadas usan app.crontinel.com/api/mcp. Ambas usan el encabezado Authorization.
  4. La respuesta JSON-RPC se devuelve a través de stdout

Las definiciones de herramientas con alcance provienen del servidor remoto autenticado. Las definiciones de herramientas heredadas permanecen declaradas localmente por compatibilidad.

Solución de problemas

401 Unauthorized: Verifica la expiración de la clave, la revocación y la membresía actual de la organización. Asegúrate de que el cliente realmente pase el entorno configurado a su subproceso. La herencia del entorno depende del cliente.

Recurso denegado: El app_id seleccionado debe pertenecer a la organización y selección de aplicaciones fijas en la concesión. Un cambio de organización en el panel no cambia la concesión.

Las herramientas no aparecen en Claude/Cursor: Reinicia el cliente de IA después de actualizar la configuración de MCP. La mayoría de los clientes solo cargan servidores MCP al inicio.

npx lento en la primera ejecución: npx -y descarga el paquete en el primer uso. Ejecuta npm install -g @crontinel/mcp-server una vez para almacenarlo en caché localmente, luego cambia command a crontinel-mcp y elimina el args.

Documentación

Para la guía de integración completa, referencia de herramientas y tutoriales de configuración:

Ecosistema

PaqueteDescripción
@crontinel/mcp-serverServidor MCP para asistentes de IA (este repositorio)
crontinel/laravelPaquete de Laravel que reporta los datos que este servidor lee
docs.crontinel.comDocumentación completa

Licencia

MIT