Serveur MCP

pageaudit

online.pageaudit/pageaudit
Outils développeur Marketing et publicité Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Audits websites for technical SEO and related metadata, returns evidence and fixes, and supports repeat audits, patches, monitoring, and SEO micro-tools.

api_index
API index
Discovers the whole PageAudit API (self-describing index).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
audit_url
Audit URL
Audits a URL: SEO (meta and X-Robots-Tag, HTML and Link canonical), JSON-LD parsing, robots.txt decided per crawler for this path (Googlebot, Bingbot, AI search and training crawlers), real-user Core Web Vitals from the Chrome UX Report, llms.txt, security.txt, API catalog, function-matched well-known files, favicon response and missing-page probe. A firewall or rate limit answering instead of the page comes back as 502 `target_blocked`, never as a score. Returns evidence, limits and fixes without a tab; not a security/accessibility certification. This is the product for agents. Past the IP's daily allowance the response is **402 with `accepts[]`** and `code: allowance_spent` — pay and repeat the same call. There is no captcha: people and agents pay the same way. The free alternative: a person signs in with an account to get the trial.
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'absolute URL to audit'}, 'guest_token': {'type': 'string', 'description': 'optional pa_…'}}}
billing
Billing
Free plan, prices, x402 parameters and the trial offer: an account gets 90 days without paywall from its first use (`trial` field; with a session it shows the state).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
contact
Contact
Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s per network (one that arrives sooner waits its turn). One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). No captcha, no account, no payment. One message every 10 seconds per network: one that arrives sooner waits its turn and then goes out — no error. The message reaches the team by e-mail, with `email` as the reply address.
Schéma d’entrée
{'type': 'object', 'required': ['name', 'email', 'message'], 'properties': {'name': {'type': 'string', 'description': 'What to call the person writing.'}, 'site': {'type': 'string', 'description': 'Website of who is proposing.'}, 'tipo': {'enum': ['patrocinio', 'parceria', 'anuncio'], 'type': 'string', 'description': 'Proposal: `patrocinio`, `parceria` or `anuncio`. Turns on the fields below.'}, 'email': {'type': 'string', 'description': 'Where to reply.'}, 'espaco': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Placement ids from `GET /api/partners`, up to 6.'}, 'duracao': {'enum': ['30', '90', '365'], 'type': 'string', 'description': 'Exposure in days: `30`, `90` or `365`.'}, 'empresa': {'type': 'string', 'description': 'Who is proposing, when it is a company.'}, 'message': {'type': 'string', 'description': 'What you want to say.'}, 'orcamento': {'enum': ['ate_100', '100_500', '500_2000', '2000_mais', 'a_combinar'], 'type': 'string', 'description': '`ate_100`, `100_500`, `500_2000`, `2000_mais` or `a_combinar`.'}, 'pagamento': {'enum': ['usdc', 'deposito', 'a_combinar'], 'type': 'string', 'description': '`usdc`, `deposito` or `a_combinar`.'}}}
create_guest
Create guest
Creates a guest token pa_… for the tab workspace. Keep the token: it is the identity of the tabs and of the audits tied to them.
Schéma d’entrée
{'type': 'object', 'properties': {}}
create_tab
Create tab
Opens a tab for a URL in the workspace. Past the free tab allowance it answers 402 with `accepts[]`: pay and repeat.
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'url'], 'properties': {'url': {'type': 'string', 'description': 'The URL the tab will follow.'}, 'alias': {'type': 'string', 'description': 'Label to recognise the tab in the list.'}, 'guest_token': {'type': 'string'}}}
embed_snippet
Embed snippet
The embeddable widget's snippet, already assembled with the site's name and colour — one script tag, no account, no lead capture. One script tag puts the audit form on your own site, with your name and colour, and no account or key. Send the same query you would send to `/embed` and the answer comes back with `snippet` already assembled. The widget never asks the visitor for an e-mail.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'optional URL to pre-fill'}, 'brand': {'type': 'string', 'description': 'site name shown above the form'}, 'color': {'type': 'string', 'description': 'accent colour in hex'}, 'theme': {'type': 'string', 'description': 'auto, light or dark'}}}
get_audit
Get audit
Re-reads an audit already made, with `fixes` (the ready fix for each finding). Re-reading costs nothing and does not count against the allowance — the page's HTML is not kept, but the report is.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'Audit ID, from `Audit.id`.'}, 'guest_token': {'type': 'string'}}}
get_badge
Get badge
Metadata and markdown of the SVG badge of a shared report.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': '24-char public slug'}}}
get_patch
Get patch
The consolidated patch of an audit: <head> block to paste, files to create and templates with placeholders. No model — only facts from the page. Each finding becomes a fix in one of three classes: `deterministico` (comes whole from what the page declares: final URL, title, description, OG), `molde` (a tag with a marked placeholder, like `{{TITULO}}`, and the suggested source) or `sem_patch` (a decision or infrastructure, with the instruction). Nothing is invented by a model.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'Audit ID, from `Audit.id`.'}, 'guest_token': {'type': 'string'}}}
get_tool
Get tool
Copy and checks of one micro-tool by slug (e.g. title-tag-checker).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'tool slug'}}}
health
Health
Liveness and the commit deployed right now — it is how the smoke waits for its own deploy.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
lab_result
Lab result
The lab tests of an audit (mobile and desktop): running, finished with scores, metrics and biggest savings, or failed. With wait (up to 25) it answers as soon as a running test finishes. Long-poll: with `wait` the answer comes as soon as a running test finishes, or after `wait` seconds with `status: running`. Repeat until it is not running.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'audit id'}, 'wait': {'type': 'number', 'description': 'seconds to wait for a running test, 0–25'}, 'guest_token': {'type': 'string'}}}
lab_test
Lab test
Starts a lab test of an audit's page: Lighthouse run by Google PageSpeed Insights (performance, accessibility, best practices, SEO). Answers 202 at once; the test takes ~25 s to 2+ minutes — then read it with lab_result. Does not change the audit score. Answers **202** at once; the test runs for ~25 s to over 2 minutes and its summary is stored in the audit (`summary.lab.<strategy>`), so it comes back in `GET /api/audits/:id`, in the tab and in the shared report. It does not change the audit score. Calling again while the same strategy is running does not start a second test. Limits: 4 tests at a time on the server, 6 per network per hour and 500 per day for the whole product. Free: no x402 charge.
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'audit id'}, 'strategy': {'type': 'string', 'description': 'mobile (default) or desktop'}, 'guest_token': {'type': 'string'}}}
list_tabs
List tabs
Lists the owner's tabs (guest or session). One call draws the whole screen: tabs, the focused tab, its last report, remaining allowance and prices.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['guest_token'], 'properties': {'guest_token': {'type': 'string'}}}
list_tools
List tools
Lists the micro-tools (title, meta, canonical, OG, JSON-LD…).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
pricing
Pricing
Current public prices and free allowances; no charge.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
run_tab
Run tab
Re-audits the tab's URL. Consumes the same daily allowance as `POST /api/audit` — past it, 402 with `accepts[]`.
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'ID of the tab to re-audit.'}, 'guest_token': {'type': 'string'}}}
tab_history
Tab history
The tab's previous runs and what changed between each one and the one before it (score delta, findings that appeared and that disappeared). Every run has always been kept; this is where you read the series. Each entry carries the score, the counts and a `change` with the point delta and the findings that appeared (`broke`) or disappeared (`fixed`) since the previous run — compared by finding code, never by message. Runs older than the watch feature are matched by URL.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id'], 'properties': {'id': {'type': 'string', 'description': 'ID of the tab whose runs you want.'}, 'limit': {'type': 'number', 'description': 'how many runs, newest first (default 20, max 100)'}, 'guest_token': {'type': 'string'}}}
watch_tab
Watch tab
Turns the daily watch on or off for a tab: it re-audits the page once a day and e-mails when the score drops or a new error/warning appears. Needs the signed-in account (its browser session cookie); a guest token gets 403 `account_required`. With `monitor: true` the page is re-audited once a day and an e-mail goes out when the score drops or a new error/warning appears — never on an improvement. Watching needs an account (the alert has to reach someone) and each account watches a limited number of pages.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['guest_token', 'id', 'monitor'], 'properties': {'id': {'type': 'string', 'description': 'ID of the tab to change.'}, 'monitor': {'type': 'boolean', 'description': 'true watches, false stops watching'}, 'guest_token': {'type': 'string', 'description': 'guest pa_… — refused: a guest has no e-mail to warn'}, 'monitor_email': {'type': 'string', 'description': 'where the alert goes; empty = account e-mail'}}}
Modifié
pricing
29 September 2026 02:59
Modifié
contact
29 September 2026 02:59
Modifié
billing
29 September 2026 02:59
Modifié
embed_snippet
29 September 2026 02:59
Modifié
get_badge
29 September 2026 02:59
Modifié
get_patch
29 September 2026 02:59
Modifié
get_audit
29 September 2026 02:59
Modifié
lab_result
29 September 2026 02:59
Modifié
lab_test
29 September 2026 02:59
Modifié
watch_tab
29 September 2026 02:59
Modifié
tab_history
29 September 2026 02:59
Modifié
run_tab
29 September 2026 02:59
Modifié
create_tab
29 September 2026 02:59
Modifié
list_tabs
29 September 2026 02:59
Modifié
create_guest
29 September 2026 02:59
Modifié
audit_url
29 September 2026 02:59
Modifié
get_tool
29 September 2026 02:59
Modifié
list_tools
29 September 2026 02:59
Modifié
health
29 September 2026 02:59
Modifié
api_index
29 September 2026 02:59
Modifié
contact
25 September 2026 02:59
Modifié
billing
25 September 2026 02:59
Modifié
embed_snippet
25 September 2026 02:59
Modifié
get_patch
25 September 2026 02:59
Modifié
get_audit
25 September 2026 02:59
Ajouté
lab_result
25 September 2026 02:59
Ajouté
lab_test
25 September 2026 02:59
Modifié
watch_tab
25 September 2026 02:59
Modifié
tab_history
25 September 2026 02:59
Modifié
run_tab
25 September 2026 02:59