{"ok":true,"site":{"host":"holdthepen.vercel.app","url":"https://holdthepen.vercel.app/","type":"live","desc":"An agent can fill the form. You hold the pen. A WebMCP-powered benefits claim where every agent entry is reviewed by you.","tools":[{"name":"get_claim_state","kind":"answer","impl":"imperative","description":"Entry point. Returns the claim's sections, the current section, which fields are empty, invalid, or filled by an agent but not yet reviewed by the person, the review stage, and next_suggested_tools. Read-only; safe to call any time.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"explain","kind":"act","impl":"imperative","description":"Explains one question in plain language: what it actually asks (meaning), a confusing term it uses (term), or how each truthful answer affects the claim (consequences). Never recommends an answer. Call get_claim_state first.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"question_id":{"type":"string","description":"The field id, as listed by get_claim_state."},"intent":{"type":"string","enum":["meaning","term","consequences"],"description":"Which explanation to return. Omit for all three."}},"required":["question_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"review_agent_entries","kind":"answer","impl":"imperative","description":"Lists every value an agent has written into the form, with its review status, so the person or the agent can see exactly what was filled on their behalf. Read-only. Call get_claim_state first.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"fill_field","kind":"act","impl":"imperative","description":"Writes one value into one field on the person's behalf. The value is marked as agent-supplied and must be reviewed by the person before the claim can be submitted. Refuses to overwrite a value the person typed or a field they are editing. Call get_claim_state first.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"field_id":{"type":"string","description":"The field id, as listed by get_claim_state."},"value":{"type":"string","description":"The value as the person said it. Numbers as digits; dates as YYYY-MM-DD; yes/no as true/false."}},"required":["field_id","value"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_field","kind":"act","impl":"imperative","description":"Empties one field, undoing a value that was filled by an agent or the person. Use when a value was wrong and should be re-entered. Call get_claim_state first.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"field_id":{"type":"string","description":"The field id to clear."}},"required":["field_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"navigate_to_section","kind":"act","impl":"imperative","description":"Moves the visible form and keyboard focus to a section so the person can see the questions being discussed. Changes nothing in the claim. Call get_claim_state first.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"section":{"type":"string","enum":["household","income","caring","declaration"],"description":"The section to show."}},"required":["section"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"prepare_submission_review","kind":"act","impl":"imperative","description":"Does NOT submit. Stages a review of the completed claim so the person can read every answer and what they are declaring, then decide. Returns the staged summary, or the required fields still missing. Approval happens in the page; no tool can do it. Call get_claim_state first.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"apiSurface":"spec","category":"Productivity & Business","toolCount":7}}