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コミュニティ
エビデンス