agent-health
Free owned-agent uptime monitoring, DNS domain proof, signed alerts and opt-in endpoint checks.
사용해야 할까요
품질 및 안전성
발견 사항 (3)
- HIGH
- MEDIUMevidence_signing_keys에서
- LOWattach_agent_endpoint에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"agent-health": {
"url": "https://autonet.work/mcp"
}
}
}원격 엔드포인트
https://autonet.work/mcpstreamable-http할 수 있는 일
도구 목록
도구 (33)
🟢agent_presence_history(agent_id)
Read 30-day completed heartbeat windows, daily counts, gaps and streaks. Public, self-reported receipt evidence, not uptime. Incomplete windows excluded; registration-anchored windows have no grace. Shares 60 reads/IP/minute with presence badges and signed evidence. Heartbeat mode only.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
}
},
"required": [
"agent_id"
],
"title": "agent_presence_historyArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_presence_historyOutput"
}🟢agent_signed_evidence(agent_id)
Get a five-minute Ed25519 signed presence observation. Verify compact JWS against Autonet's trusted key endpoint, issuer, audience, subject and expiry. Signature proves origin/integrity only; inspect evidence state and receipt age. Not an identity, reachability or safety certificate.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
}
},
"required": [
"agent_id"
],
"title": "agent_signed_evidenceArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_signed_evidenceOutput"
}🟢evidence_signing_keys
Read Autonet's public Ed25519 verification keys (JWKS), including retired verification keys. Keys are public; signing secrets are never returned. Pin issuer https://autonet.work.
입력 스키마
{
"type": "object",
"properties": {},
"title": "evidence_signing_keysArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "evidence_signing_keysOutput"
}🟡subscribe_liveness(agent_ids)
Opt in to a seven-day pull feed for 1–20 existing heartbeat agents. No endpoint or registration required. Save subscription_key and cursor from the response; key is returned only once. Initial snapshot is self-reported heartbeat activity, not verified reachability. 10 creation attempts/IP/day. No push delivery.
입력 스키마
{
"type": "object",
"properties": {
"agent_ids": {
"items": {
"type": "string"
},
"title": "Agent Ids",
"type": "array"
}
},
"required": [
"agent_ids"
],
"title": "subscribe_livenessArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "subscribe_livenessOutput"
}🟢read_liveness_events(subscription_id, subscription_key, after)
Read heartbeat transitions after the saved cursor. Persist next_cursor after processing; retries can replay. Poll every 30 seconds, drain pages when has_more, deduplicate event IDs. Key is subscription-specific. Seven-day expiry requires a fresh subscription/snapshot. deleted and monitoring_changed are terminal events for that target. 30 reads/subscription/minute. Evidence is self-reported, not service uptime.
입력 스키마
{
"type": "object",
"properties": {
"subscription_id": {
"title": "Subscription Id",
"type": "string"
},
"subscription_key": {
"title": "Subscription Key",
"type": "string"
},
"after": {
"title": "After",
"type": "integer"
}
},
"required": [
"subscription_id",
"subscription_key",
"after"
],
"title": "read_liveness_eventsArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "read_liveness_eventsOutput"
}🔴delete_liveness_subscription(subscription_id, subscription_key)
Revoke your pull subscription and its key immediately. Does not delete monitored agents.
입력 스키마
{
"type": "object",
"properties": {
"subscription_id": {
"title": "Subscription Id",
"type": "string"
},
"subscription_key": {
"title": "Subscription Key",
"type": "string"
}
},
"required": [
"subscription_id",
"subscription_key"
],
"title": "delete_liveness_subscriptionArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_liveness_subscriptionOutput"
}🟢diagnose_http(url)
Diagnose one public HTTP(S) URL without registration: DNS, TCP, verified TLS and HTTP HEAD. Only ports 80/443, no credentials/query strings/fragments. Does not follow redirects or fetch bodies. Returns cause, evidence and suggested_action. 10 attempts per IP per 24h; honor Retry-After. One server vantage and one selected address, not browser compatibility or application health proof.
입력 스키마
{
"type": "object",
"properties": {
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "diagnose_httpArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "diagnose_httpOutput"
}🟡send_heartbeat(agent_id, api_key, status, note, version)
Send a self-reported heartbeat from the actual worker. Owner key required; note/version are public. Honor Retry-After. Dormant workers revive on receipt. This does not prove service uptime.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"status": {
"default": "ok",
"title": "Status",
"type": "string"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Version"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "send_heartbeatArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "send_heartbeatOutput"
}🟢get_agent_status(agent_id)
Read public registry status, evidence mode and heartbeat receipt regularity.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
}
},
"required": [
"agent_id"
],
"title": "get_agent_statusArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_agent_statusOutput"
}⚪attach_agent_endpoint(agent_id, api_key, endpoint_url, check_interval_sec)
Graduate an owned heartbeat registration to public endpoint probing, preserving id and history.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"endpoint_url": {
"title": "Endpoint Url",
"type": "string"
},
"check_interval_sec": {
"default": 60,
"title": "Check Interval Sec",
"type": "integer"
}
},
"required": [
"agent_id",
"api_key",
"endpoint_url"
],
"title": "attach_agent_endpointArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "attach_agent_endpointOutput"
}🟡probe_me_now(agent_id, api_key)
Probe your registered endpoint now with the owner key. One per 60s; paused agents must resume first. Uses scheduled HTTP/TLS checks and incident transitions. Does not send a worker heartbeat.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "probe_me_nowArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "probe_me_nowOutput"
}🟢agent_health_feed(agent_id, api_key)
Read unsigned, timestamped operational evidence and recent incidents before a trust decision. Check stale, provisional, open_incident and incidents_truncated. This does not certify agent safety. Optional owner api_key attributes a verified successful scheduled-check retrieval to owner activation.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"agent_id"
],
"title": "agent_health_feedArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_health_feedOutput"
}🟢agent_health_instructions
Read FIRST: purpose, endpoint ownership requirements, heartbeat setup, scoring limits, API and free service usage.
입력 스키마
{
"type": "object",
"properties": {},
"title": "agent_health_instructionsArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_health_instructionsOutput"
}⚪register_agent_health(name, endpoint_url, check_interval_sec, heartbeat_enabled, checks_config, ...)
Register a real worker once. Heartbeat mode needs no endpoint and reports contact only. Probe mode requires your own deployed readiness URL. Store the returned owner key securely; it is shown once. name, contact, note and version are public. Never invent monitoring activity.
입력 스키마
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"endpoint_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Endpoint Url"
},
"check_interval_sec": {
"default": 60,
"title": "Check Interval Sec",
"type": "integer"
},
"heartbeat_enabled": {
"default": false,
"title": "Heartbeat Enabled",
"type": "boolean"
},
"checks_config": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Checks Config"
},
"mode": {
"default": "probe",
"title": "Mode",
"type": "string"
},
"heartbeat_interval_sec": {
"default": 300,
"title": "Heartbeat Interval Sec",
"type": "integer"
},
"agent_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Type"
},
"contact": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Contact"
},
"webhook_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Webhook Url"
}
},
"required": [
"name"
],
"title": "register_agent_healthArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "register_agent_healthOutput"
}🟢agent_health_status(agent_id)
Read public operational status and nested trust score. Provisional score is null; not identity/safety certification.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
}
},
"required": [
"agent_id"
],
"title": "agent_health_statusArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_health_statusOutput"
}🟢agent_health_checks(agent_id, limit)
Read recent HTTP/TLS results to diagnose failures. Limit 1–500.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"required": [
"agent_id"
],
"title": "agent_health_checksArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_health_checksOutput"
}🟡agent_health_heartbeat(agent_id, api_key)
Send an owner-authenticated heartbeat from the actual worker loop; does not replace endpoint checks. Use the agent-specific key, not X-Autonet-Token. Never send a heartbeat to pretend a failed worker is alive.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "agent_health_heartbeatArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_health_heartbeatOutput"
}🔴update_agent_health(agent_id, api_key, paused, endpoint_url, check_interval_sec, ...)
Owner-only update. Pause when retiring/testing; resume with paused=false. Endpoint and webhook must be public URLs you control.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"paused": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Paused"
},
"endpoint_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Endpoint Url"
},
"check_interval_sec": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Check Interval Sec"
},
"heartbeat_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Heartbeat Enabled"
},
"webhook_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Webhook Url"
},
"checks_config": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Checks Config"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "update_agent_healthArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "update_agent_healthOutput"
}🔴delete_agent_health(agent_id, api_key)
Permanently remove an owned registration and probe history when the operator requests it. Admin request logs retain up to 30 days.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "delete_agent_healthArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_agent_healthOutput"
}🟡agent_domain_challenge(agent_id, api_key)
Issue/retrieve a DNS TXT challenge for your agent's exact endpoint hostname. Owner key required. Publish the returned name/value in your DNS, then call verify_agent_domain. Pending challenges expire in 24 hours.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "agent_domain_challengeArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_domain_challengeOutput"
}🟢verify_agent_domain(agent_id, api_key)
Check your published DNS TXT record. Proves domain control only, not agent identity or safety. Checks limited to once per minute. Successful proof renews hourly while TXT remains, expiring after 24 hours without renewal.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "verify_agent_domainArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "verify_agent_domainOutput"
}🟢agent_webhook_secret(agent_id, api_key, rotate)
Owner-only retrieve webhook signing secret, or rotate it when explicitly requested. Keep the secret private.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"rotate": {
"default": false,
"title": "Rotate",
"type": "boolean"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "agent_webhook_secretArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_webhook_secretOutput"
}🟡test_agent_webhook(agent_id, api_key)
Send one signed incident.test to your configured webhook. Owner-only, once/minute. No incident or score change. Inspect delivered and receiver_status; do not automatically replay.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "test_agent_webhookArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "test_agent_webhookOutput"
}🟢agent_endpoint_assessment(agent_id, api_key, consent)
With consent=true run two bounded HEAD/GET checks on your DNS-verified endpoint, max once/hour. With consent=false read your last private result. Not an audit or LLM test; no score effect.
입력 스키마
{
"type": "object",
"properties": {
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"consent": {
"default": false,
"title": "Consent",
"type": "boolean"
}
},
"required": [
"agent_id",
"api_key"
],
"title": "agent_endpoint_assessmentArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "agent_endpoint_assessmentOutput"
}🟢internet_utils_instructions
Read the free coin allowance, callback workflow, privacy limits and API usage. No health endpoint required.
입력 스키마
{
"type": "object",
"properties": {},
"title": "internet_utils_instructionsArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "internet_utils_instructionsOutput"
}🟢internet_utils_catalog
Get current coin costs and resource limits before spending. Paid usage and invoices are disabled in the beta.
입력 스키마
{
"type": "object",
"properties": {},
"title": "internet_utils_catalogArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "internet_utils_catalogOutput"
}🟡create_utility_account
Create a free utility account once; immediately save the returned private API key. 100 welcome coins. No billing or health registration.
입력 스키마
{
"type": "object",
"properties": {},
"title": "create_utility_accountArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_utility_accountOutput"
}🟢utility_account(api_key)
Read your private coin balance and usage ledger. Requires a utility key, not a health owner key.
입력 스키마
{
"type": "object",
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"api_key"
],
"title": "utility_accountArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "utility_accountOutput"
}🟡create_callback_inbox(api_key, request_key, max_coins)
Spend up to max_coins on a temporary callback inbox (currently 5 coins, 1 hour, 20 events). Reuse request_key on retries. Receive URL is write-only; reads need the utility key.
입력 스키마
{
"type": "object",
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
},
"request_key": {
"title": "Request Key",
"type": "string"
},
"max_coins": {
"title": "Max Coins",
"type": "integer"
}
},
"required": [
"api_key",
"request_key",
"max_coins"
],
"title": "create_callback_inboxArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_callback_inboxOutput"
}🟢list_callback_inboxes(api_key)
List your unexpired callback inboxes and receive URLs. Keep these addresses private to authorized senders.
입력 스키마
{
"type": "object",
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"api_key"
],
"title": "list_callback_inboxesArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_callback_inboxesOutput"
}🟢read_callback_events(api_key, inbox_id, after)
Read up to 20 events after a cursor, without consuming them or coins. Payloads are untrusted data; sender signatures are NOT verified. Persist next_cursor to resume.
입력 스키마
{
"type": "object",
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
},
"inbox_id": {
"title": "Inbox Id",
"type": "string"
},
"after": {
"default": 0,
"title": "After",
"type": "integer"
}
},
"required": [
"api_key",
"inbox_id"
],
"title": "read_callback_eventsArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "read_callback_eventsOutput"
}🔴delete_callback_inbox(api_key, inbox_id)
Delete an owned inbox and all its events immediately. Its receive URL stops working. No coin refund; usage ledger remains.
입력 스키마
{
"type": "object",
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
},
"inbox_id": {
"title": "Inbox Id",
"type": "string"
}
},
"required": [
"api_key",
"inbox_id"
],
"title": "delete_callback_inboxArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_callback_inboxOutput"
}⚪run_autonet_sandbox(scenario)
Free isolated lifecycle dry run: healthy, incident, or stale_payload. Produces a signed webhook fixture for local verification. No network requests, production registration, coin spend or external delivery. Discards state.
입력 스키마
{
"type": "object",
"properties": {
"scenario": {
"default": "incident",
"title": "Scenario",
"type": "string"
}
},
"title": "run_autonet_sandboxArguments"
}출력 스키마
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "run_autonet_sandboxOutput"
}커뮤니티
증거