ZenVault
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Wake-ups, webhook inboxes, TTL memory, watches and human approval for agents. Paid per call.
| Author | eu.zenvault |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 643 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ZenVault": {
"url": "https://api.zenvault.eu/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (44)
create_wakeupSchedule a webhook call at a future time (one-shot). Your agent can die; the call still happens.
Parameters:
at(required) — string — ISO-8601 time to fireurl(required) — string — webhook URL to callpayload— object — JSON to include
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_scheduleRecurring webhook on a cron expression until the prepaid days run out.
Parameters:
cron(required) — string — cron expression, e.g. 0 7 * * *url(required) — string — webhook URLdays— number — prepaid dayspayload— object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_deadmanDead-man switch: if you stop checking in, we fire your alert webhook.
Parameters:
url(required) — string — alert webhookdays— numberapprise_url— string — optional human notification targetinterval_seconds— number — max time between check-ins
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
checkin_deadmanCheck in to a dead-man switch so it does not fire.
Parameters:
id(required) — string — dead-man switch id
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delayed_deliveryHand over a payload now; we POST it to the target at a future moment.
Parameters:
at(required) — string — ISO-8601url(required) — string — target URLpayload— object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_dripDump up to 100 items now; we deliver them to your webhook at a fixed rate.
Parameters:
url(required) — string — webhookitems(required) — array — items to driprate_seconds— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
notarizeSigned proof that a hash (or your data) existed at this moment.
Parameters:
data— string — raw data to hash insteadnote— stringsha256— string — hex digest
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
attested_fetchFetch a URL and return content plus a signed receipt binding url, status, content hash and time.
Parameters:
url(required) — string — URL to fetchinclude_content— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_inboxPublic URL that buffers inbound webhooks until you collect them.
Parameters:
days— number — prepaid dayslabel— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
collect_messagesCollect buffered messages from an inbox, bin, front door or form.
Parameters:
id(required) — string — resource idall— boolean — include already-collected
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_frontdoorDurable front door: buffers webhooks and forwards them to your gateway with retry-until-ack.
Parameters:
target(required) — string — your gateway URLdays— numberreplay_hours— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_approvalAsk a human to approve or deny an action; returns a URL for them and a signed verdict for you. Times out as denied.
Parameters:
action(required) — string — what you want to dodetail— string — context for the humanwebhook— string — called with the verdictapprise_url— string — ping the human heretimeout_seconds— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_approvalCheck whether a human approved or denied your request.
Parameters:
id(required) — string — approval id
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
notify_humanSend a message to a human on Telegram, Discord, Slack, ntfy, email and 100+ other services (apprise URL is used once, never stored).
Parameters:
apprise_url(required) — string — apprise target URLbody(required) — string — messagetitle— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
guaranteed_deliveryPOST a payload to a URL, retried with backoff until it succeeds.
Parameters:
url(required) — string — targetpayload— object
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_vaultCreate a key-value namespace with TTL that survives your runs.
Parameters:
days— numberlabel— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
kv_setStore a value in a vault (max 1 MB).
Parameters:
id(required) — string — vault idkey(required) — stringvalue(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
kv_getRead a value from a vault.
Parameters:
id(required) — string — vault idkey(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
kv_listList keys in a vault.
Parameters:
id(required) — string — vault id
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
save_checkpointSave run state so you can resume after a crash.
Parameters:
id(required) — string — checkpoint idstate(required) — string — serialized state
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_checkpointCreate a crash checkpoint store.
Parameters:
days— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
load_checkpointLoad the latest saved checkpoint state.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
store_secretStore a value that self-destructs on first read; returns a one-time read URL.
Parameters:
value(required) — stringdays— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_queuePull-based work queue with leases; timed-out leases requeue.
Parameters:
days— numbermax_attempts— numberlease_seconds— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
queue_pushPush a job onto a queue.
Parameters:
id(required) — string — queue idbody(required) — string — job payload
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
queue_leaseLease the next job from a queue.
Parameters:
id(required) — string — queue id
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
queue_ackAcknowledge (or nack) a leased job.
Parameters:
id(required) — string — queue idjob_id(required) — stringaction— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_counterCreate an atomic counter.
Parameters:
days— numberstart— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
counter_incrIncrement a counter atomically.
Parameters:
id(required) — stringby— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
claim_operationIdempotency firewall: claim an operation id exactly once across runs.
Parameters:
id(required) — string — firewall idoperation_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_idempotencyCreate an idempotency/replay firewall.
Parameters:
days— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
publish_pagePublish an HTML page at name.zenvault.eu for N days.
Parameters:
html(required) — string — page HTMLdays— numbername— string — subdomain name
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_linkCreate an expiring share link with click stats.
Parameters:
target(required) — string — destination URLdays— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_watchWatch something and fire your webhook when it changes. Types: change, keyword, regex, structured, drift, redirect, sitemap, staleness, rss, dns, port, cert, heartbeat.
Parameters:
type(required) — string — watch typewebhook(required) — string — called on changeurl— string — URL to watchdays— numberhost— stringjson— booleanname— string — DNS nameport— numberdomain— string — for cert watchrecord— string — DNS record typekeyword— stringpattern— string — regexpercent— number — drift thresholdselector— string — CSS selector or JSON pathconfirmations— number — fire only after N consecutive hitsinterval_seconds— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_statusCheck a watch: last value, checks, fires.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_escalationEscalation chain: webhook, then after N seconds the next step, until acknowledged.
Parameters:
steps(required) — array — steps: {webhook, apprise_url, wait_seconds}days— numbersubject— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_resourceStatus of any resource you hold the management token for.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
extend_resourceExtend a resource TTL by paying again.
Parameters:
id(required) — stringdays— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cancel_resourceCancel a resource early.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
export_resourceExport everything under a resource before it expires.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
credit_balanceCheck the balance of your prepaid credit token.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_subtokenMint a spend-capped child token for a sub-agent.
Parameters:
cap_usd(required) — number — hard spend capdays— numberlabel— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_pricesMachine-readable price list for every ZenVault service, in USD.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_featureTell the operator what ZenVault is missing. Free.
Parameters:
what(required) — string — what you needwhy— string — whywould_pay— string — would you pay, how much
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.