betterstack
Read monitors, incidents, heartbeats, on-call and status pages; acknowledge or resolve incidents.
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- HIGH
- MEDIUMlist_monitors에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"betterstack": {
"url": "https://betterstack.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://betterstack.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (9)
🟢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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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}.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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#"
}권장 프롬프트
get_monitorget_monitorlist_monitorslist_monitorslist_monitorsget_monitor커뮤니티
증거