{"serverId":"mcp-registry/dev.workers.notdown-app.handoff/human-approval-decision-gate-and-shareable-result-page-publisher","tools":[{"name":"delete_page","fixed":{"name":"delete_page","description":"Delete a page you published, by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"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":45,"tokensAfter":45},{"name":"get_decision","fixed":{"name":"get_decision","description":"Read the current state of a decision gate you created with request_decision. Returns status (pending / resolved / timed_out), the chosen answer (once answered or auto-resolved), and timing. Poll this to find out what the human decided; if status is still 'pending' no one has answered yet and it hasn't expired.","inputSchema":{"type":"object","required":["gate_id"],"properties":{"gate_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"list_decisions","fixed":{"name":"list_decisions","description":"List the decision gates you have created, newest first, with their status and answers.","inputSchema":{"type":"object","properties":{"limit":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"list_pages","fixed":{"name":"list_pages","description":"List the pages you have published, newest first, with their URLs and view counts.","inputSchema":{"type":"object","properties":{"limit":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"publish_page","fixed":{"name":"publish_page","description":"Publish text or markdown as a clean, shareable public web page and get back a URL you can hand to a human. Use this whenever you produce a report, summary, plan, table, or any result a person should read in a browser instead of the chat window. The page is FOLLOWABLE: the human can subscribe to it via RSS/JSON (returned as feed_url/json_url) and gets the new version whenever you re-publish — so they never have to ask you for an update. To keep ONE page updated across runs/sessions, pass a stable","inputSchema":{"type":"object","required":["content"],"properties":{"slug":{"type":"string","description":"Optional stable name for a page you intend to keep updating (e.g. \"deploy-status\", \"nightly-report\"). Re-publishing with the same slug updates that same page in place at the same URL. Perfect for a fresh-context agent that can't remember a generated id — just reuse the slug. Omit for a one-off page with a random id."},"title":{"type":"string","description":"Page title (shown at top and in the browser tab)."},"format":{"enum":["markdown","text"],"type":"string","description":"How to render content. Default markdown."},"content":{"type":"string","description":"The page body. Markdown is supported (headings, lists, links, code, bold/italic, blockquotes)."}}},"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":366,"tokensAfter":366},{"name":"update_page","fixed":{"name":"update_page","description":"Update the title and/or content of a page you previously published; the URL never changes. Use this to keep one stable link current across sessions or runs — a live status page, a running changelog, an append-as-you-go log, or a dashboard the recipient can bookmark once and always see fresh. Each update notifies anyone subscribed to the page's RSS/JSON feed, so updating is how followers stay in the loop.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"}}},"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":164,"tokensAfter":164}],"toolsChanged":6,"tokensSaved":0,"todo":[{"tool":"delete_page","params":["id"]},{"tool":"get_decision","params":["gate_id"]},{"tool":"list_decisions","params":["limit"]},{"tool":"list_pages","params":["limit"]},{"tool":"update_page","params":["id","title","content"]}],"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."}