{"description":"The actions a visitor's own AI agent may take on this website.","endpoint":"/api/v1/webmcp/tools","spec":"mcp-server-card-draft","tools":[{"description":"List the forms on this website, or — given a form's slug — the fields it asks for, with their keys, labels, types and which are required. Call this before submit_form so the values are sent under the keys this site's form actually uses.","effect":"read","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"the form's slug; omit to list the forms on this site"}},"additionalProperties":false},"name":"describe_form"},{"description":"Find out what a page on this website sells and what it costs, before buying anything: the item, the amount and the currency. Call it so you can tell the person the price and let them decide, rather than sending them to a payment page to find out.","effect":"read","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"path of the page, e.g. /shop/blue-mug; omit for the page the visitor is on"},"item_id":{"type":"string","description":"id of the item to buy, from describe_purchase; omit when the page sells exactly one thing"}},"additionalProperties":false},"name":"describe_purchase"},{"description":"Ask this website to email the person you are helping when someone replies in a page's discussion. Use their own address, as they gave it — never one you chose. The site sends a confirmation first and delivers nothing until they accept it, so this cannot subscribe anyone who does not agree.","effect":"submit","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"path of the page whose discussion to follow, e.g. /blog/hello; omit for the page the visitor is on"},"email":{"type":"string","description":"the person's own email address, as THEY gave it — never invented; a confirmation is sent and nothing arrives until they accept it"}},"required":["email"],"additionalProperties":false},"name":"follow_discussion"},{"description":"List what this website publishes — its latest posts, its products, or everything filed under one category or tag — with each item's title, URL, short excerpt and date. Use it to find out what a site offers before searching it: search_site needs a query, and this answers \"what have you got\". Omit every argument for the site's main feed. The reply names the content types this site actually has, so a follow-up call can narrow to one.","effect":"read","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"content type key to list, e.g. post or product; omit for this site's main feed"},"taxonomy":{"type":"string","description":"taxonomy key to narrow by, e.g. category or tag; needs term"},"term":{"type":"string","description":"term slug within that taxonomy, e.g. news; needs taxonomy"},"page":{"type":"integer","description":"1-based page; omit for the first"}},"additionalProperties":false},"name":"list_content"},{"description":"Read the full text of one published page on this website, given its path. Use it after search_site has found the page, or when the visitor is asking about the page they are currently on.","effect":"read","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"the path of a page on this site, e.g. /about or /blog/hello"}},"required":["path"],"additionalProperties":false},"name":"read_page"},{"description":"Search this website's published content and get back matching pages with their titles, URLs and short excerpts. Use it to find out whether this site covers a topic, or to locate the page that answers a question before reading it.","effect":"read","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"what to search this site for"},"page":{"type":"integer","description":"1-based results page; omit for the first"}},"required":["query"],"additionalProperties":false},"name":"search_site"},{"description":"Begin buying one item from a page on this website. It returns a payment link for THE PERSON to open — it does not pay, and it cannot: the amount comes from the page, not from you, and the card details are entered by the person on the payment provider's own page. Show them the link and the price and let them finish. Call describe_purchase first so you can tell them what they are about to pay.","effect":"submit","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"path of the page, e.g. /shop/blue-mug; omit for the page the visitor is on"},"item_id":{"type":"string","description":"id of the item to buy, from describe_purchase; omit when the page sells exactly one thing"}},"additionalProperties":false},"name":"start_purchase"},{"description":"Send this website's owner a message through one of its forms — a contact form, a signup, an enquiry. The values must use the field keys describe_form reported. The site's own spam and rate-limit protections apply exactly as they do to a person filling the form in.","effect":"submit","inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"the slug of the form to submit, from describe_form"},"values":{"type":"object","description":"the field values, keyed by the field keys from describe_form","additionalProperties":true}},"required":["slug","values"],"additionalProperties":false},"name":"submit_form"}],"transport":"http"}