{"ok":true,"site":{"host":"graft-webmcp.vercel.app","url":"https://graft-webmcp.vercel.app/","type":"live","desc":"Graft compiles permitted page snapshots into typed, reviewable WebMCP tools.","tools":[{"name":"graft_status","kind":"answer","impl":"imperative","description":"Report what Graft currently has compiled: the source page, the compile phase, how many tool candidates exist at each status, how many are registered natively, and whether this browser exposes WebMCP. Call this first to orient before using the other graft_ tools.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_compile_url","kind":"act","impl":"imperative","description":"Compile a public web page into WebMCP tool candidates and register the confident ones. Pass an absolute http or https URL. Authentication, banking, mail and government domains are refused, robots.txt is honoured, and pages that need JavaScript are rendered before compiling. Returns the resulting candidate summary.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"Absolute URL of the page to compile."}},"required":["url"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_list_candidates","kind":"answer","impl":"imperative","description":"List every tool candidate Graft derived from the current page, with its status, confidence score, recipe and whether it is read-only. Status is auto or published for registered tools, held for ones awaiting human review, and rejected for ones scored too low to offer.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Optional filter.","enum":["auto","published","held","rejected"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_inspect_candidate","kind":"act","impl":"imperative","description":"Show one candidate in full: its description, JSON Schema, annotations, binding and the scored evidence behind its confidence number. Use it to decide whether a held candidate is safe to publish.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Candidate tool name."}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_set_candidate","kind":"act","impl":"imperative","description":"Publish a held candidate so it registers with the browser, or hold a registered one so it stops being offered. Calling this changes Graft's local review state immediately; it does not prompt for confirmation. Rejected candidates cannot be published.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Candidate tool name."},"status":{"type":"string","description":"Target status.","enum":["published","held"]}},"required":["name","status"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_export_adapter","kind":"act","impl":"imperative","description":"Download a self-contained JavaScript adapter for the reviewed contract. Approved read tools run from its bundled DOM runtime; held writes stay in the manifest until the owner binds a handler. Returns the file name and how many candidates are eligible to register.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"graft_verify_url","kind":"act","impl":"imperative","description":"Verify a deployed site's own WebMCP surface. Graft opens the page in a headless browser, reads the tools it registers, and reports whether the contracts are well formed and uniquely named. Pass expect as a comma-separated list of tool names to also check for drift against a contract you shipped earlier.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"Absolute URL of the deployed page to verify."},"expect":{"type":"string","description":"Optional comma-separated tool names that should be live."}},"required":["url"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/graft-webmcp.vercel.app.png","apiSurface":"spec","toolCount":7}}