Postclick by PPC.io: Landing Page CRO
REMOTE · MCP.PPC.IO · SCANNED SEP 29
Landing-page CRO: audit pages, rewrite copy, answer buyer objections, design and build via MCP.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5174 tokens (~178/item across 29 items; 21 tools + 8 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management57
- Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage94
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 83% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
How do I install the Postclick by PPC.io: Landing Page CRO MCP server?
Postclick by PPC.io: Landing Page CRO is a hosted endpoint at https://mcp.ppc.io/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.ppc.io
claude mcp add --transport http io-ppc-postclick-landing-page-cro 'https://mcp.ppc.io/'
{
"mcpServers": {
"io-ppc-postclick-landing-page-cro": {
"url": "https://mcp.ppc.io/"
}
}
} {
"servers": {
"io-ppc-postclick-landing-page-cro": {
"type": "http",
"url": "https://mcp.ppc.io/"
}
}
} [mcp_servers.io-ppc-postclick-landing-page-cro] url = "https://mcp.ppc.io/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-ppc-postclick-landing-page-cro": {
"type": "remote",
"url": "https://mcp.ppc.io/",
"enabled": true
}
}
} openclaw mcp add io-ppc-postclick-landing-page-cro --url 'https://mcp.ppc.io/' --transport streamable-http
mcp_servers:
io-ppc-postclick-landing-page-cro:
url: "https://mcp.ppc.io/" {
"McpServers": {
"io-ppc-postclick-landing-page-cro": {
"Transport": "http",
"Url": "https://mcp.ppc.io/"
}
}
} assistant mcp add io-ppc-postclick-landing-page-cro -t streamable-http -u 'https://mcp.ppc.io/'
{
"mcpServers": {
"io-ppc-postclick-landing-page-cro": {
"type": "http",
"url": "https://mcp.ppc.io/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 29 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 29 Sept 2026 · Probed https://mcp.ppc.io
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=ppc.io | CN=WE1,O=Google Trust Services,C=US | 18 Aug 2026 | 16 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 5c786cfceced23a613b8e881bf535afc |
| SANs: ppc.io, mcp.ppc.io, *.mcp.ppc.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.ppc.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| ppc.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.ppc.io/.well-known/oauth-protected-resource"
Bearer resource_metadata="https://mcp.ppc.io/.well-known/oauth-protected-resource" Protected resource metadata
| Document | https://mcp.ppc.io/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.ppc.io |
| Authorisation server | https://mcp.ppc.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.ppc.io | Verified | 200 | |
| http (plaintext) | http://mcp.ppc.io | HTTPS enforced | 301 | https://mcp.ppc.io/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ask_audit Ask a question about an audit ~454
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| topic | string | yes | Which part of the audit answers the question. buyers · the_pitch · trust · competitors · copy · leaks · the_page · technical. |
No output schema declared.
No examples provided.
audit_page Audit a landing page ~183
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 | Type | Req | Description |
|---|---|---|---|
| context | string | – | 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 inte… |
| url | string | yes | The live landing page URL to audit. |
No output schema declared.
No examples provided.
build_page Build a design into a real page ~90
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| concept_id | string | yes | From get_concepts. |
| direction | string | – | Optional plain-English steer for the build. |
No output schema declared.
No examples provided.
check_balance Check my credits and plan ~49
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
describe See everything in my Postclick account ~47
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
export_page Download a built page as files ~211
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 | Type | Req | Description |
|---|---|---|---|
| build_run_id | string | yes | – |
| platform | string | – | Where the user's site lives. Omit if unknown and the instructions will assume nothing. |
No output schema declared.
No examples provided.
fetch Open one audit, design or report ~353
Free. Reads any single thing by its address, which looks like postclick://audit/<id> 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 | Type | Req | Description |
|---|---|---|---|
| expand | string | – | 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 | string | – | Comma separated field names, when you only need a few. Left out, you get the useful ones. |
| id | string | – | Source ID returned by search. Alias of uri for ChatGPT retrieval. |
| uri | string | – | The address, like postclick://audit/<id>. A bare id works too and will be looked up. |
No output schema declared.
No examples provided.
generate_concepts Design new versions of a page ~152
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| count | integer | – | 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 cou… |
| direction | string | – | Optional plain-English creative steer. Honoured above other design choices. |
No output schema declared.
No examples provided.
get_asset Get a design or screenshot image ~283
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:<mime>;base64,<bytes>. 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 | Type | Req | Description |
|---|---|---|---|
| as | string | – | `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 | string | yes | The id from a picture field, like concept:<id>:image. |
| max_width | integer | – | How wide the picture comes back when you ask for bytes. 1024 by default, which is readable in a report. Smaller is cheaper. |
No output schema declared.
No examples provided.
get_audit Check how an audit is going ~130
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| wait | integer | – | 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 aga… |
No output schema declared.
No examples provided.
get_audit_report Read the full audit report ~120
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| topic | string | – | 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. |
No output schema declared.
No examples provided.
get_build Check how a page build is going ~262
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 | Type | Req | Description |
|---|---|---|---|
| build_run_id | string | yes | – |
| include_html | boolean | – | Return the full page HTML. Large. Default false. |
| wait | integer | – | 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 aga… |
No output schema declared.
No examples provided.
get_competitors Who is bidding against this page ~222
Costs nothing. Returns the competitor layer of a finished audit: the rivals bidding on the same clicks, the live ads Google is serving for each of them with the keyword, search volume and CPC behind every one, the landing pages those ads click to, which rival advertises most, the advertisers currently on this page's own keyword, and the customer's own paid keyword count. The ad and keyword numbers are measured from the DataForSEO ads index, not written by a model, so they are safe to quote as figures. The rival page summaries and the head-to-head read ARE written by the audit and are judgement, not measurement. Rival page captures are attached where the scan reached them. Needs a completed audit. An audit that found nobody returns that plainly, which is a real answer and not a failure. Older audits carry no ad data at all. ask_audit with topic:competitors is the one for the written comparison; this is the one for the numbers. Safe to call repeatedly and it spends no credits.
| Name | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
No output schema declared.
No examples provided.
get_concepts Show the page designs ~414
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | yes | – |
| concept_id | string | – | Optional. Given one, returns that design as its full stack of bands in page order instead of one opening screen per design. |
| wait | integer | – | 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 aga… |
No output schema declared.
No examples provided.
get_notes Read my saved notes ~75
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 | Type | Req | Description |
|---|---|---|---|
| subject_uri | string | – | Limit to one record's notes. Leave it out for all of them. |
No output schema declared.
No examples provided.
list_cro_skills Find a landing page skill ~51
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
publish_page Publish a report to a shareable link ~301
Free. Takes HTML you wrote and hosts it at postclick.ppc.io/r/<name>, 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 | Type | Req | Description |
|---|---|---|---|
| html | string | yes | The whole page with inline CSS. Use image URLs from get_asset; avoid embedding large image data. |
| slug | string | – | 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. |
| subject_uri | string | – | The address of the audit or project it was built from, if there is one. |
| title | string | – | What the report is called. |
No output schema declared.
No examples provided.
run_cro_skill Improve my landing page ~418
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 | Type | Req | Description |
|---|---|---|---|
| audit_id | string | – | 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. |
| context | string | – | The user's ad copy, audience, constraints or desired output. Pass known context; do not require an interview. |
| latest | boolean | – | 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. |
| page | string | – | Page URL, domain or client name. Leave out when audit_id is known or the user explicitly requested latest. |
| section | string | – | For copy rewrites, defaults to opening (headline, supporting line and button). Use page when the user asks for other sections or the whole page. |
| skill | string | 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; pos… |
No output schema declared.
No examples provided.
save_note Save a note on an audit or design ~179
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 | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Your own name for this field. |
| subject_uri | string | yes | The address of the thing this is about, like postclick://audit/<id>. |
| value | string|number|boolean|object|array|null | – | Anything: a string, a number, a list, an object. |
No output schema declared.
No examples provided.
search Search my audits, designs and reports ~221
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 | Type | Req | Description |
|---|---|---|---|
| kind | string | – | 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 | integer | – | How many to return. 20 by default. |
| query | string | – | 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 | string | – | Only things newer than this date, as YYYY-MM-DD. |
No output schema declared.
No examples provided.
share_page Create a public link to share ~360
Free. Mints a public no-login link that anyone can open, including someone with no account. THIS IS THE TOOL FOR 'send me the designs' or 'I want to forward this to my client'. Never hand over a dashboard or app link for that: the recipient hits a login wall and sees nothing. Pass concept_id to share a DESIGN, which comes back as one page with every band stacked in order, so it reads as a whole design rather than a folder of separate images, and it prints to PDF from the browser if they want a file. Pass build_run_id to share a finished BUILT page. One or the other, not both. Pass audit_id to share the AUDIT itself, and section:"competitors" with it to open the link on the Competitors section rather than the whole report. export_page is the one for a user who wants the source files instead. For a build, minting a new link revokes the previous one, so reuse the link rather than calling this repeatedly. A design link is stable and safe to call again.
| Name | Type | Req | Description |
|---|---|---|---|
| audit_id | string | – | Share an AUDIT. From audit_page or get_audit. Use this when someone wants to forward the findings themselves rather than a design or a built page. |
| build_run_id | string | – | Share a finished built page. From build_page or get_build. |
| concept_id | string | – | Share a design. From get_concepts. This is the one to use when someone wants to show designs to a client. |
| section | string | – | Which part of the audit the link opens. Only with audit_id. `competitors` opens on who is bidding against the page, for forwarding that one answer. Defaults to full. |
No output schema declared.
No examples provided.
What is the Postclick by PPC.io: Landing Page CRO MCP server?
Postclick by PPC.io: Landing Page CRO is an MCP server listed in the public MCP registry as io.ppc/postclick-landing-page-cro. Landing-page CRO: audit pages, rewrite copy, answer buyer objections, design and build via MCP. This page covers its hosted endpoint (https://mcp.ppc.io).
Is the Postclick by PPC.io: Landing Page CRO MCP server safe to use?
Postclick by PPC.io: Landing Page CRO scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Postclick by PPC.io: Landing Page CRO MCP server expose?
Postclick by PPC.io: Landing Page CRO exposes 21 tools: list_cro_skills, run_cro_skill, check_balance, audit_page, get_audit, and 16 more. Their descriptions and schemas cost roughly 4,575 tokens of context every time the server is loaded.
Does the Postclick by PPC.io: Landing Page CRO MCP server require authentication?
Yes. Postclick by PPC.io: Landing Page CRO asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Postclick by PPC.io: Landing Page CRO MCP server still maintained?
Postclick by PPC.io: Landing Page CRO is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.