run_page_audit
run_page_audit MCP tool: optimize an existing page for one tracked prompt. The page is rewritten in its own voice with ranked changes tied to fan-out queries. 100 credits, async.
Updated 2026-09-29
run_page_audit optimizes an existing page of the brand for one tracked prompt. Mentionable reads the page as it is live, extracts the searches ChatGPT runs on the prompt (fan-out queries), then rewrites the page so the AI engines can cite it: same voice, same offers, plus what it lacks. The result is the complete page ready to paste, 5 to 7 ranked changes explaining why, and the passages to check on the live page.
The tool returns an auditId right away. The work runs asynchronously (typically 1 to 2 minutes): poll get_page_audit until status is COMPLETED.
Requires the
memberrole minimum. Thecustomerrole is rejected. The MCP is available on the Pro and Agency plans.
When to use
Use it when a page of the brand is close to being cited: the engines open it on a prompt but quote another source. list_page_audits shows what was already optimized; the app lists these pages under Pages to optimize. Pass a promptId when you know which question the page should win; without it, the tool picks the prompt where the engines open the page most without citing it.
Billing
Every plan is credit-based. run_page_audit charges 100 credits, debited from the workspace's monthly credit pool, with overage capped by the workspace's monthly overage cap. The fan-out extraction it runs when the prompt has none under 30 days old is included: no extra credit.
Credits are checked before anything starts, and the page is read before the charge: an unreachable page costs nothing.
Input
| Field | Type | Default | Description |
|---|---|---|---|
projectId |
string (CUID) | required | Project scope. |
pageUrl |
string (URL) | required | Full https:// URL of a publicly accessible page of the brand. |
promptId |
string (CUID) | the prompt where the engines open the page without citing it | Tracked prompt to optimize the page for. |
Response
Success: optimization queued
{
"success": true,
"auditId": "clx_page_42",
"status": "PENDING",
"promptId": "clx_prompt_7",
"creditsCharged": 100,
"remainingCredits": 2900,
"message": "Optimization queued. Poll get_page_audit with this auditId until status is COMPLETED (typically 1 to 2 minutes)."
}
remainingCredits is null for an uncapped workspace.
Errors
Every error has success: false and a machine code in error:
error |
Meaning |
|---|---|
insufficient_credits |
Out of credits or capped. Carries creditCost, remainingCredits, upgradeUrl. Nothing started. |
prompt_required |
No promptId given and no tracked prompt has met the page yet. Pass one (see list_prompts). |
prompt_not_found |
The promptId is not an active prompt of this project. |
fetch_failed |
The page could not be read (private, redirecting, blocking crawlers, no text). No credit charged. |
project_not_found |
The project does not exist. |
{
"success": false,
"error": "insufficient_credits",
"creditCost": 100,
"remainingCredits": 40,
"upgradeUrl": "/billing"
}
Tips and patterns
- Start from the gaps. Pages the engines open without citing are the cheapest citations to win: optimize those first.
- De-duplicate. Call
list_page_auditsfirst and skip a page already optimized for the same prompt. - Poll, don't block. Call
get_page_auditevery 15 to 20 seconds. The work is bound by the extraction and two writing calls, not by your polling. - Close the loop. Once the user has updated the page, the app's I applied the changes marks it and tracks the citations from the next scan on;
get_page_auditreturnsappliedAt.
Related tools
- get_page_audit: fetch the result.
- list_page_audits: see what was already optimized.
- list_prompts: find the
promptIdto target. - list_fan_outs: the searches behind a prompt.