clickd
Server Details
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 17 tools
The set is mostly cleanly separated: report/read tools such as site, brief, pages, and changes are explicitly distinguished by their descriptions, and propose/proposals, rescan/changes, and check/schema_create are distinct. A few adjacent concepts—site report vs work order vs page listing—could still be misselected without reading the full descriptions.
All tools use the clickd_ prefix and snake_case, so names are predictable and readable. The pattern is not a uniform verb_noun convention—some names are nouns, some verbs, and schema_create is a compound—but it is consistent enough.
17 tools is slightly above the typical 3-15 range, but the server covers a broad multi-stage workflow: signup, claim, audit, pages, rules, proposals, work log, citations, and leaderboard. Each tool appears to have a role, though the surface feels somewhat heavy.
The core lifecycle is covered from signup/claim through rescan, changes, report/brief, page/rule inspection, schema generation, proposals, work logging, and person-level todos. Minor gaps remain around proposal cancellation or deployment/application and listing all claimed sites, but no major workflow dead end is obvious.
Available Tools
17 toolsclickd_briefGet the fix listARead-onlyInspect
Gets a site's fixes as a work order: what to fix, in what order, how, why and on which pages.
When: at the start of work on a site, and after clickd_changes says a read is done.
Instead: clickd_site for the score to tell a person; clickd_todo for the next fix across all the person's sites.
Inputs: 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.
Returns: with markdown, the Markdown text alone; with steps, JSON with steps, prompt, report and caveat.
Fails: a site never read, or a draft, answers not found; clickd_rescan reads it. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. | |
| format | No | markdown (the default) or steps. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only and closed-world profile, and the description adds material context beyond them: failure cases (site never read, draft, answers not found), the remediation path (clickd_rescan reads it), and the auth requirement ('Works with no key'). That is precisely the extra behavioral layer annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then When/Instead/Inputs/Returns/Fails in a predictable labelled order, with zero filler. The telegraphic phrasing ('Fails: a site never read, or a draft, answers not found') is slightly compressed to the point of ambiguity, which keeps it just short of top marks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-value disclosure itself and does so for both formats. Combined with inputs, failure modes, remediation and sibling routing, an agent has everything needed to call this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by defining what each format value actually yields: markdown returns the whole list as Markdown text, steps returns the four highest-value fixes with pages, points and a hand-off prompt. This adds selection meaning beyond the bare enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a site's fixes as a work order') and enumerates the content: what to fix, order, how, why, which pages. That framing makes it clearly distinct from clickd_site (score) and clickd_todo (single next fix), which the description names explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When' clause ties invocation to the start of site work and to a completed read signalled by clickd_changes. The 'Instead' clause names two alternative siblings and the condition that selects each, so routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_changesWhat changed between readsARead-onlyInspect
Says what a site's latest read changed against the one before: score, rules fixed and newly failing, pages added and removed.
When: after clickd_rescan, every minute or two with its job until the read is done.
Instead: clickd_rescan to ask for the read; clickd_site for the report as it now stands.
Inputs: 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.
Returns: host, run, changes (null for a first read) and visits; with job, job ({ id, state, ahead }), changes null until done.
Fails: a site never read, or a job for another site, answers not found; a failed read says so in job. Needs a key.
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | The job id that clickd_rescan returned. | |
| site | Yes | The site, as a domain such as example.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description goes well beyond by enumerating the return shape (host, run, changes, visits, job{id,state,ahead}), the auth requirement ('Needs a key'), and specific failure modes (never-read site or job for another site returns not found). This is unusually complete behavioral disclosure for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Organized into When/Instead/Inputs/Returns/Fails with the core purpose front-loaded in the first sentence. The telegraphic style is dense but every line carries distinct information; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the Returns section fully carries the burden of describing return values, and the Fails section covers error behavior. For a two-parameter read tool, an agent has everything needed to invoke it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the baseline is 3. The description adds real meaning beyond the schema: `site` is a domain like example.com, and `job` is the id returned by clickd_rescan, with the important semantic note that changes stay null until the read is done.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'says what a site's latest read changed against the one before,' then enumerates the change categories (score, rules, pages). It also names the two siblings it is not (clickd_rescan, clickd_site), making disambiguation immediate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When' line gives an explicit trigger and cadence (after clickd_rescan, poll every minute or two with its job), and the 'Instead' line routes to clickd_rescan for requesting a read and clickd_site for the current report. Both alternatives and the condition selecting them are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_checkCheck a live addressARead-onlyInspect
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.
When: before and after a fix to one page, link or host.
Instead: clickd_rescan and clickd_changes for every page of a site; clickd_pages for a page as last read.
Inputs: 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.
Returns: the findings, each with its state in a word and what to do when it is wrong.
Fails: a private address is refused, and robots.txt is obeyed; the free tools' hourly allowance applies. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The address to check, such as https://example.com/products/linen-shirt. | |
| kind | Yes | Which check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description goes well beyond them: private addresses are refused, robots.txt is obeyed, the free tools' hourly allowance applies, and no key is needed. The 'Returns' and 'Fails' lines tell the agent what comes back and what the failure modes are.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then organized under When/Instead/Inputs/Returns/Fails labels so each sentence is scannable. No filler beyond the brief 'as the free tools do' framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return shape (findings with a one-word state and remediation). Failure behavior, rate limits, and auth requirements are all covered, so an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the enum and url are already documented; the description still adds real meaning by specifying that ssl consumes only the host portion and locations expects the brand's site rather than a page. Those per-kind input quirks are not derivable from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope qualifiers: 'Checks one live address now' and enumerates the five check kinds. The word 'one' plus 'now' distinguishes it from the batch-oriented siblings without requiring the schema to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When:' line scopes it to before/after a fix on a single page, link or host, and an explicit 'Instead:' line routes whole-site checks to clickd_rescan/clickd_changes and last-read snapshots to clickd_pages. Both the use case and the exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_citationsList citationsARead-onlyInspect
Lists what assistants were found to cite for a site, question by question, from lookups already made, and the credits left.
When: to tell a person whether assistants cite their site, at no cost.
Instead: clickd_site for how well formed the pages are, which is not whether they are cited.
Inputs: site is a domain, like example.com.
Returns: host, rows, credits, price, perDay and note.
Fails: rows is empty until a lookup is made. Needs a key and a claim.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true and openWorldHint=false, and the description adds real value on top: it is free, it requires a key and a claim, and the 'Fails:' line warns rows stays empty until a lookup exists. It stops short of explaining what a 'claim' entails or how credits are consumed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When / Instead / Inputs / Returns / Fails) with the core purpose front-loaded and no filler. Every line carries distinct information an agent needs, including the return field list that no output schema supplies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the return fields (host, rows, credits, price, perDay, note) and by covering the auth prerequisite and empty-rows failure mode. Minor gap: 'needs a key and a claim' is asserted without saying how to obtain or verify either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as a domain such as example.com; the description's 'Inputs:' line restates the same example. With the schema doing the work, this is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists what assistants were found to cite for a site, question by question') plus the scope constraint ('from lookups already made') and secondary output (credits left). It also explicitly separates itself from clickd_site by noting that page quality is not the same as being cited.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When:' line gives the concrete decision context (tell a person whether assistants cite their site, at no cost) and the 'Instead:' line names the sibling clickd_site along with why it is the wrong choice. Both the trigger and the alternative are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_claimClaim a siteAInspect
Claims a site for the person: the TXT record or file that proves it is theirs, then the check that finds it.
When: to open a site's private parts, such as rivals, citations and proposals.
Instead: clickd_signup first for a key; clickd_site for a public report, which needs no claim.
Inputs: 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.
Returns: with start, site, record, dns, file and note; with check, site, claimed and how.
Fails: check before the proof is up answers claimed false; a new DNS record can take minutes to be seen. Needs a person's key.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. | |
| step | No | start (the default) or check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing auth requirements ('Needs a person's key') and two concrete failure modes: check before proof propagates returns claimed false, and DNS records can take minutes to appear. Annotations only say readOnly=false, destructive=false, openWorld=true; the description supplies the operational nuance an agent needs to avoid misinterpreting a false result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When/Instead/Inputs/Returns/Fails) front-load purpose and keep each line load-bearing. The telegraphic phrasing is dense but not wasted, and nothing is buried at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating both return shapes (start: site, record, dns, file, note; check: site, claimed, how). Combined with the failure-mode and auth notes, an agent has everything needed to sequence the two-step flow correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it ties `start` to producing a record/file and `check` to verifying and adding the site, and clarifies `site` is a bare domain like example.com. This is substantive semantics beyond the enum labels, though it stops short of exhaustive per-parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Claims a site for the person') and immediately explains the mechanism: a TXT record or file as proof, then a verification check. The two-phase nature is spelled out, which distinguishes it from every read-only sibling in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When:' clause ties it to private site data (rivals, citations, proposals), and 'Instead:' clauses route to clickd_signup for a key and clickd_site for public reports that need no claim. Both the use condition and the alternatives are named outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_leaderboardGet the leaderboardARead-onlyInspect
Lists the public leaderboard: every ranked site by its latest score, the board of one crowd, or a record.
When: to show a person where a site places among every site, or sites like it.
Instead: clickd_site for one site's own place; clickd_rivals for the sites closest to one site.
Inputs: 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.
Returns: total, offset, limit, sites, tiers and note; with record, its sites and what it counted.
Fails: a crowd too small answers an empty board; drafts and closed sites are not ranked. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| in | No | A line of work, such as trades. | |
| city | No | A city in that state, such as Dallas. | |
| size | No | By the pages a read took. | |
| limit | No | How many to return. | |
| state | No | A US state by two letters, such as MO. | |
| offset | No | How many to skip, for the next part of a long list. | |
| record | No | One record in place of the places. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description's real contribution is elsewhere: it discloses that small crowds return an empty board, that drafts and closed sites are excluded from ranking, and that no key is needed. That is genuine behavioral context beyond the annotations, though it stops short of anything about result ordering or freshness beyond 'latest score'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When, Instead, Inputs, Returns, Fails) make it scannable, and the purpose sentence is front-loaded. Every line carries distinct information with no restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Seven optional parameters, two enums, and no output schema, yet the description covers filtering, the record variant, paging, the returned fields (total, offset, limit, sites, tiers, note), and failure modes. Nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description earns more: it explains that the filters combine 'together or alone', that city requires state, that record substitutes a single record for the place list, and that limit/offset page the board. These are interaction rules the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the public leaderboard') plus the three shapes it can take: all ranked sites, one crowd's board, or a single record. The 'Instead' line explicitly separates it from clickd_site and clickd_rivals, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When' clause gives the triggering intent ('show a person where a site places among every site, or sites like it') and an 'Instead' clause names both alternatives with the condition that selects them. No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_log_workLog work on a siteAInspect
Records a step of work on a site: what you planned, changed or checked, or where you got stuck.
When: after each step, including one that carries out a proposal or a queued task.
Instead: clickd_propose before deploying to a site set to approve; clickd_todo for tasks waiting.
Inputs: 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.
Returns: kept, site, step and note, with proposal or task and left when given.
Fails: a proposal or task not the person's keeps nothing and says so. Needs a person's key.
| Name | Required | Description | Default |
|---|---|---|---|
| did | Yes | What was done, in a sentence or two. | |
| site | Yes | The site, as a domain such as example.com. | |
| step | Yes | Which step this was. | |
| task | No | The queued task id this step finished. | |
| files | No | The files touched, separated by commas. | |
| found | No | What was true of the site, such as of its code. | |
| rules | No | The clickd rules worked on, by id, separated by commas. | |
| proposal | No | The proposal id, from clickd_propose, this step carried out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations: discloses the auth requirement ('Needs a person's key'), the cross-account failure mode ('a proposal or task not the person's keeps nothing and says so'), the return fields, and a privacy constraint ('Never send private data'). Annotations only say it is a non-destructive write with openWorld=false; the description supplies the why-and-what-happens instead.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When, Instead, Inputs, Returns, Fails) with the primary action front-loaded; every line carries distinct information and there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter write tool with no output schema, the description still covers trigger timing, alternatives, the meaning of each non-obvious parameter, the return shape, the failure case, and the auth prerequisite. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds cross-tool semantics the schema lacks: `proposal` names the proposal carried out (pointer to clickd_propose) and `task` the queued task finished, plus the comma-separated convention for `files` and `rules`. It does not restate the enum values in full, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Records a step of work on a site', immediately narrowed to 'what you planned, changed or checked, or where you got stuck'. That framing plus the named siblings (clickd_propose, clickd_todo) makes it unmistakable against the rest of the clickd family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When:' clause (after each step, including steps that carry out a proposal or queued task) and an explicit 'Instead:' clause routing to clickd_propose for deploy approval and clickd_todo for waiting tasks. When-to-use, when-to-use-something-else, and the alternatives are all named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_pagesList a site's pagesARead-onlyInspect
Lists the pages of a site's latest read with status, depth, words and failing rules, or gives one page in full.
When: to find the pages behind a fix, or everything wrong with one page.
Instead: clickd_brief for the fixes in order; clickd_check for a page as it is live now.
Inputs: 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.
Returns: host, run, total and pages; one page as path, status, failing, needsAPerson, linkedFrom, linksTo and quoted.
Fails: a site or page not read answers not found. Needs a key; any key reads a public site.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Text in the path. | |
| dir | No | Which way. | |
| kind | No | A kind of page. | |
| path | No | One page, such as /pricing. | |
| site | Yes | The site, as a domain such as example.com. | |
| sort | No | What to sort by. | |
| limit | No | How many to return. | |
| offset | No | How many to skip, for the next part of a long list. | |
| failing | No | A rule id. | |
| section | No | A section, such as /guides. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the readOnlyHint/openWorldHint annotations by stating auth requirements ('Needs a key; any key reads a public site') and failure behavior ('a site or page not read answers not found'). It also discloses the important override rule that `path` causes the other filters to be ignored. Minor gap: no note on result size or rate behavior, but the safety and error profile is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then organized under When / Instead / Inputs / Returns / Fails labels. The telegraphic style is dense but every clause carries information — no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema, the description compensates by enumerating the actual return fields (host, run, total, pages; path, status, failing, needsAPerson, linkedFrom, linksTo, quoted) and covering both error and auth conditions. Nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics beyond the schema: it groups params by function (narrow / order / page) and, critically, explains that supplying `path` makes the remaining parameters irrelevant. That interaction is invisible in the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (listing a site's pages from its latest read) and goes further by disclosing the dual mode: a filtered list, or one page in full when `path` is supplied. An agent can distinguish this from clickd_check or clickd_brief without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When / Instead' structure names explicit alternatives with the condition that selects each: clickd_brief for ordered fixes, clickd_check for a page as it is live now. Both when-to-use and when-to-use-something-else are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_proposalsList proposalsARead-onlyInspect
Lists the person's proposals and where each stands, or one by id, and whether a site is set to approve or automatic.
When: before work on a claimed site, and every few minutes after clickd_propose until it is answered.
Instead: clickd_propose to make one; clickd_todo for the work itself.
Inputs: 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.
Returns: with id, proposal and promise; otherwise proposals and promise, and with site, site and mode.
Fails: id and site together are refused; one not the person's answers not found. Needs a person's key.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | One proposal, by the id clickd_propose returned. | |
| site | No | Only proposals for this site, and its mode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly annotation, it discloses authentication requirements, mutual-exclusion failure behavior, not-found behavior, and the existence of a promise in the response. It also explains that deploy should only proceed once this tool says approved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and organized with When, Instead, Inputs, Returns, and Fails sections. Every line adds operational value, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter read tool with no output schema, the description covers selection semantics, return shape, failure cases, auth needs, and timing. An agent has enough information to call it correctly without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already defines id and site, but the description adds meaningful constraints: id and site are mutually exclusive, neither means every proposal, and site also returns that site's mode. This goes beyond the schema without being fully exhaustive about value ranges or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: lists proposals, either all, by id, or by site, and includes site approval mode. It distinguishes this from sibling tools by naming clickd_propose for creating proposals and clickd_todo for the work itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit timing guidance: use before work on a claimed site and repeatedly after clickd_propose until answered. It also names alternatives directly, routing creation to clickd_propose and work details to clickd_todo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_proposePropose a changeAInspect
Proposes a change before you deploy it, emailing the person Approve and Decline links that lapse in 72 hours.
When: before each deploy to a site clickd_proposals says is set to approve.
Instead: clickd_proposals with the id to wait for the answer; clickd_log_work, naming it, once carried out.
Inputs: 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.
Returns: proposal ({ id, state, deploy, ... }), note and promise.
Fails: a site not claimed with this key answers not found; 20 proposals a site an hour at most. Needs a person's key.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | No | A unified diff, at most 20,000 characters. | |
| rule | No | The rule id it answers, such as answer-first. | |
| site | Yes | The site, as a domain such as example.com. | |
| pages | No | Paths separated by commas, at most 20; none for the whole site. | |
| title | Yes | The change in a few words, at most 120 characters. | |
| summary | Yes | What it does and why, at most 2000 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses the email/approval workflow, the 72-hour link expiry, that `diff` is 'shown and never applied', the auth requirement ('Needs a person's key'), the 20-per-site-per-hour limit, and the failure mode for an unclaimed site. The only gap is the return payload's `note` and `promise` fields, which are named but not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then labeled blocks (When/Instead/Inputs/Returns/Fails) that make scanning easy and contain no filler. The telegraphic, fragment-heavy prose costs it a point, since '20 proposals a site an hour at most' takes a moment to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return burden and does so ('proposal ({ id, state, deploy, ... }), note and promise'), while also covering auth, rate limits, and failure cases. An agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds meaning the schema lacks: `diff` is never applied, `pages` is comma separated, and `rule` is 'the rule id it answers'. That extra semantic layer justifies moving above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Proposes a change before you deploy it') plus the mechanism: an email with Approve/Decline links that lapse in 72 hours. That mechanism alone distinguishes it from the sibling clickd_proposals, which merely lists or waits on proposals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When:' clause (before each deploy to a site clickd_proposals says is set to approve) and an 'Instead:' clause naming two alternatives with the exact conditions that select them (clickd_proposals to wait for the answer, clickd_log_work to record the work once done).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_rescanRead a site againAInspect
Puts a fresh read of a site in line and returns a job to follow.
When: once a fix is deployed, or for a site clickd has never read.
Instead: clickd_changes with the job to see what the read changed; clickd_check for one live page with no read.
Inputs: site is a domain, like example.com. reason says what was changed, in a few words.
Returns: job, added (false when a read was already in line), allowedAt and ahead.
Fails: a site read in the last ten minutes answers allowedAt, when to ask again; a private address is refused. Needs a key.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. | |
| reason | No | What was changed, in a few words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the queuing semantics (added=false when a read is already in line), the ten-minute per-site throttle via allowedAt, refusal of private addresses, and that an API key is required. These are exactly the behaviors an agent cannot infer from readOnlyHint/openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When / Instead / Inputs / Returns / Fails) front-load the action and routing decision, and every line carries distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the returned fields (job, added, allowedAt, ahead) plus the two failure modes. For a two-parameter job-creation tool this leaves nothing material an agent needs unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented. The description restates site as a domain like example.com and reason as 'what was changed, in a few words' with no added format, length, or required/optional detail. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb+resource ('puts a fresh read of a site in line') and immediately states it returns a job handle to follow. This clearly separates it from the read-inspection siblings and from a synchronous page check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the trigger conditions ('once a fix is deployed, or for a site clickd has never read') and names two alternatives with the condition that selects each: clickd_changes for a queued job's results, clickd_check for a single live page with no read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_rivalsCompare a site with rivalsARead-onlyInspect
Sets a site against its rivals from kept reads: who they are, how close, and where it is behind.
When: to pick the fixes that matter against the sites a buyer compares it with.
Instead: clickd_leaderboard for places among every site; clickd_site for its own score.
Inputs: 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.
Returns: host, then by view: local, nearby and elsewhere; sites; rules; ahead and behind; or pages.
Fails: 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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. | |
| view | No | competitors (the default), near, market, rules or content. | |
| with | No | The other site, already read. | |
| limit | No | For near only: how many sites. 10 if left out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses fallback behavior for each view (local/nearby/elsewhere, sites, rules, ahead/behind, pages) and two concrete failure modes: a site with no meaning yet returns found/embedded false, and rules/content without `with` asks for it. It also states the authorization requirement ("Needs a key and a claim"), which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tightly front-loaded with labeled sections (When, Instead, Inputs, Returns, Fails) and no filler. However, some lines are compressed to the point of ambiguity, notably the Returns enumeration ("local, nearby and elsewhere; sites; rules; ahead and behind; or pages"), which costs a parsing pass it need not have.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the return-value burden and does list the shapes per view, plus failure and auth conditions. The return enumeration and the phrase "kept reads" remain underspecified for a tool whose view-dependent output varies substantially, so a caller may still not know exactly what to expect from market or content views.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description meaningfully exceeds the schema by explaining what each enum value means functionally — competitors as "rivals doing similar work", near as "closest in meaning", market as "rule by rule", rules/content as "two sites side by side" — whereas the schema only repeats the enum labels. It also clarifies `with` has a default interpretation (rules when used alone), information absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys a specific verb and resource (compare a site against its rivals) and enumerates what the comparison yields: who the rivals are, how close they are, and where the site is behind. It also names the siblings it is not (clickd_leaderboard, clickd_site). The core action is stated somewhat metaphorically ("sets a site against", "from kept reads", "where it is behind"), so the agent must work a little to confirm the semantics, which keeps it off a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit "When:" clause (picking fixes that matter relative to the sites a buyer compares it with) and an explicit "Instead:" clause naming both alternatives plus the condition that selects each — leaderboard for rank among all sites, site for its own score. It also states the follow-up behavior for the rules/content views (supply `with`).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_rulesList the rulesARead-onlyInspect
Lists the rulebook: every rule clickd checks, with its id, stage, weight and fix. When: to explain a fix to a person, or to find a rule's id. Instead: clickd_brief for the rules one site fails; clickd_pages with failing for the pages failing one. Inputs: none. Returns: rules, each with id, title, stage, weight and fix. Fails: nothing to refuse. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value beyond that: 'Fails: nothing to refuse. Works with no key.' tells the agent there are no auth requirements or failure modes, which is not in the structured data. Minor gap only on caching/freshness of the rulebook.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled lines (When / Instead / Inputs / Returns / Fails) are front-loaded and scannable, with no wasted prose. The 'Returns' line mildly restates the opening sentence's field list, a small redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by enumerating the returned fields (id, title, stage, weight, fix). Inputs, failure behavior, auth requirements, and sibling alternatives are all covered, leaving nothing an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero-parameter tool, so the baseline is 4; the description's explicit 'Inputs: none.' confirms the empty schema rather than adding semantics beyond it. Nothing more could reasonably be said about zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (the rulebook / every rule clickd checks) plus the exact fields returned. The sibling contrast lines make it distinguishable from clickd_brief and clickd_pages without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When:' clause names two concrete situations (explaining a fix to a person, finding a rule's id), and the 'Instead:' clause routes to clickd_brief and clickd_pages with the exact condition that selects each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_schema_createWrite structured dataARead-onlyInspect
Makes JSON-LD for one page from the fields given, ready to paste, and fetches nothing.
When: to write the structured data a fix asks for; call it with only type to see the fields.
Instead: clickd_check with kind product to check a live product page.
Inputs: 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.
Returns: jsonld, script (ready to paste), missing, problems, recommended and fields.
Fails: a type not offered says which are. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | A more exact type, for LocalBusiness (such as Plumber, RoofingContractor, Restaurant) or Article (BlogPosting, NewsArticle). | |
| type | Yes | The schema type to make. | |
| fields | No | Values by field key, as text, such as { "name": "Acme Plumbing" }. A list is one value a line. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=true and openWorldHint=false; the description adds material context beyond them: no network fetch, no API key required ("Works with no key"), the returned keys (jsonld, script, missing, problems, recommended, fields), and the failure behavior for an unsupported type. Nothing contradicts readOnlyHint — the tool generates output rather than persisting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse labeled sections (When / Instead / Inputs / Returns / Fails) front-load the purpose and alternative before any parameter detail. Every line carries information — no filler, no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter generator with no output schema, the description covers what it produces, the exact return keys, the error path, and the no-auth condition. An agent has everything needed to call it correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: `type` must be one of the offered enum values, `as` narrows to a concrete subtype like Plumber, and `fields` takes values by key as text with "Give only what the page shows." It also explains the non-obvious pattern of calling with only the required `type` to discover fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact: "Makes JSON-LD for one page from the fields given, ready to paste." It also bounds scope with "fetches nothing" and explicitly separates itself from the sibling clickd_check, so an agent can pick it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Uses explicit When/Instead structure: use it "to write the structured data a fix asks for," and use clickd_check with kind product for checking a live product page. It also gives a discovery trick ("call it with only type to see the fields") that no alternative tool provides.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_signupGet a free keyAInspect
Gets a free key, shown once, with the command to connect with it: the person's by email, or a throwaway one.
When: when a call needs a key and there is none.
Instead: clickd_claim, with a person's key, to make a site theirs.
Inputs: email is the person's own address; leave it out for a throwaway key, which reads and asks for a few reads an hour.
Returns: key, connect and next, with email or anonymous.
Fails: an email already signed up, or not an email, says so; three an hour from one address. Needs no key.
| Name | Required | Description | Default |
|---|---|---|---|
| No | The person's email address. Leave it out for a throwaway key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (which only say non-readonly, non-destructive, closed-world) by disclosing that the key is shown once and is unrecoverable, the return fields (key, connect, next, plus email vs anonymous), the failure cases ('an email already signed up, or not an email, says so'), and the rate limit ('three an hour from one address'). It even flags that a throwaway key has a reduced read allowance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled lines (When / Instead / Inputs / Returns / Fails) make it skimmable and front-loaded, with no filler sentences. The occasional garbled phrase ('the person's by email', 'reads and asks for a few reads an hour') costs a little clarity but no whole sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description enumerates the returned fields (key, connect, next, and whether the key is email-tied or anonymous), states the one-chance display constraint, lists failure modes, and gives the rate limit. An agent has everything needed to call it and to decide what to do on success or failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already says almost verbatim that email is the person's address and should be omitted for a throwaway key. The description reinforces the effect of omitting it but adds no new syntax, validation, or format detail beyond the schema — baseline 3 is appropriate when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets a free key, shown once') plus the immediate follow-on artifact (the connect command), and distinguishes the two issuing modes (by email vs throwaway). It also names the sibling it is not — clickd_claim — so an agent can separate key issuance from site claiming without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When: when a call needs a key and there is none' covers the trigger, and 'Instead: clickd_claim, with a person's key, to make a site theirs' names the alternative and the condition that selects it. It also states a precondition ('Needs no key'), which is exactly the routing information an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_siteGet a siteARead-onlyInspect
Gets a site's report from its latest read: score, grades, place among ranked sites, towns served, and every fix with its failing pages.
When: to tell a person how a site stands.
Instead: clickd_brief for the fixes as a work order; clickd_rivals for its rivals; clickd_check for one live page.
Inputs: 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.
Returns: host, score, grade, stages, grades, rank, served, fixes and card, a picture to send the person; with agent, the Agent View's figures.
Fails: a site never read, a draft or one kept unnamed answers not found. Works with no key.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | The site, as a domain such as example.com. | |
| view | No | report (the default) or agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, yet the description still adds real context: it reads from an existing 'latest read' rather than triggering a scan, it needs no API key, and it documents failure modes (never-read site, draft, unnamed site return not found). It stops short of saying how fresh that stored read is or what to do when it is stale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled lines (When / Instead / Inputs / Returns / Fails) front-load the decision-relevant content and no line is filler. Some phrasing is telegraphic — 'fixes and card, a picture to send the person' — which costs a little readability against otherwise tight structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description covers return shape, both view modes, auth requirements, and failure cases. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description earns above it by explaining what `view: agent` actually yields — the whole-site Agent View from the same read, with each AI crawler as robots.txt treats it — which the enum values alone do not convey. `site` adds only the domain-format note already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (a site's report from its latest read) and enumerates the payload: score, grades, rank, served, fixes with failing pages. The 'Instead' line names three siblings and what each does differently, so an agent can route without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When:' condition ('to tell a person how a site stands') plus an 'Instead:' clause that assigns clickd_brief, clickd_rivals, and clickd_check to their own cases. Both the use case and the exclusions are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clickd_todoGet the work boardARead-onlyInspect
Gets the person's work across all their sites: the next fix and every other by worth, or the tasks they queued for you.
When: when you start work for the person, and when a reply says tasks are waiting.
Instead: clickd_brief for every fix on one site; clickd_log_work with task to finish a queued task.
Inputs: 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.
Returns: with board, next, todo, slipped, fixed, waiting and note; with queue, tasks and note.
Fails: an account with no claimed site has an empty board. Needs a person's key.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | board (the default) or queue. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true and openWorldHint=false, the description discloses the auth requirement ('Needs a person's key'), the failure mode ('an account with no claimed site has an empty board'), the default value of `show`, and ordering semantics ('oldest first'). These are exactly the operational facts annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (When / Instead / Inputs / Returns / Fails) front-load the essentials with no filler, and every line adds information. The telegraphic fragments ('the next fix and every other by worth') cost a little parseability, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields for both modes (next, todo, slipped, fixed, waiting, note; tasks, note). Combined with the failure case, default, and sibling routing, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum is already typed, so the baseline would be 3. The description earns above that by explaining what each enum value actually yields: board returns next/every fix by worth/slipped/fixed, queue returns tasks oldest-first — meaning the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Gets the person's work across all their sites') and enumerates the two content modes, so an agent can distinguish it from siblings. The domain vocabulary ('by worth', 'what slipped') is slightly opaque on first read, which keeps it just below top marks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When:' clause names the triggering situations ('when you start work for the person', 'when a reply says tasks are waiting'), and the 'Instead:' clause routes to clickd_brief for single-site fixes and clickd_log_work for finishing a queued task. Both the positive case and the alternatives are stated, not inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
clickd_signup2 fields changed- changed
Input schema / properties / email / descriptionPrevious value: -"The person's email address."New value: +"The person's email address. Leave it out for a throwaway key." - removed
Input schema / requiredRemoved value: -[ - "email" -]
34 tool updates
- Added
clickd_brief - Added
clickd_changes - Added
clickd_check - Added
clickd_citations - Added
clickd_claim - Added
clickd_leaderboard - Added
clickd_log_work - Added
clickd_pages - Added
clickd_proposals - Added
clickd_propose - Added
clickd_rescan - Added
clickd_rivals - Added
clickd_rules - Added
clickd_schema_create - Added
clickd_signup - Added
clickd_site - Added
clickd_todo - Removed
mttr_brief - Removed
mttr_changes - Removed
mttr_check - Removed
mttr_citations - Removed
mttr_claim - Removed
mttr_leaderboard - Removed
mttr_log_work - Removed
mttr_pages - Removed
mttr_proposals - Removed
mttr_propose - Removed
mttr_rescan - Removed
mttr_rivals - Removed
mttr_rules - Removed
mttr_schema_create - Removed
mttr_signup - Removed
mttr_site - Removed
mttr_todo
60 tool updates
- Removed
mttr_agent_view - Removed
mttr_approvals_set - Removed
mttr_backlinks - Changed
mttr_brief1 field changed- added
Input schema / properties / formatAdded value: +{ + "description": "markdown (the default) or steps.", + "enum": [ + "markdown", + "steps" + ], + "type": "string" +}
- Changed
mttr_changes1 field changed- added
Input schema / properties / jobAdded value: +{ + "description": "The job id that mttr_rescan returned.", + "type": "number" +}
- Added
mttr_check - Removed
mttr_cite - Changed
mttr_claim1 field changed- added
Input schema / properties / stepAdded value: +{ + "description": "start (the default) or check.", + "enum": [ + "start", + "check" + ], + "type": "string" +}
- Removed
mttr_claim_check - Removed
mttr_compare - Removed
mttr_competitors - Removed
mttr_content_brain - Removed
mttr_content_done - Removed
mttr_content_drop - Removed
mttr_content_next - Removed
mttr_content_posts - Removed
mttr_crawls - Removed
mttr_events - Removed
mttr_examples - Removed
mttr_explore - Removed
mttr_gaps - Removed
mttr_job - Changed
mttr_leaderboard4 fields changed- changed
Input schema / properties / city / descriptionPrevious value: -"A city in that state, such as Dallas, for the board of the sites there. Needs state."New value: +"A city in that state, such as Dallas." - changed
Input schema / properties / in / descriptionPrevious value: -"A line of work, such as trades, for its own board. Left out, every site."New value: +"A line of work, such as trades." - changed
Input schema / properties / size / descriptionPrevious value: -"Sites of about one size, by the pages a read took of them."New value: +"By the pages a read took." - changed
Input schema / properties / state / descriptionPrevious value: -"A US state by its two letters, such as MO, for the board of the sites there."New value: +"A US state by two letters, such as MO."
- Removed
mttr_links - Removed
mttr_list - Removed
mttr_locations - Changed
mttr_log_work3 fields changed- changed
Input schema / properties / found / descriptionPrevious value: -"What you found along the way, such as what was true of the site’s code."New value: +"What was true of the site, such as of its code." - changed
Input schema / properties / proposal / descriptionPrevious value: -"The proposal this step carried out or checked, by its id from mttr_propose, when the site works by approval."New value: +"The proposal id, from mttr_propose, this step carried out." - added
Input schema / properties / taskAdded value: +{ + "description": "The queued task id this step finished.", + "type": "number" +}
- Removed
mttr_map - Removed
mttr_market - Removed
mttr_markets - Removed
mttr_near - Removed
mttr_page - Changed
mttr_pages6 fields changed- changed
Input schema / properties / dir / descriptionPrevious value: -"Which way to sort."New value: +"Which way." - changed
Input schema / properties / failing / descriptionPrevious value: -"A rule id. Only pages failing that rule."New value: +"A rule id." - changed
Input schema / properties / kind / descriptionPrevious value: -"Only pages of this kind."New value: +"A kind of page." - added
Input schema / properties / pathAdded value: +{ + "description": "One page, such as /pricing.", + "type": "string" +} - changed
Input schema / properties / q / descriptionPrevious value: -"Text the path must contain."New value: +"Text in the path." - changed
Input schema / properties / section / descriptionPrevious value: -"Only pages in this section, such as /guides."New value: +"A section, such as /guides."
- Removed
mttr_plan - Removed
mttr_portfolio - Removed
mttr_portfolio_set - Removed
mttr_portfolio_veto - Removed
mttr_product_check - Removed
mttr_progress_link - Removed
mttr_proposal - Changed
mttr_proposals1 field changed- added
Input schema / properties / idAdded value: +{ + "description": "One proposal, by the id mttr_propose returned.", + "type": "number" +}
- Changed
mttr_propose5 fields changed- changed
Input schema / properties / diff / descriptionPrevious value: -"The change as a unified diff, at most 20,000 characters. Shown to the person, never applied by clickd."New value: +"A unified diff, at most 20,000 characters." - changed
Input schema / properties / pages / descriptionPrevious value: -"The pages it changes, as paths separated by commas, such as /pricing,/about. At most 20; none for the whole site."New value: +"Paths separated by commas, at most 20; none for the whole site." - changed
Input schema / properties / rule / descriptionPrevious value: -"The clickd rule it answers, by id, such as answer-first. Leave it out for a change no rule names."New value: +"The rule id it answers, such as answer-first." - changed
Input schema / properties / summary / descriptionPrevious value: -"What the change does and why, in a few sentences the person can judge, at most 2000 characters."New value: +"What it does and why, at most 2000 characters." - changed
Input schema / properties / title / descriptionPrevious value: -"What the change is, in a few words on one line, at most 120 characters."New value: +"The change in a few words, at most 120 characters."
- Removed
mttr_queries - Removed
mttr_queue - Removed
mttr_queue_done - Removed
mttr_reviews - Added
mttr_rivals - Changed
mttr_schema_create1 field changed- changed
Input schema / properties / fields / descriptionPrevious value: -"The values, by field key, as text: such as { \"name\": \"Acme Plumbing\", \"city\": \"Phoenix\", \"telephone\": \"+1-602-555-0142\" }. Lists, such as images, are one value a line."New value: +"Values by field key, as text, such as { \"name\": \"Acme Plumbing\" }. A list is one value a line."
- Removed
mttr_search - Removed
mttr_similar - Changed
mttr_site1 field changed- added
Input schema / properties / viewAdded value: +{ + "description": "report (the default) or agent.", + "enum": [ + "report", + "agent" + ], + "type": "string" +}
- Removed
mttr_sites - Removed
mttr_ssl_check - Removed
mttr_structure - Removed
mttr_tells - Changed
mttr_todo1 field changed- added
Input schema / properties / showAdded value: +{ + "description": "board (the default) or queue.", + "enum": [ + "board", + "queue" + ], + "type": "string" +}
- Removed
mttr_topics - Removed
mttr_traffic - Removed
mttr_visits - Removed
mttr_x_card
62 tool updates
- First observed
mttr_agent_view - First observed
mttr_approvals_set - First observed
mttr_backlinks - First observed
mttr_brief - First observed
mttr_changes - First observed
mttr_citations - First observed
mttr_cite - First observed
mttr_claim - First observed
mttr_claim_check - First observed
mttr_compare - First observed
mttr_competitors - First observed
mttr_content_brain - First observed
mttr_content_done - First observed
mttr_content_drop - First observed
mttr_content_next - First observed
mttr_content_posts - First observed
mttr_crawls - First observed
mttr_events - First observed
mttr_examples - First observed
mttr_explore - First observed
mttr_gaps - First observed
mttr_job - First observed
mttr_leaderboard - First observed
mttr_links - First observed
mttr_list - First observed
mttr_locations - First observed
mttr_log_work - First observed
mttr_map - First observed
mttr_market - First observed
mttr_markets - First observed
mttr_near - First observed
mttr_page - First observed
mttr_pages - First observed
mttr_plan - First observed
mttr_portfolio - First observed
mttr_portfolio_set - First observed
mttr_portfolio_veto - First observed
mttr_product_check - First observed
mttr_progress_link - First observed
mttr_proposal - First observed
mttr_proposals - First observed
mttr_propose - First observed
mttr_queries - First observed
mttr_queue - First observed
mttr_queue_done - First observed
mttr_rescan - First observed
mttr_reviews - First observed
mttr_rules - First observed
mttr_schema_create - First observed
mttr_search - First observed
mttr_signup - First observed
mttr_similar - First observed
mttr_site - First observed
mttr_sites - First observed
mttr_ssl_check - First observed
mttr_structure - First observed
mttr_tells - First observed
mttr_todo - First observed
mttr_topics - First observed
mttr_traffic - First observed
mttr_visits - First observed
mttr_x_card
Related MCP Connectors
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
Finds why Google and AI cannot read your site, gives the exact fix, applies it once you approve.
Technical SEO and AI-readiness audits for any page, plus a check that your fix worked.
Checks if ChatGPT, Claude, Gemini and Perplexity can reach and read a website, with ranked fixes.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAudits any website for SEO issues, providing scored health checks, schema validation, and performance analysis through AI assistants.-
- AlicenseAqualityAmaintenanceCheck whether a website is visible to AI search engines (ChatGPT, Perplexity, Claude, Google AI Overviews). Returns a 0-100 readiness score, a grade, and a specific fix for each gap. Dependency-free, no API keys.23 npmMIT
- AlicenseNot gradedqualityCmaintenanceEvaluates any website's AI visibility with 15 checks across crawlability, structure, content, and connectivity, and provides actionable fixes.8 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to scan pages and whole sites for SEO and AI-search visibility, generate ready-to-paste fixes and validated structured data, and verify HTML before deploy and live results after — all through stable issue codes so an agent can fix problems one by one and prove they are gone.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.