ZenVault

Wake-ups, webhook inboxes, TTL memory, watches and human approval for agents. Paid per call.

사용해야 할까요

품질 및 안전성

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

발견 사항 (10)

  • LOWTool 'create_drip' description lacks action verbcreate_drip에서
  • LOWTool 'notarize' description lacks action verbnotarize에서
  • LOWTool 'create_inbox' description lacks action verbcreate_inbox에서
  • LOWTool 'collect_messages' description lacks action verbcollect_messages에서
  • LOWTool 'create_queue' description lacks action verbcreate_queue에서
  • LOWTool 'queue_push' description lacks action verbqueue_push에서
  • LOWTool 'queue_ack' description lacks action verbqueue_ack에서
  • LOWTool 'create_watch' description lacks action verbcreate_watch에서
  • LOWTool 'extend_resource' description lacks action verbextend_resource에서
  • LOWTool 'request_feature' description lacks action verbrequest_feature에서

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

컨텍스트 비용

~3,025토큰 (도구 정의)
~530 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.36%)

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

설치

원클릭 설치

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

{
  "mcpServers": {
    "zenvault": {
      "url": "https://api.zenvault.eu/mcp"
    }
  }
}

원격 엔드포인트

https://api.zenvault.eu/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (44)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡create_wakeup(at, url, payload)

Schedule a webhook call at a future time (one-shot). Your agent can die; the call still happens.

입력 스키마

{
  "type": "object",
  "properties": {
    "at": {
      "type": "string",
      "description": "ISO-8601 time to fire"
    },
    "url": {
      "type": "string",
      "description": "webhook URL to call"
    },
    "payload": {
      "type": "object",
      "description": "JSON to include"
    }
  },
  "required": [
    "at",
    "url"
  ]
}
🟡create_schedule(cron, url, payload, days)

Recurring webhook on a cron expression until the prepaid days run out.

입력 스키마

{
  "type": "object",
  "properties": {
    "cron": {
      "type": "string",
      "description": "cron expression, e.g. 0 7 * * *"
    },
    "url": {
      "type": "string",
      "description": "webhook URL"
    },
    "payload": {
      "type": "object",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": "prepaid days"
    }
  },
  "required": [
    "cron",
    "url"
  ]
}
🟡create_deadman(url, interval_seconds, days, apprise_url)

Dead-man switch: if you stop checking in, we fire your alert webhook.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "alert webhook"
    },
    "interval_seconds": {
      "type": "number",
      "description": "max time between check-ins"
    },
    "days": {
      "type": "number",
      "description": ""
    },
    "apprise_url": {
      "type": "string",
      "description": "optional human notification target"
    }
  },
  "required": [
    "url"
  ]
}
🟢checkin_deadman(id)

Check in to a dead-man switch so it does not fire.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "dead-man switch id"
    }
  },
  "required": [
    "id"
  ]
}
🟡delayed_delivery(at, url, payload)

Hand over a payload now; we POST it to the target at a future moment.

입력 스키마

{
  "type": "object",
  "properties": {
    "at": {
      "type": "string",
      "description": "ISO-8601"
    },
    "url": {
      "type": "string",
      "description": "target URL"
    },
    "payload": {
      "type": "object",
      "description": ""
    }
  },
  "required": [
    "at",
    "url"
  ]
}
🟡create_drip(url, items, rate_seconds)

Dump up to 100 items now; we deliver them to your webhook at a fixed rate.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "webhook"
    },
    "items": {
      "type": "array",
      "description": "items to drip"
    },
    "rate_seconds": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "url",
    "items"
  ]
}
⚪notarize(sha256, data, note)

Signed proof that a hash (or your data) existed at this moment.

입력 스키마

{
  "type": "object",
  "properties": {
    "sha256": {
      "type": "string",
      "description": "hex digest"
    },
    "data": {
      "type": "string",
      "description": "raw data to hash instead"
    },
    "note": {
      "type": "string",
      "description": ""
    }
  },
  "required": []
}
🟢attested_fetch(url, include_content)

Fetch a URL and return content plus a signed receipt binding url, status, content hash and time.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to fetch"
    },
    "include_content": {
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ]
}
🟡create_inbox(days, label)

Public URL that buffers inbound webhooks until you collect them.

입력 스키마

{
  "type": "object",
  "properties": {
    "days": {
      "type": "number",
      "description": "prepaid days"
    },
    "label": {
      "type": "string",
      "description": ""
    }
  },
  "required": []
}
⚪collect_messages(id, all)

Collect buffered messages from an inbox, bin, front door or form.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "resource id"
    },
    "all": {
      "type": "boolean",
      "description": "include already-collected"
    }
  },
  "required": [
    "id"
  ]
}
🟡create_frontdoor(target, days, replay_hours)

Durable front door: buffers webhooks and forwards them to your gateway with retry-until-ack.

입력 스키마

{
  "type": "object",
  "properties": {
    "target": {
      "type": "string",
      "description": "your gateway URL"
    },
    "days": {
      "type": "number",
      "description": ""
    },
    "replay_hours": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "target"
  ]
}
⚪request_approval(action, detail, timeout_seconds, webhook, apprise_url)

Ask a human to approve or deny an action; returns a URL for them and a signed verdict for you. Times out as denied.

입력 스키마

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "description": "what you want to do"
    },
    "detail": {
      "type": "string",
      "description": "context for the human"
    },
    "timeout_seconds": {
      "type": "number",
      "description": ""
    },
    "webhook": {
      "type": "string",
      "description": "called with the verdict"
    },
    "apprise_url": {
      "type": "string",
      "description": "ping the human here"
    }
  },
  "required": [
    "action"
  ]
}
🟢check_approval(id)

Check whether a human approved or denied your request.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "approval id"
    }
  },
  "required": [
    "id"
  ]
}
🟡notify_human(apprise_url, title, body)

Send a message to a human on Telegram, Discord, Slack, ntfy, email and 100+ other services (apprise URL is used once, never stored).

입력 스키마

{
  "type": "object",
  "properties": {
    "apprise_url": {
      "type": "string",
      "description": "apprise target URL"
    },
    "title": {
      "type": "string",
      "description": ""
    },
    "body": {
      "type": "string",
      "description": "message"
    }
  },
  "required": [
    "apprise_url",
    "body"
  ]
}
🟡guaranteed_delivery(url, payload)

POST a payload to a URL, retried with backoff until it succeeds.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "target"
    },
    "payload": {
      "type": "object",
      "description": ""
    }
  },
  "required": [
    "url"
  ]
}
🟡create_vault(days, label)

Create a key-value namespace with TTL that survives your runs.

입력 스키마

{
  "type": "object",
  "properties": {
    "days": {
      "type": "number",
      "description": ""
    },
    "label": {
      "type": "string",
      "description": ""
    }
  },
  "required": []
}
🟡kv_set(id, key, value)

Store a value in a vault (max 1 MB).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "vault id"
    },
    "key": {
      "type": "string",
      "description": ""
    },
    "value": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id",
    "key",
    "value"
  ]
}
🟢kv_get(id, key)

Read a value from a vault.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "vault id"
    },
    "key": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id",
    "key"
  ]
}
🟢kv_list(id)

List keys in a vault.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "vault id"
    }
  },
  "required": [
    "id"
  ]
}
🟡save_checkpoint(id, state)

Save run state so you can resume after a crash.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "checkpoint id"
    },
    "state": {
      "type": "string",
      "description": "serialized state"
    }
  },
  "required": [
    "id",
    "state"
  ]
}
🟡create_checkpoint(days)

Create a crash checkpoint store.

입력 스키마

{
  "type": "object",
  "properties": {
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": []
}
⚪load_checkpoint(id)

Load the latest saved checkpoint state.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
🟢store_secret(value, days)

Store a value that self-destructs on first read; returns a one-time read URL.

입력 스키마

{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "value"
  ]
}
🟡create_queue(lease_seconds, max_attempts, days)

Pull-based work queue with leases; timed-out leases requeue.

입력 스키마

{
  "type": "object",
  "properties": {
    "lease_seconds": {
      "type": "number",
      "description": ""
    },
    "max_attempts": {
      "type": "number",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": []
}
⚪queue_push(id, body)

Push a job onto a queue.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "queue id"
    },
    "body": {
      "type": "string",
      "description": "job payload"
    }
  },
  "required": [
    "id",
    "body"
  ]
}
⚪queue_lease(id)

Lease the next job from a queue.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "queue id"
    }
  },
  "required": [
    "id"
  ]
}
⚪queue_ack(id, job_id, action)

Acknowledge (or nack) a leased job.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "queue id"
    },
    "job_id": {
      "type": "string",
      "description": ""
    },
    "action": {
      "type": "string",
      "enum": [
        "ack",
        "nack"
      ]
    }
  },
  "required": [
    "id",
    "job_id"
  ]
}
🟡create_counter(start, days)

Create an atomic counter.

입력 스키마

{
  "type": "object",
  "properties": {
    "start": {
      "type": "number",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": []
}
⚪counter_incr(id, by)

Increment a counter atomically.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    },
    "by": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
⚪claim_operation(id, operation_id)

Idempotency firewall: claim an operation id exactly once across runs.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "firewall id"
    },
    "operation_id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id",
    "operation_id"
  ]
}
🟡create_idempotency(days)

Create an idempotency/replay firewall.

입력 스키마

{
  "type": "object",
  "properties": {
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": []
}
🟡publish_page(html, name, days)

Publish an HTML page at name.zenvault.eu for N days.

입력 스키마

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "page HTML"
    },
    "name": {
      "type": "string",
      "description": "subdomain name"
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "html"
  ]
}
🟡create_link(target, days)

Create an expiring share link with click stats.

입력 스키마

{
  "type": "object",
  "properties": {
    "target": {
      "type": "string",
      "description": "destination URL"
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "target"
  ]
}
🟡create_watch(type, url, webhook, keyword, pattern, ...)

Watch something and fire your webhook when it changes. Types: change, keyword, regex, structured, drift, redirect, sitemap, staleness, rss, dns, port, cert, heartbeat.

입력 스키마

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "watch type"
    },
    "url": {
      "type": "string",
      "description": "URL to watch"
    },
    "webhook": {
      "type": "string",
      "description": "called on change"
    },
    "keyword": {
      "type": "string",
      "description": ""
    },
    "pattern": {
      "type": "string",
      "description": "regex"
    },
    "selector": {
      "type": "string",
      "description": "CSS selector or JSON path"
    },
    "json": {
      "type": "boolean"
    },
    "percent": {
      "type": "number",
      "description": "drift threshold"
    },
    "name": {
      "type": "string",
      "description": "DNS name"
    },
    "record": {
      "type": "string",
      "description": "DNS record type"
    },
    "host": {
      "type": "string",
      "description": ""
    },
    "port": {
      "type": "number",
      "description": ""
    },
    "domain": {
      "type": "string",
      "description": "for cert watch"
    },
    "interval_seconds": {
      "type": "number",
      "description": ""
    },
    "confirmations": {
      "type": "number",
      "description": "fire only after N consecutive hits"
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "type",
    "webhook"
  ]
}
🟢watch_status(id)

Check a watch: last value, checks, fires.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
🟡create_escalation(steps, subject, days)

Escalation chain: webhook, then after N seconds the next step, until acknowledged.

입력 스키마

{
  "type": "object",
  "properties": {
    "steps": {
      "type": "array",
      "description": "steps: {webhook, apprise_url, wait_seconds}"
    },
    "subject": {
      "type": "string",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "steps"
  ]
}
🟢get_resource(id)

Status of any resource you hold the management token for.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
⚪extend_resource(id, days)

Extend a resource TTL by paying again.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
🔴cancel_resource(id)

Cancel a resource early.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
⚪export_resource(id)

Export everything under a resource before it expires.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": ""
    }
  },
  "required": [
    "id"
  ]
}
🟢credit_balance

Check the balance of your prepaid credit token.

입력 스키마

{
  "type": "object",
  "properties": {},
  "required": []
}
🟡create_subtoken(cap_usd, label, days)

Mint a spend-capped child token for a sub-agent.

입력 스키마

{
  "type": "object",
  "properties": {
    "cap_usd": {
      "type": "number",
      "description": "hard spend cap"
    },
    "label": {
      "type": "string",
      "description": ""
    },
    "days": {
      "type": "number",
      "description": ""
    }
  },
  "required": [
    "cap_usd"
  ]
}
🟢list_prices

Machine-readable price list for every ZenVault service, in USD.

입력 스키마

{
  "type": "object",
  "properties": {},
  "required": []
}
⚪request_feature(what, why, would_pay)

Tell the operator what ZenVault is missing. Free.

입력 스키마

{
  "type": "object",
  "properties": {
    "what": {
      "type": "string",
      "description": "what you need"
    },
    "why": {
      "type": "string",
      "description": "why"
    },
    "would_pay": {
      "type": "string",
      "description": "would you pay, how much"
    }
  },
  "required": [
    "what"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

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