betterstack

Read monitors, incidents, heartbeats, on-call and status pages; acknowledge or resolve incidents.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
94%
Calidad de los nombres
96%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringen list_monitors

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,611Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto moderado en la atención (1.26% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "betterstack": {
      "url": "https://betterstack.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://betterstack.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (9)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_monitors(url, pronounceable_name, team_name, page, per_page)

List uptime monitors with their status (up/down/paused/pending/maintenance/validating), check frequency, and alert settings. Good first call to discover what is being monitored. Uptime API: GET /api/v2/monitors.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Filter monitors by their monitored URL.",
      "type": "string"
    },
    "pronounceable_name": {
      "description": "Filter monitors by their pronounceable name.",
      "type": "string"
    },
    "team_name": {
      "description": "Filter by team name (only when using a global API token).",
      "type": "string"
    },
    "page": {
      "description": "Page number for pagination (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_monitor(monitor_id)

Get a single monitor by id, including current status, last_checked_at, SSL/HTTP settings, regions, and alerting configuration. Uptime API: GET /api/v2/monitors/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "monitor_id": {
      "type": "string",
      "description": "The monitor id (from list_monitors)."
    }
  },
  "required": [
    "monitor_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_incidents(from, to, monitor_id, heartbeat_id, resolved, ...)

List incidents (alerts triggered by monitors/heartbeats), filterable by date range, monitor, and acknowledged/resolved state. Each incident carries cause, started_at, acknowledged_at, resolved_at. Uptime API: GET /api/v3/incidents.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Start date yyyy-mm-dd (inclusive).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "to": {
      "description": "End date yyyy-mm-dd (inclusive).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "monitor_id": {
      "description": "Only incidents for this monitor id.",
      "type": "string"
    },
    "heartbeat_id": {
      "description": "Only incidents for this heartbeat id.",
      "type": "string"
    },
    "resolved": {
      "description": "true = only resolved, false = only unresolved.",
      "type": "boolean"
    },
    "acknowledged": {
      "description": "true = only acknowledged, false = only unacknowledged.",
      "type": "boolean"
    },
    "team_name": {
      "description": "Filter by team name (only when using a global API token).",
      "type": "string"
    },
    "page": {
      "description": "Page number for pagination (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_incident(incident_id)

Get a single incident by id, including cause, status, timeline timestamps (started/acknowledged/resolved), who acknowledged/resolved it, and the related monitor. Uptime API: GET /api/v3/incidents/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "incident_id": {
      "type": "string",
      "description": "The incident id (from list_incidents)."
    }
  },
  "required": [
    "incident_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_heartbeats(team_name, page, per_page)

List heartbeats (cron/background-job monitors that expect a periodic ping), with period, grace, and status (up/down/paused/pending). Uptime API: GET /api/v2/heartbeats.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "team_name": {
      "description": "Filter by team name (only when using a global API token).",
      "type": "string"
    },
    "page": {
      "description": "Page number for pagination (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_on_call(team_name, page, per_page)

List on-call calendars/schedules and the users currently on call for escalation. Useful to see who gets paged. Uptime API: GET /api/v2/on-calls.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "team_name": {
      "description": "Filter by team name (only when using a global API token).",
      "type": "string"
    },
    "page": {
      "description": "Page number for pagination (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_status_pages(team_name, page, per_page)

List public/private status pages with company name, subdomain, aggregate_state, and published flag. Uptime API: GET /api/v2/status-pages.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "team_name": {
      "description": "Filter by team name (only when using a global API token).",
      "type": "string"
    },
    "page": {
      "description": "Page number for pagination (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "per_page": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡acknowledge_incident(incident_id, acknowledged_by)

Acknowledge an ongoing incident, signalling that someone is looking into it (stops further escalation). Idempotent-ish: acknowledging an already-acknowledged incident returns HTTP 409. Uptime API: POST /api/v3/incidents/{id}/acknowledge.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "incident_id": {
      "type": "string",
      "description": "The incident id to acknowledge (from list_incidents)."
    },
    "acknowledged_by": {
      "type": "string",
      "description": "User e-mail or a custom identifier of who is acknowledging the incident."
    }
  },
  "required": [
    "incident_id",
    "acknowledged_by"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡resolve_incident(incident_id, resolved_by)

Resolve an ongoing incident, marking it as handled/closed. Idempotent-ish: resolving an already-resolved incident returns HTTP 409. Uptime API: POST /api/v3/incidents/{id}/resolve.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "incident_id": {
      "type": "string",
      "description": "The incident id to resolve (from list_incidents)."
    },
    "resolved_by": {
      "type": "string",
      "description": "User e-mail or a custom identifier of who is resolving the incident."
    }
  },
  "required": [
    "incident_id",
    "resolved_by"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Prompts recomendados

retrieve_data
Get details about [item] from betterstack
Herramientas esperadas: get_monitor
fetch_info
Fetch [information type] using betterstack
Herramientas esperadas: get_monitor
list_items
List all [items] available in betterstack
Herramientas esperadas: list_monitors
browse_collection
Show me the [collection] from betterstack
Herramientas esperadas: list_monitors
explore_workflow
List available [items], then get details for each one using betterstack
Herramientas esperadas: list_monitorsget_monitor

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada9 herramientas