Postclick by PPC.io: Landing Page CRO
Server Details
Landing-page CRO: audit pages, rewrite copy, answer buyer objections, design and build via MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 20 tools
Several tools overlap around audit retrieval (ask_audit, get_audit, get_audit_report, fetch) and around delivery (share_page, publish_page, export_page), which risks misselection. The descriptions work hard to disambiguate each with explicit 'THIS IS THE TOOL FOR' guidance, but the underlying boundaries between the four audit-read tools and the three delivery tools remain blurry.
The dominant pattern is consistent snake_case verb_noun (audit_page, build_page, get_audit, get_concepts, save_note, list_cro_skills). A few tools are bare verbs (describe, fetch, search) with no noun, but they remain readable and predictable.
20 tools is on the heavy side for the stated scope, and some of that weight is redundant: four different ways to read an audit and three different ways to deliver a page inflate the count. Most tools do map to a real pipeline stage (audit, concepts, build, ship, notes), so it is more over-stuffed than unjustified.
The pipeline is well covered end-to-end: balance check, audit, concepts, build, export/publish/share, plus workspace search and notes persist across sessions. Gaps are minor — there is no delete/update for notes or records, and no explicit cancel for a running audit or build.
Available Tools
20 toolsask_auditAsk a question about an auditARead-onlyIdempotentInspect
Free. Answers one question from a completed audit by returning that part of it in full: small enough to give the user whole, unlike the entire report. THIS IS THE TOOL FOR ANY FOLLOW-UP QUESTION about a page you have already audited. Never answer a question about an audited page from your own summary of it — the audit holds far more than any summary kept, and this is how to get the part that answers them. Pick the topic that matches what they asked: buyers for who is on this page, what each one is afraid of, the exact words they would object with, where they give up, and a second-by-second walkthrough of one of them reading it. the_pitch for whether the pitch itself is wrong: if the page meets the traffic where it is, which persuasion levers are missing and what each would do here, and how the offer is built. trust for whether a stranger believes it: the proof that is there, the proof that is missing, and why buyers hesitate. competitors for who else is bidding on these clicks, their live headlines and CTAs, what they do better, and the keywords and CPCs behind their pages. copy for the copy deck: the page's own lines quoted, each with the line that replaces it. leaks for the ranked problems with the evidence for each. the_page for what the page is, who it is aimed at, its own voice and palette, and how it is assembled section by section. technical for CTA placement and contrast, accessibility, and what changes on mobile. What comes back is written to be read out. Relay it: keep the names, the quotes, the numbers and the specific objections, reformat it for where you are, and do not compress a named buyer saying a specific sentence into a general remark about buyers. Needs a completed audit. Safe to call repeatedly, and calling it for two topics in a row is normal and costs nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Which part of the audit answers the question. buyers · the_pitch · trust · competitors · copy · leaks · the_page · technical. | |
| audit_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds non-obvious behavioral context: the call is 'Free,' costs nothing, is safe to repeat, and calling it twice in a row is normal. It also discloses the response is written to be read aloud and should be relayed verbatim. It stops short of describing latency or output format details.
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?
Purpose and routing are front-loaded in the first two sentences, and each topic clause does real selection work the enum text does not. It is nonetheless very long and dense; the topic list could be tightened without losing routing value.
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 lookup tool with no output schema, the description covers what is needed: the prerequisite, the meaning of every topic value, the shape of the return value ('written to be read out'), and how to relay it. Nothing required 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 only 50% (audit_id is undocumented), but the description compensates heavily by defining what each of the eight enum values returns — e.g. 'buyers' for who is on the page and their objections, 'leaks' for ranked problems with evidence. This is meaning well beyond the schema's bare enum listing.
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 — 'answers one question from a completed audit by returning that part of it in full' — and explicitly contrasts the scope against the sibling that returns the whole report ('unlike the entire report'). An agent can distinguish this from get_audit and get_audit_report 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?
Explicitly routes usage: 'THIS IS THE TOOL FOR ANY FOLLOW-UP QUESTION about a page you have already audited' plus a hard exclusion, 'Never answer a question about an audited page from your own summary of it.' It also states the prerequisite ('Needs a completed audit') and notes that repeated/batched calls are expected, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_pageAudit a landing pageADestructiveInspect
Start a new landing-page audit after the user authorises its live price from check_balance. First search for existing work when the request concerns a prior audit. Pass campaign context already supplied. Returns an audit_id; use get_audit with wait:25, then run_cro_skill for the requested deliverable. Does not design or build a page.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The live landing page URL to audit. | |
| context | No | Optional, up to 500 characters. What the page is for, in the user's own words: the offer, who it is aimed at, the campaign sending traffic to it. Pass what they have ALREADY told you rather than interrogating them for it. The audit reads the page but cannot know the intent behind it, so this sharpens who it judges the page against. Leave it out if they have not said. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the mutation/world-touching profile is covered. The description adds the non-obvious behavioural facts: it is a paid operation gated on check_balance authorisation, and it returns an audit_id that must be polled and then handed to run_cro_skill. It does not state what the destructive side effect actually consumes or whether re-running duplicates work, which keeps it off a 5.
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 workflow is front-loaded (authorise price, check for prior work, then invoke), and every sentence carries a distinct operational instruction or boundary. No filler or restated name/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 two-parameter, no-output-schema tool, the description supplies the missing pieces an agent needs: the pricing prerequisite, the prior-audit search branch, the returned audit_id, and the two downstream calls. Nothing required to invoke and correctly sequence it is absent.
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%, so the schema already fully documents url and context, including the 500-character limit and the 'leave it out if they have not said' guidance. The description's 'Pass campaign context already supplied' only echoes the schema's intent rather than adding format or syntax detail, so the baseline 3 is correct.
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 ('Start a new landing-page audit') and explicitly excludes adjacent work ('Does not design or build a page'), which routes the agent away from build_page. An agent can distinguish it from get_audit, run_cro_skill, and build_page 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?
Gives an explicit ordered workflow: authorise price via check_balance first, search for existing work when the request concerns a prior audit, then call this tool. It also names the follow-on tools (get_audit with wait:25, then run_cro_skill) rather than leaving the agent to infer them, and supplies an exclusion condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_pageBuild a design into a real pageADestructiveInspect
Build the design the user selected into a complete HTML page after approval of the live quote. Returns build_run_id. Use get_build with wait:25; completion requires artifact_ready. Do not publish or share the page without the user asking.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | ||
| direction | No | Optional plain-English steer for the build. | |
| concept_id | Yes | From get_concepts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond the annotations (destructive/openWorld/non-idempotent) by disclosing the quote-approval prerequisite, the returned build_run_id, the polling pattern via get_build wait:25, and the completion condition artifact_ready. This is exactly the operationally necessary context for a mutating build step.
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?
Three tight sentences: purpose, follow-up polling contract, and safety constraint. No filler, and the most important information (what it builds and what it returns) is front-loaded.
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, yet the description supplies the return value (build_run_id) and the completion signal (artifact_ready) that an agent needs to proceed. Combined with the destructive annotation and the pub/share exclusion, nothing essential is missing for a 3-param build tool.
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?
At 67% schema coverage, concept_id and direction are already documented in the schema, but audit_id has no description in either place, and the tool description adds no parameter guidance at all. Baseline 3 is appropriate since the schema carries most of the load.
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+resource: 'Build the design the user selected into a complete HTML page.' It also names the precondition (approval of the live quote) and the return value (build_run_id), which distinguishes it from siblings like generate_concepts or publish_page.
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-to-use (after quote approval), explicit routing to the follow-up tool (get_build with wait:25), and an explicit exclusion ('Do not publish or share the page without the user asking') that separates it from publish_page/share_page.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_balanceCheck my credits and planARead-onlyIdempotentInspect
Read the current account balance, billing mode and live audit/build/pack prices. Use before a new paid step or when the user asks about cost. Quote only returned prices; a missing price is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered by structured data. The description adds real behavioral value beyond that: prices are live, and the agent must "quote only returned prices; a missing price is unknown" — a reporting constraint that prevents hallucinated costs.
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?
Three short sentences, front-loaded with what is read, then when to call it, then the reporting constraint. Every sentence earns its place with zero 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, so the description compensates by enumerating the returned fields (balance, billing mode, audit/build/pack prices) and specifying the missing-price fallback. Nothing an agent needs to call or interpret this tool is absent.
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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies a parameterless read and adds no misleading call-shape hints.
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 (read) and the exact resources returned: account balance, billing mode, and live audit/build/pack prices. No sibling tool (ask_audit, build_page, get_build, etc.) covers billing state, so it is trivially distinguishable.
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?
"Use before a new paid step or when the user asks about cost" gives two concrete trigger conditions that an agent can act on. It does not name a competing alternative or an explicit when-not, but no sibling overlaps this function, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describeSee everything in my Postclick accountARead-onlyIdempotentInspect
List what is in the account when the user asks to see their work. For a page fix, copy rewrite or designer brief, call run_cro_skill directly; no account overview is needed first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered without the description. The description adds only the minor behavioral note that no overview is needed before a page fix; it says nothing about return format or scope of the listing.
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?
Two tight sentences, purpose front-loaded and the routing hint second. No wasted text, though the phrasing 'see their work' is a little colloquial for a listing tool.
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 parameters and no output schema, the description carries the full burden of explaining what the agent will get back, and it never says what 'what is in the account' actually contains. It covers the when-to-call question but leaves the return-value expectation 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate and baseline 4 applies. No parameter guidance is needed or expected.
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 clear verb and resource ('List what is in the account') and the title clarifies this is the Postclick account overview. It distinguishes itself from the page-fix workflow by routing those cases to run_cro_skill, though it remains vague about exactly what account contents are enumerated.
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?
Gives an explicit trigger ('when the user asks to see their work') and an explicit when-not, naming an alternative tool ('call run_cro_skill directly; no account overview is needed first'). It does not address other plausible siblings like get_audit or search, but the primary confusable case is handled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_pageDownload a built page as filesARead-onlyIdempotentInspect
Free. Packages a finished page as a zip that runs on any static host: index.html with every image it uses pulled into assets/, plus a README and metadata.json. Returns a download link. This is the one for a user who wants the files. share_page is the one for a user who wants something to look at. It also returns implementation_prompt: step by step instructions for putting this page live on the user's own site. Postclick does not host pages, so this is how a page ships. If you have access to their site, you can carry those steps out yourself; otherwise hand the prompt to whoever does. Pass platform when you know where the site lives, because the steps for WordPress and for Webflow are genuinely different. Ask if you do not know. Every variant stops at a draft and never publishes without the user confirming.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Where the user's site lives. Omit if unknown and the instructions will assume nothing. | |
| build_run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: it declares the tool is free, that Postclick does not host pages, that it returns a download link plus an implementation_prompt, and that every variant stops at a draft and never publishes without user confirmation. That last constraint is critical behavioral context an agent cannot infer.
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 and output format, and most sentences carry real routing or behavioral weight. It runs long and the 'Free.' fragment plus the hosting aside could be tightened, but nothing is filler at the level of a wasted sentence.
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, so the description carries the return contract itself — zip contents, download link, and implementation_prompt — and it does so fully. Combined with the draft-only safety guarantee, an agent has everything needed to call and act on this tool.
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 only 50% (build_run_id is undocumented everywhere), but the description compensates for platform by explaining why it matters ('the steps for WordPress and for Webflow are genuinely different') and how to behave when unknown ('Ask if you do not know'), which adds meaning beyond the enum description. build_run_id remains unexplained in both.
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 (packages a finished page) and names the exact artifact produced (a zip with index.html, assets/, README, metadata.json). It explicitly distinguishes itself from the sibling share_page, so an agent can route 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?
Gives explicit when-to-use routing ('This is the one for a user who wants the files. share_page is the one for a user who wants something to look at'), guidance on passing platform ('Pass platform when you know where the site lives... Ask if you do not know'), and the fallback when the agent lacks site access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchOpen one audit, design or reportARead-onlyIdempotentInspect
Free. Reads any single thing by its address, which looks like postclick://audit/ and comes from search, from describe, or from any other tool's answer. A plain id works too if that is all you have. expand is what makes this worth calling: pass * and you get everything attached in one go, which for an audit means the findings, the buyers and their walkthroughs, the competitor scan, the copy rewrites and the designs. Each arrives with its headline detail; the long write-ups are marked as withheld with the address to fetch them from, because all of them together run to well over a hundred thousand characters and would swamp the answer. Expand first to see the shape, then fetch the two or three that matter. For the audit as finished prose, get_audit_report is one call and reads better than any of this. For the audit written up as prose instead, get_audit_report is the one you want. For a picture, take the asset_id off a field here and pass it to get_asset.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Source ID returned by search. Alias of uri for ChatGPT retrieval. | |
| uri | No | The address, like postclick://audit/<id>. A bare id works too and will be looked up. | |
| expand | No | Comma separated names of things to pull in with it, or `*` for all of them. Every answer lists what else is available under available_links, so you can always go deeper without guessing. | |
| fields | No | Comma separated field names, when you only need a few. Left out, you get the useful ones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds important output behavior: expand=* returns everything attached, long write-ups are withheld because they would exceed 100,000 characters, and each withheld item comes with its own address for later fetching.
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 opening is front-loaded and useful, but the description contains a redundant pair of sentences about get_audit_report: 'For the audit as finished prose...' and 'For the audit written up as prose instead...' say essentially the same thing. That repetition costs clarity in an otherwise informative description.
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, but the description compensates by explaining the return shape: attached items arrive with headline detail, long write-ups are withheld with fetch addresses, and available_links allows deeper exploration. For a four-parameter retrieval tool with complex expansion behavior, this is sufficiently complete.
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 documents all four parameters. The description still adds useful semantics: uri format, bare id fallback, expand usage including `*`, and the practical reason to expand before fetching individual items.
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 read/fetch operation over a single addressed resource, with concrete address examples like postclick://audit/<id>. It explicitly distinguishes this tool from get_audit_report and get_asset, so an agent can identify when this is the right retrieval primitive.
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 guidance to use expand first, then fetch only the two or three items that matter. It also routes finished audit prose to get_audit_report and pictures to get_asset, naming the alternative tools and conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_conceptsDesign new versions of a pageADestructiveInspect
Generate visual design directions for an existing audit after the user requests designs and authorises the current pack quote. Use check_balance for current pack costs. Returns a run to resume with get_concepts; show the images already available before asking the user to choose. Never start a build without their choice.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many distinct directions the user wants, up to 12. Leave it out for the standard pack of 2. Higher costs more, so quote the total back before agreeing to it. Directions that already exist are counted and reused, never bought twice. | |
| audit_id | Yes | ||
| direction | No | Optional plain-English creative steer. Honoured above other design choices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (destructive, openWorld, non-idempotent), but the description adds real context beyond them: it needs explicit user authorisation and a quote, it returns an async run resumable via get_concepts, and it must not trigger a build without user choice. It does not explain irreversibility or cost mechanics beyond the authorisation gate.
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?
Three dense sentences front-load the purpose, then prerequisites/alternatives, then the return and next-step constraint. Every sentence earns its place, though the second and third are tightly packed with multiple instructions.
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 correctly fills the gap by describing the return value ('a run to resume with get_concepts') and the follow-up display step. Combined with annotations covering the mutation profile, an agent has enough to invoke it correctly, though the cost/quote mechanics remain partly implied.
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 67%, and the schema's own descriptions already carry the meaningful parameter detail (count caps, default pack, reuse/cost behaviour, direction steer). The description adds no parameter-level semantics of its own, so the baseline of 3 is appropriate.
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 — 'Generate visual design directions for an existing audit' — which is clearly distinct from retrieval siblings like get_concepts and from build_page. It names sibling tools only in supportive/workflow roles rather than stating an explicit contrast, so differentiation is clear but not maximally sharp.
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 gates invocation on the user requesting designs and authorising the pack quote, routes cost checks to check_balance, and points to get_concepts for resuming the run. It even states a hard precondition ('Never start a build without their choice'), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetGet a design or screenshot imageARead-onlyIdempotentInspect
Free. Every design, page capture and logo has an asset_id on the field that holds it. Pass it here. Which form you ask for depends entirely on where the picture is going, and getting it wrong is expensive. as: "url" is the DEFAULT AND USUALLY RIGHT one: a public link, no login, full size. Use it for anything you publish with publish_page, and for showing somebody a design. as: "bytes" returns the picture itself, downscaled to about 1024 across so it fits in a conversation, and you embed it as data:;base64,. Use it ONLY for a document you are writing in a place that refuses to load pictures from other websites, which includes artifacts. At full size one of these designs would be several hundred thousand tokens, so ask for bytes deliberately and not by habit.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | `url` for a link, which is right for anything you publish and is the default. `bytes` only for a document that cannot load a picture from another website. | |
| asset_id | Yes | The id from a picture field, like concept:<id>:image. | |
| max_width | No | How wide the picture comes back when you ask for bytes. 1024 by default, which is readable in a report. Smaller is cheaper. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, idempotent, non-destructive); the description adds substantial context beyond that: the call is free, the url form is public with no login, the bytes form is downscaled to ~1024 across, and full-size fetches would cost several hundred thousand tokens. The embedding syntax data:<mime>;base64,<bytes> is also disclosed.
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 decision that matters most (url vs bytes) is front-loaded and the cost/context warnings are tight and purposeful. It is slightly long and repeats the `as` semantics already in the schema, but no sentence is filler for a tool with this much footgun potential.
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 present, the description carries the burden of describing returns and does so precisely: a public link for url mode, a base64 payload for bytes mode, with sizing behavior. An agent has everything needed to call it correctly and to use 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 coverage is 100%, so the baseline is 3, but the description goes further: it marks `url` as the DEFAULT AND USUALLY RIGHT, warns that the choice is expensive to get wrong, and explains why max_width defaults to 1024. It duplicates rather than contradicts the schema's enum documentation, adding rationale the schema lacks.
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+resource (retrieve a stored picture by asset_id) and clarifies that designs, page captures and logos all carry an asset_id. It is unambiguous about what comes back (a link or the image bytes), but it never names or contrasts against siblings such as fetch or export_page, so it falls short of full sibling differentiation.
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 explicitly routes between the two modes: `as: "url"` is the default and correct choice for anything published with publish_page or shown to someone, while `as: "bytes"` is reserved for documents that cannot load external images (artifacts). Both the when and the when-not are stated, plus a caution that asking for bytes by habit is wrong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auditCheck how an audit is goingARead-onlyIdempotentInspect
Read audit status, changed progress, server elapsed time and ranked findings with typed edits. Use wait:25 while running. A failed, cancelled or stalled run is not a finished report. Once complete, use run_cro_skill or ask_audit for the relevant buyer, copy or offer evidence. Reading does not authorise a redesign.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Seconds to wait for a material change. Use 25 for broad client compatibility; longer waits are available for hosts that support them. A timeout preserves the run; resume by ID instead of starting again. | |
| audit_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds genuinely non-obvious behavior: polling with wait:25 for client compatibility, that a timeout preserves the run and is resumable by ID, and that reading does not authorize a redesign. It doesn't cover the return shape, but annotations plus these constraints carry most of the burden.
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-loads the payload, then the polling rule, then the completion handoff. Four sentences, each carrying a distinct rule. The final clause ('reading does not authorise a redesign') is terse but earns its place as a scope constraint.
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, yet the description names the returned contents enough for an agent to use the result. Covers polling, resumption, terminal-state distinction, and downstream routing. Missing only an explicit statement of what an incomplete run returns.
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 50%, so the description must compensate somewhat. It reinforces the wait:25 polling convention and the resume-by-ID semantics, which are the operative meanings of the wait param beyond the schema text. audit_id itself is undocumented in both places but is self-evident.
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 (read audit status) and enumerates the actual payload: progress, elapsed time, ranked findings with typed edits. This distinguishes it from siblings like get_audit_report (finished report) and ask_audit (interrogating evidence).
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?
Gives explicit when (use wait:25 while running), an explicit when-not ('a failed, cancelled or stalled run is not a finished report'), and routes to named alternatives (run_cro_skill, ask_audit) once complete. 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.
get_audit_reportRead the full audit reportARead-onlyIdempotentInspect
Read the complete stored audit as markdown for a full review. It can be long: use topic or ask_audit for one question, or run_cro_skill for a specific deliverable. Missing and withheld sections remain unknown. Buyer journeys are modelled, not customer research.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional. Return only this part of the report instead of all of it. The same keys ask_audit takes: buyers, the_pitch, trust, competitors, copy, leaks, the_page, technical. | |
| audit_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior. The description adds valuable caveats: the output can be long, missing/withheld sections remain unknown, and buyer journeys are modelled rather than customer research.
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?
Four sentences, front-loaded with the core action and followed by practical routing and caveats. Every sentence earns its place and there is no redundant or vague language.
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?
The description covers purpose, alternatives, output format, length expectations, and important data caveats. It is nearly complete, but the audit_id parameter remains unexplained and there is no output schema to clarify return structure further.
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 50%: topic is well documented in the schema, but audit_id has no description. The description mentions topic only in passing and does not explain audit_id's source, format, or expected value, so it adds little beyond 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 (Read), resource (complete stored audit), and format (markdown), making the tool's function immediately clear. It also distinguishes itself from ask_audit and run_cro_skill by naming those alternatives for narrower needs.
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 routes the agent: use this tool for a full review, use topic or ask_audit for one question, and use run_cro_skill for a specific deliverable. The when-to-use and when-not-to-use guidance is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buildCheck how a page build is goingARead-onlyIdempotentInspect
Free. Returns the build's status and, once finished, the complete page. A build takes 15 to 25 minutes, so poll it with wait set to 300: the call holds open and returns the moment the stage moves or the page is ready, which turns a twenty-minute build from dozens of identical reads into a handful of calls that each have something to report. When a call comes back with the same stage you already mentioned, say nothing and call again rather than paraphrasing yourself. A status of running is non-terminal and contains no page. By default the HTML is summarised rather than returned in full, because a page is tens of thousands of characters and would flood the conversation. Set include_html when the user actually wants the file, for example to save it locally and open it. Includes elapsed_seconds: the true age of the build, measured server side from its start timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Seconds to wait for a material change. Use 25 for broad client compatibility; longer waits are available for hosts that support them. A timeout preserves the run; resume by ID instead of starting again. | |
| build_run_id | Yes | ||
| include_html | No | Return the full page HTML. Large. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: build duration of 15-25 minutes, that running is non-terminal and contains no page, that HTML is summarised by default to avoid flooding context, and that elapsed_seconds is server-measured build age. This is exactly the operational context an agent needs for long-poll behavior.
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 contract and free of padding in the opening lines, but the middle digression about a twenty-minute build becoming a handful of calls is restated at some length. Dense but slightly over-explained.
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, so the description carries the return contract itself — status stages, non-terminal running, summarized vs. full HTML, and elapsed_seconds — and it does so completely for a 3-parameter polling tool.
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?
With only 67% schema coverage, the description compensates: it explains the rationale for wait=300 (blocks until a material change, collapsing repeated reads) and the purpose of include_html (full page is tens of thousands of characters). It also explains the otherwise-undocumented elapsed_seconds return field.
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: returns a build's status and, once finished, the complete page. It is clearly the polling counterpart to siblings like build_page, though it never names that sibling to draw the contrast 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-to-use and how: poll with wait=300, use include_html only when the user actually wants the file (e.g. to save locally), and stop and re-poll silently when the stage is unchanged. It even covers the failure mode of idempotent resumption by ID instead of restarting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conceptsShow the page designsARead-onlyIdempotentInspect
Free. Returns every concept rendered for an audit, each with its image URLs and a link to view it full size, and a runs.active count of how many are still rendering. A pack takes 3 to 8 minutes. While runs.active is above zero, call it with wait set to 300: it holds the connection open and comes back the instant a design lands, the stage moves, or the pack finishes, instead of returning the same half-empty list a dozen times in a row. A design landing is the thing worth interrupting for, and a wait gets it to the user within seconds of it existing. If a call comes back with nothing new, say nothing and call again — repeating a stage you already reported is worse than silence. A partial set is non-terminal: more images are still coming, so it is not the finished set to choose from. Some concepts may be flagged recommended, and often none is. The designs come back as pictures in the reply, not just links: without a concept_id it returns the opening screen of each so they can be compared, and with one it returns that single design as every band in page order, which is the whole page. Any figures, ratings or testimonials drawn into them are placeholders showing where real proof belongs, never the user's own data. Pick a concept_id to build. If the user wants to SEND a design to anyone, use share_page with that concept_id: it gives back one public no-login page of the whole design. Never hand over an app or dashboard link for that, the recipient hits a login wall.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Seconds to wait for a material change. Use 25 for broad client compatibility; longer waits are available for hosts that support them. A timeout preserves the run; resume by ID instead of starting again. | |
| audit_id | Yes | ||
| concept_id | No | Optional. Given one, returns that design as its full stack of bands in page order instead of one opening screen per design. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior, but the description adds substantial context: free access, 3–8 minute packs, long-poll wait semantics, non-terminal partial results, recommended flags, image return format, and placeholder content. It does not contradict the annotations.
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 with purpose and organized around polling behavior, output format, and alternatives. It is somewhat long and contains advisory repetition, but most sentences carry useful operational information.
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 and rich annotations already covering safety, the description still explains return format, wait behavior, partial non-terminal states, recommended flags, placeholder content, and the share_page alternative. It is complete enough for an agent to call and interpret this tool 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 67%, and the description adds meaningful operational semantics for wait and concept_id beyond the schema, including wait=300 for active runs and the full-page behavior when concept_id is supplied. audit_id is only implied by context, not explicitly described, so it is strong but not complete.
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: returns every concept rendered for an audit, with image URLs, a full-size link, and a runs.active count. It also distinguishes the send-a-design case from share_page and the build case via concept_id, so an agent can route correctly.
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?
Gives explicit operational guidance: call with wait 300 while runs.active is above zero, avoid repeating stages, treat partial sets as non-terminal, and use share_page when the user wants to send a design. The when-to-use and when-not-to-use conditions are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notesRead my saved notesARead-onlyIdempotentInspect
Free. Returns the notes saved against one record, or every note in the workspace when no address is given. Worth calling at the start of a repeat job, so a monthly report picks up whatever the last one left behind.
| Name | Required | Description | Default |
|---|---|---|---|
| subject_uri | No | Limit to one record's notes. Leave it out for all of them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds that the tool is 'Free' and that omitting the address returns every note in the workspace. These are useful behavioral details beyond the annotations, though it does not cover return format or pagination.
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 three short, front-loaded sentences with no wasted words. 'Free' leads, then the core behavior, then a practical usage tip. Every sentence earns its place.
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 simple read tool with one optional parameter and rich annotations, the description covers what it does, when to call it, its cost, and its default scope. It could be more complete by hinting at the return format, since no output schema exists, but otherwise it is sufficient.
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 single optional parameter is fully documented. The description reiterates that leaving out the address returns all notes, which adds little beyond the schema. Baseline 3 is appropriate when the schema already does the heavy lifting.
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 (returns) and resource (notes), and clarifies the scope: notes for one record or all notes in the workspace when no address is given. It does not explicitly name or contrast with any sibling tool (e.g., save_note), so it falls short of the 5-level sibling differentiation.
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 a clear usage scenario: 'Worth calling at the start of a repeat job, so a monthly report picks up whatever the last one left behind.' This is helpful context, but it does not name alternatives or state when not to use the tool, missing the explicit exclusions required for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cro_skillsFind a landing page skillARead-onlyIdempotentInspect
Find Postclick methods for prioritising page fixes, ad-to-page message match, buyer objections, copy edits and client test briefs. Returns starter requests and portable skill downloads. No account or credits needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds valuable behavioral context by stating that it returns starter requests and portable skill downloads, and that no account or credits are needed, which goes beyond the safety annotations.
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 with the core purpose, then states the return contents, and closes with a useful constraint. Every sentence earns its place and there is no wasted text.
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 input parameters and no output schema, the description adequately explains what the tool returns and any account/credit constraints. It could be slightly more explicit about the listing nature or any pagination, but it is complete enough for this simple tool.
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?
The tool has zero parameters, so the baseline score is 4 per the rubric. There is no parameter information needed or missing.
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 clear verb-resource intent: finding Postclick methods/skills for specific CRO topics and returning starter requests and portable skill downloads. It distinguishes the tool from generic siblings by naming CRO-specific outputs, but it does not explicitly differentiate itself from run_cro_skill.
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?
There is no explicit guidance on when to use this tool versus alternatives like run_cro_skill. The statement 'No account or credits needed' is a useful condition, but it does not explain when to choose this listing tool over other CRO-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_pagePublish a report to a shareable linkADestructiveIdempotentInspect
Free. Takes HTML you wrote and hosts it at postclick.ppc.io/r/, public, no login, ready to send to a client. This exists because an agency will not send a claude.ai link to a client. We do not template the page, style it or add anything to it: it is exactly the report you wrote. USE PLAIN IMAGE LINKS HERE, from get_asset with as: "url". A page we host loads our pictures at full size, so there is no reason to inline them, and a page has a 2 MB ceiling that a single inlined design would eat on its own. Inlining is only for a document you are writing somewhere that blocks pictures from other websites. Publishing the same name again replaces the page and the link keeps working, which is what a report somebody sends every month needs. Use the client's name in the name so they can read it out.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | The whole page with inline CSS. Use image URLs from get_asset; avoid embedding large image data. | |
| slug | No | The last part of the address, like acme-october-review. Taken from the title when left out. Pass the same one again to update a report you already sent. | |
| title | No | What the report is called. | |
| subject_uri | No | The address of the audit or project it was built from, if there is one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/idempotent/openWorld, but the description adds substantial context: the 2 MB page ceiling, public no-login access, that republishing the same name replaces the page while the link keeps working, and that no styling is added. It does not contradict any annotation, though permissions/auth requirements are left implicit.
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 and cost ('Free. Takes HTML you wrote and hosts it...'), and most sentences carry actionable content. A few clauses are flavor/justification ('which is what a report somebody sends every month needs') that could be trimmed.
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 conveys the return implicitly through the URL pattern and link-persistence behavior, and covers hosting constraints, no-templating, and update semantics. It is complete enough to invoke correctly, though it never explicitly states what the call returns.
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%, so the baseline is 3; the description still adds value by constraining the html parameter to plain image URLs via get_asset and by explaining the 2 MB ceiling rationale and slug reuse intent ('use the client's name in the name').
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 ('takes HTML you wrote and hosts it at postclick.ppc.io/r/<name>') with the concrete output and its public, no-login nature. This clearly distinguishes it from siblings like share_page, build_page, and export_page by naming the hosting target and the no-templating behavior.
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?
Gives explicit when-to-use and when-not-to guidance: use plain image links from get_asset with as: "url" here, whereas inlining is only for documents that block external images. It also explains re-publishing the same slug to update a recurring report and advises using the client's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_cro_skillImprove my landing pageARead-onlyIdempotentInspect
Use when the user wants page fixes, message match, buyer objections, copy rewrites or a client test brief. In your answer, never add free, guarantees, ratings or performance claims unless the source explicitly confirms them. Audit suggestions are not verified facts. Finished copy must not contain placeholders such as $X; choose a useful change supported by the original page. A quote form alone does not mean a free quote. Use one change for a first-fix request, complete the requested rewrite, and end with the source link without a follow-up offer. Finds an existing audit by page URL or client name and retrieves the selected skill plus its relevant evidence in one call. Returns source material for you to turn into the requested deliverable, not a new AI analysis. Read-only: never starts an audit, spends credits or publishes. Missing evidence and ambiguous page matches are explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page URL, domain or client name. Leave out when audit_id is known or the user explicitly requested latest. | |
| skill | Yes | Choose postclick-fix-first for the first fix; postclick-copy-rewrite for replacement words; postclick-experiment-brief for a designer note or handoff; postclick-message-match for comparing an ad; postclick-buyer-objections for buyer hesitation. | |
| latest | No | Use true only when the user explicitly asks for their latest or most recent audit. May be combined with page to find its latest audit. | |
| context | No | The user's ad copy, audience, constraints or desired output. Pass known context; do not require an interview. | |
| section | No | For copy rewrites, defaults to opening (headline, supporting line and button). Use page when the user asks for other sections or the whole page. | |
| audit_id | No | An audit ID returned by Postclick or extracted from the user’s /dashboard/a/<audit_id> link. For that link use audit_id, not page or latest. Never ask the user to find an ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations it discloses concrete behavior: it never starts an audit, spends credits or publishes, and it reports missing evidence and ambiguous page matches explicitly rather than silently guessing. It also states output-contract rules (no free/guarantee/rating claims unless confirmed, audit suggestions are not verified facts, no placeholders like $X, don't infer a free quote from a form alone). That is substantial disclosure the structured fields do not 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?
The content mostly earns its place, but the ordering is poor: usage and output-discipline rules are front-loaded while the actual 'what this does' sentence sits mid-paragraph. Several hyper-specific rules ('a quote form alone does not mean a free quote') read like skill content rather than tool documentation, bloating the definition's surface.
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 6 params at full schema coverage and no output schema, the description appropriately explains the return contract ('source material for you to turn into the requested deliverable') instead of enumerating fields. It covers safety, scoping and failure modes; the only gap is that parameter usage is left almost entirely to the schema.
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%, so the schema already explains page, skill, latest, context, section and audit_id thoroughly, including the dashboard-link extraction rule. The description adds essentially no new parameter-level syntax or semantics beyond the 'one change for a first-fix request' hint, so the baseline of 3 applies.
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 concrete operation: 'Finds an existing audit by page URL or client name and retrieves the selected skill plus its relevant evidence in one call.' It also delimits itself from adjacent tools by clarifying it 'returns source material... not a new AI analysis' and 'never starts an audit' — a real distinction from audit_page/ask_audit/list_cro_skills. However, the actual purpose statement is buried mid-description after a block of output rules, and no sibling is named by name.
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 opens with an explicit trigger list: 'Use when the user wants page fixes, message match, buyer objections, copy rewrites or a client test brief,' which maps cleanly onto the five skill enum values. It also gives per-skill selection guidance via the schema and a scoping rule ('Use one change for a first-fix request'). No explicit 'when not to use' or named-alternative routing is given, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_noteSave a note on an audit or designAIdempotentInspect
Free. Attaches anything you like to any record: who the client is, what they were charged, which findings they have already fixed, when you last sent them a report. Any name, any value. We never look inside it and the audit engine never reads it, so it cannot change what Postclick does. It is there so the work you do around these audits survives between conversations. Saving the same name again replaces it. Read them back with get_notes, and they also come back on the record itself.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Your own name for this field. | |
| value | No | Anything: a string, a number, a list, an object. | |
| subject_uri | Yes | The address of the thing this is about, like postclick://audit/<id>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), but the description adds real value beyond them: it discloses that saving the same key replaces the prior value, that data is opaque to the audit engine and cannot affect Postclick behavior, and that it costs nothing. That resolves the main agent concerns for a mutation 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?
Front-loaded with the free/opaque-payload framing, then the overwrite rule, then the read path. Slightly conversational and longer than strictly necessary, but every sentence carries information (cost, opacity, replacement, retrieval).
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 free-form key/value store with no output schema, the description covers everything needed: what values are accepted, what a subject URI is, what happens on key collision, that the engine ignores it, and how to read it back. 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 the baseline is 3, but the description adds meaning the schema does not: 'any name, any value', the fact that re-saving a key overwrites it, and that a subject is 'any record' addressed by URI. This clarifies key uniqueness and value freedom beyond the field-level descriptions.
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 (save/attach) and resource (notes on a record), and explicitly distinguishes itself from the sibling `get_notes` by naming it as the read path. An agent can tell it apart from the other audit/page tools 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?
Explains the context in which to use it ('so the work you do around these audits survives between conversations') and names the read alternative `get_notes`. It does not state when NOT to use it, but the intended scenario is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch my audits, designs and reportsARead-onlyIdempotentInspect
Free. Finds anything in this workspace by words: a domain, a page URL, a client's name, a design's caption, a project. Returns an address for each hit that you pass straight to fetch. Use this the moment somebody refers to work they have already done — "the zoomdrain page", "last month's audit", "the report I made for Acme". Leave the words empty to list the most recent of everything. Use kind=audit to find audits directly; an account overview is not needed first.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Narrow to a kind such as audit, concept, build or project. Leave it out to search everything at once, which is usually what you want. | |
| limit | No | How many to return. 20 by default. | |
| query | No | Words to match: a domain, part of a URL, a client name, a caption. Leave it out to list the most recent work instead of searching. | |
| since | No | Only things newer than this date, as YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds non-obvious traits those annotations cannot express: that the call is 'Free', that results are addresses intended for fetch rather than full records, and that an empty query degrades to a recency listing. It stops short of pagination or limit interaction beyond what the schema says.
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-loads the value proposition and return shape, then layers usage, then the empty-query fallback, with no filler sentences. Length is justified by the number of distinct behaviors it must convey for a general-purpose search.
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, so the description carries the return-shape burden and does so ('an address for each hit'), plus cost, zero-arg behavior, and the natural follow-up tool. For a 4-param optional-args search over a large sibling set, 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 all four parameters are documented in the schema already, including the empty-query and kind-omission behaviors. The description restates these ('Leave the words empty', 'Use kind=audit') rather than adding syntax or format detail beyond them, so the baseline of 3 is correct.
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 — finds any work in the workspace by words — and immediately frames the result as 'an address for each hit that you pass straight to `fetch`', which separates it cleanly from the sibling fetch tool and from get_* lookups. An agent knows exactly what this returns and what to do with it.
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?
Gives concrete trigger conditions with quoted user phrasings ('the zoomdrain page', 'last month's audit'), states the zero-arg behavior ('Leave the words empty to list the most recent of everything'), and pre-empts a likely detour with 'an account overview is not needed first'. Explicit when-to-use plus a routing rule to kind=audit.
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.
20 tool updates
- First observed
ask_audit - First observed
audit_page - First observed
build_page - First observed
check_balance - First observed
describe - First observed
export_page - First observed
fetch - First observed
generate_concepts - First observed
get_asset - First observed
get_audit - First observed
get_audit_report - First observed
get_build - First observed
get_concepts - First observed
get_notes - First observed
list_cro_skills - First observed
publish_page - First observed
run_cro_skill - First observed
save_note - First observed
search - First observed
share_page
Related MCP Connectors
Shopify CRO platform via MCP: 100+ tools for analytics, experiments, authoring, proven lift.
Help your AI improve landing pages, grounded in 3,500+ scored sections and 500 real pages.
- ConvikaOAuthcom.convika
Create, preview, publish, and measure landing pages from Claude, Codex, or any MCP client.
Paid x402 MCP tool for stress-testing launch and marketing copy before publication.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables rapid analysis of landing pages for SEO compliance, conversion structure, color contrast accessibility, and performance metrics with automated optimization suggestions and code snippets.111MIT
- AlicenseNot gradedqualityBmaintenanceMCP server and Claude skills for AI agents to build landing pages, run A/B experiments, and track first-party conversions. Lets agents onboard clients, create and publish pages, manage variants, and pull performance reports via the UXON API.12MIT
- AlicenseBqualityAmaintenanceMCP server for auditing product pages to determine AI shopping agent readiness, providing a 0–100 score and actionable fixes.115Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server for AI-assisted WordPress editing across 12 page builders. 172 tools for content management, page builder editing, WooCommerce, SEO analysis, accessibility scanning, and site intelligence. Edits native builder formats (Elementor, Bricks, Divi, Gutenberg, Beaver Builder, and 7 more) with duplicate-before-edit safety, optimistic locking, and surgical element-level operations7MIT