{"serverId":"mcp-registry/eu.zenvault/zenvault","tools":[{"name":"attested_fetch","fixed":{"name":"attested_fetch","description":"Fetch a URL and return content plus a signed receipt binding url, status, content hash and time.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to fetch"},"include_content":{"type":"boolean"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"cancel_resource","fixed":{"name":"cancel_resource","description":"Cancel a resource early.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"check_approval","fixed":{"name":"check_approval","description":"Check whether a human approved or denied your request.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"approval id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"checkin_deadman","fixed":{"name":"checkin_deadman","description":"Check in to a dead-man switch so it does not fire.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"dead-man switch id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"counter_incr","fixed":{"name":"counter_incr","description":"Increment a counter atomically.","inputSchema":{"type":"object","required":["id"],"properties":{"by":{"type":"number","description":""},"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"create_checkpoint","fixed":{"name":"create_checkpoint","description":"Create a crash checkpoint store.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"create_counter","fixed":{"name":"create_counter","description":"Create an atomic counter.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":""},"start":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"create_deadman","fixed":{"name":"create_deadman","description":"Dead-man switch: if you stop checking in, we fire your alert webhook.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"alert webhook"},"days":{"type":"number","description":""},"apprise_url":{"type":"string","description":"optional human notification target"},"interval_seconds":{"type":"number","description":"max time between check-ins"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"create_drip","fixed":{"name":"create_drip","description":"Dump up to 100 items now; we deliver them to your webhook at a fixed rate.","inputSchema":{"type":"object","required":["url","items"],"properties":{"url":{"type":"string","description":"webhook"},"items":{"type":"array","description":"items to drip"},"rate_seconds":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"create_escalation","fixed":{"name":"create_escalation","description":"Escalation chain: webhook, then after N seconds the next step, until acknowledged.","inputSchema":{"type":"object","required":["steps"],"properties":{"days":{"type":"number","description":""},"steps":{"type":"array","description":"steps: {webhook, apprise_url, wait_seconds}"},"subject":{"type":"string","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"create_frontdoor","fixed":{"name":"create_frontdoor","description":"Durable front door: buffers webhooks and forwards them to your gateway with retry-until-ack.","inputSchema":{"type":"object","required":["target"],"properties":{"days":{"type":"number","description":""},"target":{"type":"string","description":"your gateway URL"},"replay_hours":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"create_idempotency","fixed":{"name":"create_idempotency","description":"Create an idempotency/replay firewall.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"create_inbox","fixed":{"name":"create_inbox","description":"Public URL that buffers inbound webhooks until you collect them.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":"prepaid days"},"label":{"type":"string","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"create_link","fixed":{"name":"create_link","description":"Create an expiring share link with click stats.","inputSchema":{"type":"object","required":["target"],"properties":{"days":{"type":"number","description":""},"target":{"type":"string","description":"destination URL"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"create_queue","fixed":{"name":"create_queue","description":"Pull-based work queue with leases; timed-out leases requeue.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":""},"max_attempts":{"type":"number","description":""},"lease_seconds":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"create_schedule","fixed":{"name":"create_schedule","description":"Recurring webhook on a cron expression until the prepaid days run out.","inputSchema":{"type":"object","required":["cron","url"],"properties":{"url":{"type":"string","description":"webhook URL"},"cron":{"type":"string","description":"cron expression, e.g. 0 7 * * *"},"days":{"type":"number","description":"prepaid days"},"payload":{"type":"object","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"create_subtoken","fixed":{"name":"create_subtoken","description":"Mint a spend-capped child token for a sub-agent.","inputSchema":{"type":"object","required":["cap_usd"],"properties":{"days":{"type":"number","description":""},"label":{"type":"string","description":""},"cap_usd":{"type":"number","description":"hard spend cap"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"create_vault","fixed":{"name":"create_vault","description":"Create a key-value namespace with TTL that survives your runs.","inputSchema":{"type":"object","required":[],"properties":{"days":{"type":"number","description":""},"label":{"type":"string","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"create_wakeup","fixed":{"name":"create_wakeup","description":"Schedule a webhook call at a future time (one-shot). Your agent can die; the call still happens.","inputSchema":{"type":"object","required":["at","url"],"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"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"create_watch","fixed":{"name":"create_watch","description":"Watch something and fire your webhook when it changes. Types: change, keyword, regex, structured, drift, redirect, sitemap, staleness, rss, dns, port, cert, heartbeat.","inputSchema":{"type":"object","required":["type","webhook"],"properties":{"url":{"type":"string","description":"URL to watch"},"days":{"type":"number","description":""},"host":{"type":"string","description":""},"json":{"type":"boolean"},"name":{"type":"string","description":"DNS name"},"port":{"type":"number","description":""},"type":{"type":"string","description":"watch type"},"domain":{"type":"string","description":"for cert watch"},"record":{"type":"string","description":"DNS record type"},"keyword":{"type":"string","description":""},"pattern":{"type":"string","description":"regex"},"percent":{"type":"number","description":"drift threshold"},"webhook":{"type":"string","description":"called on change"},"selector":{"type":"string","description":"CSS selector or JSON path"},"confirmations":{"type":"number","description":"fire only after N consecutive hits"},"interval_seconds":{"type":"number","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":315,"tokensAfter":315},{"name":"export_resource","fixed":{"name":"export_resource","description":"Export everything under a resource before it expires.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"get_resource","fixed":{"name":"get_resource","description":"Status of any resource you hold the management token for.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"kv_get","fixed":{"name":"kv_get","description":"Read a value from a vault.","inputSchema":{"type":"object","required":["id","key"],"properties":{"id":{"type":"string","description":"vault id"},"key":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"kv_list","fixed":{"name":"kv_list","description":"List keys in a vault.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"vault id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"kv_set","fixed":{"name":"kv_set","description":"Store a value in a vault (max 1 MB).","inputSchema":{"type":"object","required":["id","key","value"],"properties":{"id":{"type":"string","description":"vault id"},"key":{"type":"string","description":""},"value":{"type":"string","description":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"list_prices","fixed":{"name":"list_prices","description":"Machine-readable price list for every ZenVault service, in USD.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"load_checkpoint","fixed":{"name":"load_checkpoint","description":"Load the latest saved checkpoint state.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"publish_page","fixed":{"name":"publish_page","description":"Publish an HTML page at name.zenvault.eu for N days.","inputSchema":{"type":"object","required":["html"],"properties":{"days":{"type":"number","description":""},"html":{"type":"string","description":"page HTML"},"name":{"type":"string","description":"subdomain name"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"save_checkpoint","fixed":{"name":"save_checkpoint","description":"Save run state so you can resume after a crash.","inputSchema":{"type":"object","required":["id","state"],"properties":{"id":{"type":"string","description":"checkpoint id"},"state":{"type":"string","description":"serialized state"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"watch_status","fixed":{"name":"watch_status","description":"Check a watch: last value, checks, fires.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52}],"toolsChanged":30,"tokensSaved":0,"todo":[{"tool":"attested_fetch","params":["include_content"]},{"tool":"cancel_resource","params":["id"]},{"tool":"claim_operation","params":["operation_id"]},{"tool":"counter_incr","params":["by","id"]},{"tool":"create_checkpoint","params":["days"]},{"tool":"create_counter","params":["days","start"]},{"tool":"create_deadman","params":["days"]},{"tool":"create_drip","params":["rate_seconds"]},{"tool":"create_escalation","params":["days","subject"]},{"tool":"create_frontdoor","params":["days","replay_hours"]},{"tool":"create_idempotency","params":["days"]},{"tool":"create_inbox","params":["label"]},{"tool":"create_link","params":["days"]},{"tool":"create_queue","params":["days","max_attempts","lease_seconds"]},{"tool":"create_schedule","params":["payload"]},{"tool":"create_subtoken","params":["days","label"]},{"tool":"create_vault","params":["days","label"]},{"tool":"create_watch","params":["days","host","json","port","keyword","interval_seconds"]},{"tool":"delayed_delivery","params":["payload"]},{"tool":"export_resource","params":["id"]},{"tool":"extend_resource","params":["id","days"]},{"tool":"get_resource","params":["id"]},{"tool":"guaranteed_delivery","params":["payload"]},{"tool":"kv_get","params":["key"]},{"tool":"kv_set","params":["key","value"]},{"tool":"load_checkpoint","params":["id"]},{"tool":"notarize","params":["note"]},{"tool":"notify_human","params":["title"]},{"tool":"publish_page","params":["days"]},{"tool":"queue_ack","params":["action","job_id"]},{"tool":"request_approval","params":["timeout_seconds"]},{"tool":"store_secret","params":["days","value"]},{"tool":"watch_status","params":["id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}