{"ok":true,"site":{"host":"warrant-gray.vercel.app","url":"https://warrant-gray.vercel.app/","type":"live","desc":"A page whose tool surface the person using it can extend. Demonstrate a piece of work once; your agent proposes a WebMCP tool and says why; the page runs its edge cases before it exists; approving…","tools":[{"name":"get_page_structure","kind":"answer","impl":"imperative","description":"Describe this page: its data fields with semantic types and sensitivity, which operations are legal on which field, and the policy layer. Call this before proposing a tool — a field can only become a parameter if it says so here.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"get_recorded_demonstration","kind":"answer","impl":"imperative","description":"Return what the person just did on this page as an ordered list of semantic operations (not clicks), plus the resulting query. Use it to work out which literals were incidental and which were the point.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"run_query","kind":"act","impl":"imperative","description":"Run a one-off query against this page. Prefer a named tool on this page when one covers the question being asked — a minted tool carries a person’s reviewed defaults, its edge cases have already been judged against real rows, and it states what it withholds; this tool has none of that and must be told everything each time. Use it for one-off questions no named tool covers. Parameters are generated from the page’s own declaration, so call get_page_structure first. Fields marked pii or restricted are never returned.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"month":{"type":"string","description":"A period, or a relative expression such as last_month."},"dept":{"type":"string","description":"One of: Logistics, Support, Engineering, Retail Ops, Finance, Facilities."},"site":{"type":"string","description":"One of: Seoul, Busan, Remote."},"contract":{"type":"string","description":"One of: Full-time, Part-time, Contractor."},"overtime_hours":{"type":"number","description":"Only rows above this overtime."},"night_shifts":{"type":"number","description":"Only rows above this night shifts."},"gross_pay":{"type":"number","description":"Only rows above this gross pay."},"group_by":{"type":"string","enum":["month","dept","site","contract"],"description":"Optional dimension to group by."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"propose_tool","kind":"act","impl":"imperative","description":"Propose a new tool built from the recorded demonstration. Say which demonstrated literals should become parameters and why, which steps stay fixed and why, and which fields the tool must withhold. This does not create anything: the page validates the proposal against its own structure, generates edge cases, and a person approves it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"tool_name":{"type":"string","description":"lower_snake_case name for the new tool."},"description":{"type":"string","description":"When should a model reach for this tool? Write it for a model, not a human."},"parameters":{"type":"array","description":"Demonstrated literals to promote into parameters.","items":{"type":"object","properties":{"from_field":{"type":"string"},"name":{"type":"string"},"default":{"type":"string","description":"Literal, or a relative expression when the field declares relative_ok."},"rationale":{"type":"string","description":"Why this should vary. Shown to the person verbatim."}},"required":["from_field","name","rationale"]}},"withhold_fields":{"type":"array","items":{"type":"string"},"description":"Fields the tool must never return."},"notes":{"type":"string","description":"Anything the person should weigh before approving."}},"required":["tool_name","description"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"add_note","kind":"act","impl":"imperative","description":"Attach a short note to a person, addressed by the pseudonymous handle a tool returned. The page resolves the handle; you never learn who it belongs to. Writes are not autonomous: this call suspends until a person on the page confirms it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"handle":{"type":"string","description":"A handle returned by a tool on this page."},"note":{"type":"string","description":"What to record against that person."}},"required":["handle","note"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"list_tools_on_this_page","kind":"answer","impl":"imperative","description":"List the tools this page currently exposes, including tools a person minted during this session.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]},{"name":"describe_tool","kind":"answer","impl":"imperative","description":"Return the full contract of a minted tool: parameters, what it returns, what it withholds, and the edge cases a person accepted before it existed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"tool_name":{"type":"string"}},"required":["tool_name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/studio"]}],"category":"Developer Tools","favicon":"/favicons/warrant-gray.vercel.app.svg","apiSurface":"spec","toolCount":7}}