{"id":1785931,"recorded_at":"2026-11-01T18:48:53.577603Z","observed_at":"2026-11-01T18:48:53.577538Z","subject_kind":"endpoint","subject":"283f7ee6-98c0-4b74-acb8-b456bf2c3c08","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":17,"tools":[{"description":"Gets a site's fixes as a work order: what to fix, in what order, how, why and on which pages.\nWhen: at the start of work on a site, and after clickd_changes says a read is done.\nInstead: clickd_site for the score to tell a person; clickd_todo for the next fix across all the person's sites.\nInputs: `site` is a domain, like example.com. `format` is markdown (the default), the whole list, or steps: the four fixes worth the most as steps with pages and points, and words to hand another agent.\nReturns: with markdown, the Markdown text alone; with steps, JSON with steps, prompt, report and caveat.\nFails: a site never read, or a draft, answers not found; clickd_rescan reads it. Works with no key.","inputSchema":{"properties":{"format":{"description":"markdown (the default) or steps.","enum":["markdown","steps"],"type":"string"},"site":{"description":"The site, as a domain such as example.com.","type":"string"}},"required":["site"],"type":"object"},"name":"clickd_brief"},{"description":"Says what a site's latest read changed against the one before: score, rules fixed and newly failing, pages added and removed.\nWhen: after clickd_rescan, every minute or two with its job until the read is done.\nInstead: clickd_rescan to ask for the read; clickd_site for the report as it now stands.\nInputs: `site` is a domain, like example.com. `job` is the id clickd_rescan returned: the reply then says where that read stands, with changes only once it is done.\nReturns: host, run, changes (null for a first read) and visits; with job, job ({ id, state, ahead }), changes null until done.\nFails: a site never read, or a job for another site, answers not found; a failed read says so in job. Needs a key.","inputSchema":{"properties":{"job":{"description":"The job id that clickd_rescan returned.","type":"number"},"site":{"description":"The site, as a domain such as example.com.","type":"string"}},"required":["site"],"type":"object"},"name":"clickd_changes"},{"description":"Checks one live address now, as the free tools do: product data, a page as an agent reads it, an X card, a certificate, or location pages.\nWhen: before and after a fix to one page, link or host.\nInstead: clickd_rescan and clickd_changes for every page of a site; clickd_pages for a page as last read.\nInputs: `kind` is product, agent, x_card, ssl or locations. `url` is the page's full address; for ssl, only its host is used; for locations, the brand's site.\nReturns: the findings, each with its state in a word and what to do when it is wrong.\nFails: a private address is refused, and robots.txt is obeyed; the free tools' hourly allowance applies. Works with no key.","inputSchema":{"properties":{"kind":{"description":"Which check.","enum":["product","agent","x_card","ssl","locations"],"type":"string"},"url":{"description":"The address to check, such as https://example.com/products/linen-shirt.","type":"string"}},"required":["kind","url"],"type":"object"},"name":"clickd_check"},{"description":"Lists what assistants were found to cite for a site, question by question, from lookups already made, and the credits left.\nWhen: to tell a person whether assistants cite their site, at no cost.\nInstead: clickd_site for how well formed the pages are, which is not whether they are cited.\nInputs: `site` is a domain, like example.com.\nReturns: host, rows, credits, price, perDay and note.\nFails: rows is empty until a lookup is made. Needs a key and a claim.","inputSchema":{"properties":{"site":{"description":"The site, as a domain such as example.com.","type":"string"}},"required":["site"],"type":"object"},"name":"clickd_citations"},{"description":"Claims a site for the person: the TXT record or file that proves it is theirs, then the check that finds it.\nWhen: to open a site's private parts, such as rivals, citations and proposals.\nInstead: clickd_signup first for a key; clickd_site for a public report, which needs no claim.\nInputs: `site` is a domain, like example.com. `step` is start (the default), for the record and file, or check, to look for either and add the site.\nReturns: with start, site, record, dns, file and note; with check, site, claimed and how.\nFails: check before the proof is up answers claimed false; a new DNS record can take minutes to be seen. Needs a person's key.","inputSchema":{"properties":{"site":{"description":"The site, as a domain such as example.com.","type":"string"},"step":{"description":"start (the default) or check.","enum":["start","check"],"type":"string"}},"required":["site"],"type":"object"},"name":"clickd_claim"},{"description":"Lists the public leaderboard: every ranked site by its latest score, the board of one crowd, or a record.\nWhen: to show a person where a site places among every site, or sites like it.\nInstead: clickd_site for one site's own place; clickd_rivals for the sites closest to one site.\nInputs: `in` (a line of work such as trades), `state` (two letters), `city` (needs state) and `size` narrow the board, together or alone. `record` gives one record in place of the places. `limit` and `offset` page it.\nReturns: total, offset, limit, sites, tiers and note; with record, its sites and what it counted.\nFails: a crowd too small answers an empty board; drafts and closed sites are not ranked. Works with no key.","inputSchema":{"properties":{"city":{"description":"A city in that state, such as Dallas.","type":"string"},"in":{"description":"A line of work, such as trades.","type":"string"},"limit":{"description":"How many to return.","type":"number"},"offset":{"description":"How many to skip, for the next part of a long list.","type":"number"},"record":{"description":"One record in place of the places.","enum":["fastest","improved","stages","answer-first","biggest"],"type":"string"},"size":{"description":"By the pages a read took.","enum":["1-10","11-50","51-99","100-plus"],"type":"string"},"state":{"description":"A US state by two letters, such as MO.","type":"string"}},"required":[],"type":"object"},"name":"clickd_leaderboard"},{"description":"Records a step of work on a site: what you planned, changed or checked, or where you got stuck.\nWhen: after each step, including one that carries out a proposal or a queued task.\nInstead: clickd_propose before deploying to a site set to approve; clickd_todo for tasks waiting.\nInputs: `site` is a domain, like example.com. `step` is planned, changed, checked or stuck; `did` says what. `found`, `files` and `rules` (comma separated) add detail. `proposal` names the proposal carried out, `task` the queued task finished. Never send private data.\nReturns: kept, site, step and note, with proposal or task and left when given.\nFails: a proposal or task not the person's keeps nothing and says so. Needs a person's key.","inputSchema":{"properties":{"did":{"description":"What was done, in a sentence or two.","type":"string"},"files":{"description":"The files touched, separated by commas.","type":"string"},"found":{"description":"What was true of the site, such as of its code.","type":"string"},"proposal":{"description":"The proposal id, from clickd_propose, this step carried out.","type":"number"},"rules":{"description":"The clickd rules worked on, by id, separated by commas.","type":"string"},"site":{"description":"The site, as a domain such as example.com.","type":"string"},"step":{"description":"Which step this was.","enum":["planned","changed","checked","stuck"],"type":"string"},"task":{"description":"The queued task id this step finished.","type":"number"}},"required":["site","step","did"],"type":"object"},"name":"clickd_log_work"},{"description":"Lists the pages of a site's latest read with status, depth, words and failing rules, or gives one page in full.\nWhen: to find the pages behind a fix, or everything wrong with one page.\nInstead: clickd_brief for the fixes in order; clickd_check for a page as it is live now.\nInputs: `site` is a domain, like example.com. `path`, such as /pricing, gives that page in full, and the rest is then ignored. `failing` (a rule id), `q`, `kind` and `section` narrow the list, `sort` and `dir` order it, `limit` and `offset` page it.\nReturns: host, run, total and pages; one page as path, status, failing, needsAPerson, linkedFrom, linksTo and quoted.\nFails: a site or page not read answers not found. Needs a key; any key reads a public site.","inputSchema":{"properties":{"dir":{"description":"Which way.","enum":["asc","desc"],"type":"string"},"failing":{"description":"A rule id.","type":"string"},"kind":{"description":"A kind of page.","enum":["home","article","service","page"],"type":"string"},"limit":{"description":"How many to return.","type":"number"},"offset":{"description":"How many to skip, for the next part of a long list.","type":"number"},"path":{"description":"One page, such as /pricing.","type":"string"},"q":{"description":"Text in the path.","type":"string"},"section":{"description":"A section, such as /guides.","type":"string"},"site":{"description":"The site, as a domain such as example.com.","type":"string"},"sort":{"description":"What to sort by.","enum":["path","kind","depth","words","ms","inlinks","failing"],"type":"string"}},"required":["site"],"type":"object"},"name":"clickd_pages"},{"description":"Lists the person's proposals and where each stands, or one by id, and whether a site is set to approve or automatic.\nWhen: before work on a claimed site, and every few minutes after clickd_propose until it is answered.\nInstead: clickd_propose to make one; clickd_todo for the work itself.\nInputs: `id` is one proposal from clickd_propose; deploy only once it says approved. `site` gives that site's proposals and its mode. Neither, every proposal; never both.\nReturns: with id, proposal and promise; otherwise proposals and promise, and with site, site and mode.\nFails: id and site together are refused; one not the person's answers not found. Needs a person's key.","inputSchema":{"properties":{"id":{"description":"One proposal, by the id clickd_propose returned.","type":"number"},"site":{"description":"Only proposals for this site, and its mode.","type":"string"}},"type":"object"},"name":"clickd_proposals"},{"description":"Proposes a change before you deploy it, emailing the person Approve and Decline links that lapse in 72 hours.\nWhen: before each deploy to a site clickd_proposals says is set to approve.\nInstead: clickd_proposals with the id to wait for the answer; clickd_log_work, naming it, once carried out.\nInputs: `site` is a domain, like example.com. `title` is the change in a few words; `summary` what it does and why; `rule` the rule id it answers; `pages` the paths it changes, comma separated; `diff` a unified diff, shown and never applied.\nReturns: proposal ({ id, state, deploy, ... }), note and promise.\nFails: a site not claimed with this key answers not found; 20 proposals a site an hour at most. Needs a person's key.","inputSchema":{"properties":{"diff":{"description":"A unified diff, at most 20,000 characters.","type":"string"},"pages":{"description":"Paths separated by commas, at most 20; none for the whole site.","type":"string"},"rule":{"description":"The rule id it answers, such as answer-first.","type":"string"},"site":{"description":"The site, as a domain such as example.com.","type":"string"},"summary":{"description":"What it does and why, at most 2000 characters.","type":"string"},"title":{"description":"The change in a few words, at most 120 characters.","type":"string"}},"required":["site","title","summary"],"type":"object"},"name":"clickd_propose"},{"description":"Puts a fresh read of a site in line and returns a job to follow.\nWhen: once a fix is deployed, or for a site clickd has never read.\nInstead: clickd_changes with the job to see what the read changed; clickd_check for one live page with no read.\nInputs: `site` is a domain, like example.com. `reason` says what was changed, in a few words.\nReturns: job, added (false when a read was already in line), allowedAt and ahead.\nFails: a site read in the last ten minutes answers allowedAt, when to ask again; a private address is refused. Needs a key.","inputSchema":{"properties":{"reason":{"description":"What was changed, in a few words.","type":"string"},"site":{"description":"The site, as a domain such as example.com.","type":"string"}},"required":["site"],"type":"object"},"name":"clickd_rescan"},{"description":"Sets a site against its rivals from kept reads: who they are, how close, and where it is behind.\nWhen: to pick the fixes that matter against the sites a buyer compares it with.\nInstead: clickd_leaderboard for places among every site; clickd_site for its own score.\nInputs: `site` is a domain, like example.com. `view` is competitors (default: rivals doing similar work), near (closest in meaning), market (rule by rule), or rules or content (two sites side by side). `with` is the other site, for rules or content; alone, it means rules. `limit` is for near, 10 if left out.\nReturns: host, then by view: local, nearby and elsewhere; sites; rules; ahead and behind; or pages.\nFails: a site with no meaning yet answers found or embedded false; rules or content with no with says to give it. Needs a key and a claim.","inputSchema":{"properties":{"limit":{"description":"For near only: how many sites. 10 if left out.","type":"number"},"site":{"description":"The site, as a domain such as example.com.","type":"string"},"view":{"description":"competitors (the default), near, market, rules or content.","enum":["competitors","near","market","rules","content"],"type":"string"},"with":{"description":"The other site, already read.","type":"string"}},"required":["site"],"type":"object"},"name":"clickd_rivals"},{"description":"Lists the rulebook: every rule clickd checks, with its id, stage, weight and fix.\nWhen: to explain a fix to a person, or to find a rule's id.\nInstead: clickd_brief for the rules one site fails; clickd_pages with failing for the pages failing one.\nInputs: none.\nReturns: rules, each with id, title, stage, weight and fix.\nFails: nothing to refuse. Works with no key.","inputSchema":{"properties":{},"type":"object"},"name":"clickd_rules"},{"description":"Makes JSON-LD for one page from the fields given, ready to paste, and fetches nothing.\nWhen: to write the structured data a fix asks for; call it with only type to see the fields.\nInstead: clickd_check with kind product to check a live product page.\nInputs: `type` is one of the types offered; `as` a more exact one, such as Plumber; `fields` the values by field key, as text. Give only what the page shows.\nReturns: jsonld, script (ready to paste), missing, problems, recommended and fields.\nFails: a type not offered says which are. Works with no key.","inputSchema":{"properties":{"as":{"description":"A more exact type, for LocalBusiness (such as Plumber, RoofingContractor, Restaurant) or Article (BlogPosting, NewsArticle).","type":"string"},"fields":{"description":"Values by field key, as text, such as { \"name\": \"Acme Plumbing\" }. A list is one value a line.","type":"object"},"type":{"description":"The schema type to make.","enum":["LocalBusiness","Organization","Product","Article","BreadcrumbList","Service","Event","WebSite"],"type":"string"}},"required":["type"],"type":"object"},"name":"clickd_schema_create"},{"description":"Gets a free key, shown once, with the command to connect with it: the person's by email, or a throwaway one.\nWhen: when a call needs a key and there is none.\nInstead: clickd_claim, with a person's key, to make a site theirs.\nInputs: `email` is the person's own address; leave it out for a throwaway key, which reads and asks for a few reads an hour.\nReturns: key, connect and next, with email or anonymous.\nFails: an email already signed up, or not an email, says so; three an hour from one address. Needs no key.","inputSchema":{"properties":{"email":{"description":"The person's email address. Leave it out for a throwaway key.","type":"string"}},"type":"object"},"name":"clickd_signup"},{"description":"Gets a site's report from its latest read: score, grades, place among ranked sites, towns served, and every fix with its failing pages.\nWhen: to tell a person how a site stands.\nInstead: clickd_brief for the fixes as a work order; clickd_rivals for its rivals; clickd_check for one live page.\nInputs: `site` is a domain, like example.com. `view` is report (the default) or agent: the whole-site Agent View from the same read, with each AI crawler as robots.txt treats it.\nReturns: host, score, grade, stages, grades, rank, served, fixes and card, a picture to send the person; with agent, the Agent View's figures.\nFails: a site never read, a draft or one kept unnamed answers not found. Works with no key.","inputSchema":{"properties":{"site":{"description":"The site, as a domain such as example.com.","type":"string"},"view":{"description":"report (the default) or agent.","enum":["report","agent"],"type":"string"}},"required":["site"],"type":"object"},"name":"clickd_site"},{"description":"Gets the person's work across all their sites: the next fix and every other by worth, or the tasks they queued for you.\nWhen: when you start work for the person, and when a reply says tasks are waiting.\nInstead: clickd_brief for every fix on one site; clickd_log_work with task to finish a queued task.\nInputs: `show` is board (the default): next, every fix by worth, what slipped and what is fixed; or queue: the person's tasks for you, oldest first.\nReturns: with board, next, todo, slipped, fixed, waiting and note; with queue, tasks and note.\nFails: an account with no claimed site has an empty board. Needs a person's key.","inputSchema":{"properties":{"show":{"description":"board (the default) or queue.","enum":["board","queue"],"type":"string"}},"required":[],"type":"object"},"name":"clickd_todo"}]},"body_sha256":"6b90188f4dd24d3173d72a09f6cda65036a03638af2ebc5cd1786993d338c0a9","prev_id":1748007,"leaf":"0xd50099240cc02df170637a3b74ad44829ab70a0ded03fffa63eea7413aa8726b","leaf_text":"{\"body\":\"6b90188f4dd24d3173d72a09f6cda65036a03638af2ebc5cd1786993d338c0a9\",\"id\":1785931,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793558933577538,\"prev\":1748007,\"subject\":\"283f7ee6-98c0-4b74-acb8-b456bf2c3c08\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-11-01","leaves":302406,"root":"0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3","chained":"0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4","anchor_chain":"eip155:5042002","anchor_tx":"0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90","anchor_block":70262758},"proof":["0xd4fff937cf23585408032f1eb676925285e1a82a78cf870bc338a54ff82f3281","0xa015568eb9e2f763d552be339a93cfb1730e11fa236d635d04dbb121f2d95122","0x7d65be7148dcd90db4c2152dc4c9aa31da9a564508759bc165bf3618d54ce434","0xca25c1cedd01f1883d29b89cd1669b24e4da36b82a1ab83ad433d71a4d01b804","0x2dd6455ad4af06fb1ea95cd5f57f1ba173d8df4dd5997a49cdf6475a53878260","0xd7e636670071b6dce4745608fd289198f38db97a9a84741919492a1613f004f2","0x6de9e5a40bf17abc26e02c0aa81c53b80cc3518dd291c668923f8ede166ed474","0xf3fa6dbdb8289fdd7157910081eae2640bb9c9daf3db8b23553f3fe013d3fdb7","0x8e75018fbf5a11fc817a8fc60c86b661887c98ff9295359b261762756f932169","0x2bb690bf408aff9050a15c4238772bff0303803108c62b7c1b5f91996ee170e3","0x81715d487b5fe544aae88a9f5274946af161abe42498dfa7876675f5033f0f5b","0x65360a9279458a580bcc7af84cb70bc3cc118973d29e37040c5149269369c309","0x827e8832d4e454afc21199e490166d8c3be13193f254217a3857562757303f01","0x57b5e8b79f831258fde2efa4c7b70cd486ce34b32e7d612a6965c086ed7a75e8","0xd3f5c237675f14686b3a3c2715c6735a96952155107d7b2cb9a44c56420170bd","0xfc183bee85dc11a067fb710c6eb88824b94a516ddbdf2717b839e672a2206a7e","0xb5916fb7a3e87dc0702e46eeadcd22652e2e1e755f8d429cc7a14a67a350b51b","0x6142ac48fda269c17791c79da99c2456ac6acfe98268f4d168a404fd6040c703","0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910"]}