Heartbeat — dead-man switch for cron jobs & AI agents

Dead-man switch monitors for cron & AI agents with dependency-cascade alerts. No account needed.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
92%
이름 품질
96%
오염 위험
60%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainping_heartbeat에서
  • MEDIUMTool description contains URL to non-standard domainrecord_failure에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~911토큰 (도구 정의)
~1.3 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.71%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "golemreach-heartbeat": {
      "url": "https://golemreach.com/heartbeat/mcp"
    }
  }
}

원격 엔드포인트

https://golemreach.com/heartbeat/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (5)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡create_heartbeat(name, period_s, grace_s, kind, target_url, ...)

Arm a new dead-man switch monitor. Returns the key plus a ping_url your job must hit after every run. No account needed. Names are globally unique on this instance and each name gets a PUBLIC status page; the secret key is the only credential — keep it.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "unique name, 1-40 chars [A-Za-z0-9_.-]"
    },
    "period_s": {
      "type": "integer",
      "description": "expected seconds between pings (60-86400)",
      "default": 300
    },
    "grace_s": {
      "type": "integer",
      "description": "extra seconds of slack before DOWN (0-86400)",
      "default": 300
    },
    "kind": {
      "type": "string",
      "enum": [
        "push",
        "pull",
        "selfcheck"
      ],
      "description": "push = you ping us; pull = we probe target_url every min(period_s,60)s; selfcheck = your box runs our egress-trust probe script and POSTs verdict reports to the ping URL",
      "default": "push"
    },
    "target_url": {
      "type": "string",
      "description": "public http(s) URL to probe (pull only)"
    },
    "webhook_url": {
      "type": "string",
      "description": "public http(s) URL that receives UP/DOWN alerts (optional)"
    },
    "depends_on": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "parent monitor names and/or gate:<gate-name> entries (max 5). When a parent is DOWN or a gate parent is HALT this monitor becomes DEGRADED-BY-UPSTREAM: notified once, own silence paging suppressed until the parent recovers."
    },
    "pass_key": {
      "type": "string",
      "description": "Pro pass key from a $5 USDC payment (optional; skips rate limits)"
    }
  },
  "required": [
    "name"
  ]
}
⚪ping_heartbeat(key, endpoints)

Record one successful run for a monitor (same as GETting https://golemreach.com/heartbeat/ping/<key>). Call this every time your job runs. For kind=selfcheck monitors pass an 'endpoints' array of {"name","status_code","cf_mitigated","tls_ms"} objects instead — alerts fire on trusted->challenged / recovery transitions only.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "monitor key returned by create_heartbeat"
    },
    "endpoints": {
      "type": "array",
      "description": "selfcheck monitors only: one object per probed surface, e.g. {\"name\":\"claude-session\",\"status_code\":200,\"cf_mitigated\":false,\"tls_ms\":230}",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "status_code": {
            "type": "integer"
          },
          "cf_mitigated": {
            "type": "boolean"
          },
          "tls_ms": {
            "type": "integer"
          },
          "verdict": {
            "type": "string",
            "enum": [
              "trusted",
              "rate_limited",
              "error",
              "challenged"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    }
  },
  "required": [
    "key"
  ]
}
🟢record_failure(key)

Explicitly mark a run as FAILED for a monitor (same as GET https://golemreach.com/heartbeat/fail/<key>). The monitor goes DOWN immediately and alerts fire.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    }
  },
  "required": [
    "key"
  ]
}
🟢list_heartbeats(key)

List monitors on this Heartbeat instance with current status (new/up/late/down). Names and statuses are public by design — every monitor has a public status page. Pass your secret key to also include that monitor's private ping/fail URLs in the result.

입력 스키마

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "optional monitor key; adds the private ping_url/fail_url for that one monitor"
    }
  }
}
🟢get_status(name, key)

Full current state of one monitor: status, 30-day uptime %, schedule, last ping, alert config, recent event history and its public URLs. Look up by name OR by your secret key; key lookups additionally return the private ping/fail URLs.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "monitor name (public lookup)"
    },
    "key": {
      "type": "string",
      "description": "monitor key (private lookup; also returns ping/fail URLs)"
    }
  }
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 5개