{"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":"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":"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"}