Lists the websites this organization audits, oldest first (the first one is the site the app shows by default; an account normally has exactly one), paginated by cursor (limit up to 200). Each site carries its configuration (url, name, max_pages, schedule, notify_emails, exclude_patterns, exclude_mode, ignore_rules) and its state: next_due_at (the day, 00:00 UTC, the audit queue picks it up; null when manual, off or paused by the system), last_run_id / last_run_at / last_health_score (the latest finished audit), cloudflare_detected, and the failure count (consecutive_failures, last_failure_reason, disabled_by_system: the system pauses the schedule after 5 failures in a row). Requires view access to Site Audit.
Escopo
seo_site_auditor:read
Permissão
Ver o módulo
Tool do MCP
seo_site_auditor_sites_listNa superfície completa; na compacta, mb_execute_operation com id: "seo_site_auditor.sites.list".
Custo declarado: até 201 leituras e 0 escritas por chamada (contam na cota diária).
Parâmetros
limitintegerqueryopcional
How many items this page brings at most (see the maximum and the default in the schema).
Padrão: 50
cursorstringqueryopcional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
Returns one audited site with its configuration (url, name, max_pages, schedule, notify_emails, exclude_patterns, exclude_mode, ignore_rules with the reason of each) and its state (next_due_at, last_run_id, last_run_at, last_health_score with last_run_coverage, the pages the latest audit could read: a score over very few pages says little, low_coverage, cloudflare_detected, consecutive_failures, last_failure_reason, disabled_by_system). Read its audits with seo_site_auditor.runs.list (site_id). Not found (audit_site_not_found) if the site does not exist in this organization. Requires view access to Site Audit.
Escopo
seo_site_auditor:read
Permissão
Ver o módulo
Tool do MCP
seo_site_auditor_sites_getNa superfície completa; na compacta, mb_execute_operation com id: "seo_site_auditor.sites.get".
Custo declarado: até 1 leituras e 0 escritas por chamada (contam na cota diária).
Parâmetros
site_idstringrotaobrigatório
Audited site id (id from seo_site_auditor.sites.list).
Resposta
idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum
Valores: skip-crawl, crawl-but-ignore
ignore_rulesarray<object>
last_run_idstring | null
The latest finished audit (seo_site_auditor.runs.get).
last_run_atnumber | null
last_health_scorenumber | null
Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.
last_run_coverageobject | null
How much of the site the latest finished audit read; null without one.
cloudflare_detectedboolean | null
Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).
Adds the website this organization audits: url (https; a bare domain gets https://), and optionally name (default: the domain), max_pages (1–500, default 100), schedule (default, as in the app: weekly on Mondays and active, so the site enters MB Suite's audit queue at once and is crawled from Cloud Run every week; next_due_at in the answer says the day; send frequency manual to audit only on demand), notify_emails (up to 10 addresses that get the results by email after every audit), exclude_patterns and exclude_mode. It does NOT audit right away: the first audit runs on the next scheduled day, or start one with seo_site_auditor.runs.trigger. After answering, MB Suite checks once in the background whether the site is behind Cloudflare (one HTTP request to the site; cloudflare_detected). Each account audits one site: if the organization already has one it fails with audit_site_exists (409, with its site_id): change it with seo_site_auditor.sites.update. Fails with invalid_site_url (400) when the address is not a valid https domain or points inside a private network. Returns the new site. Requires edit access to Site Audit.
Escopo
seo_site_auditor:write
Permissão
Editar no módulo
Tool do MCP
seo_site_auditor_sites_createNa superfície completa; na compacta, mb_execute_operation com id: "seo_site_auditor.sites.create".
Custo declarado: até 1 leituras e 2 escritas por chamada (contam na cota diária).
Parâmetros
urlstringcorpoobrigatório
The site's address, https only. A bare domain gets https:// (example.com → https://example.com); hosts that do not resolve to the public internet are rejected.
namestringcorpoopcional
Display name (default: the domain).
max_pagesintegercorpoopcional
Pages crawled per audit, 1–500 (default 100; the app offers 10, 25, 50, 100 and 500).
Padrão: 100
scheduleobjectcorpoopcional
When it is audited. Default, as in the app: weekly on Mondays and active, so the site enters MB Suite's audit queue right away (next_due_at in the answer says when; each audit crawls the site from Cloud Run and emails notify_emails). Send frequency manual (or enabled false) to audit it only on demand.
notify_emailsarray<string (email)>corpoopcional
Who gets the email with the results after every audit (up to 10 addresses; they need not be members).
Padrão: []
exclude_patternsarray<string>corpoopcional
URL patterns left out of the audit, e.g. /blog/* or *?page=* (up to 50).
exclude_modeenumcorpoopcional
skip-crawl (default: excluded URLs are not even visited) or crawl-but-ignore (visited, but they raise no issues).
Valores: skip-crawl, crawl-but-ignore
Resposta
idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum
Valores: skip-crawl, crawl-but-ignore
ignore_rulesarray<object>
last_run_idstring | null
The latest finished audit (seo_site_auditor.runs.get).
last_run_atnumber | null
last_health_scorenumber | null
Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.
last_run_coverageobject | null
How much of the site the latest finished audit read; null without one.
cloudflare_detectedboolean | null
Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).
Changes one or more settings of an audited site: url, name, max_pages (1–500), schedule (replaced whole: frequency manual/weekly/monthly, day_of_week or day_of_month, enabled), notify_emails (up to 10, replaced whole), exclude_patterns (up to 50, replaced whole; each starts with / or *) and exclude_mode. Only what actually changes is written: a new schedule moves next_due_at to its next day (and switching it on clears the failure count of a site the system paused); a new url forgets how the site was crawled last time and checks Cloudflare again. Changes apply from the next audit; past audits keep their results. Sending the current values changes nothing. Returns the site. Errors: audit_site_not_found (404), invalid_site_url (400). Requires edit access to Site Audit.
Escopo
seo_site_auditor:write
Permissão
Editar no módulo
Tool do MCP
seo_site_auditor_sites_updateNa superfície completa; na compacta, mb_execute_operation com id: "seo_site_auditor.sites.update".
Custo declarado: até 1 leituras e 2 escritas por chamada (contam na cota diária).
Parâmetros
site_idstringrotaobrigatório
Audited site id (id from seo_site_auditor.sites.list).
urlstringcorpoopcional
New address (https). Changing it forgets how the site was crawled last time.
namestringcorpoopcional
New display name.
max_pagesintegercorpoopcional
Pages crawled per audit, 1–500.
scheduleobjectcorpoopcional
Replaces the whole schedule. Turning it on again also clears the failure count of a site the system paused.
notify_emailsarray<string (email)>corpoopcional
Replaces the whole list (up to 10 addresses).
exclude_patternsarray<string>corpoopcional
Replaces the whole list (up to 50 patterns).
exclude_modeenumcorpoopcional
skip-crawl (excluded URLs are not visited) or crawl-but-ignore (visited, but they raise no issues).
Valores: skip-crawl, crawl-but-ignore
Resposta
idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum
Valores: skip-crawl, crawl-but-ignore
ignore_rulesarray<object>
last_run_idstring | null
The latest finished audit (seo_site_auditor.runs.get).
last_run_atnumber | null
last_health_scorenumber | null
Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.
last_run_coverageobject | null
How much of the site the latest finished audit read; null without one.
cloudflare_detectedboolean | null
Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).
Deletes an audited site together with ALL its audits (their issues and crawled pages). The site's configuration (url, schedule, notify emails, exclusions and intentional rules with their reasons) stays 30 days in the trash and can be restored, but the audit history does not come back: restoring brings the site back with no audits, its next scheduled audit computed from the restore day (409 audit_site_exists if the account has another site by then). Outside the screen it always needs a dry run (which counts the audits that go with it) and its confirm_token. A site with an audit still queued or running cannot be deleted (audit_in_progress, 409). Not found (audit_site_not_found) if it does not exist. Requires edit access to Site Audit and, for a credential, deletion enabled.
Pede confirmação: primeiro dry_run: true (prévia e confirm_token, válido por 10 minutos e por uma única execução), depois o mesmo corpo com confirm_token. Em algumas poucas, só com certos dados: a descrição diz quando. Por que e como: Prévia e confirmação.
Escopo
seo_site_auditor:writee «Permitir exclusões» (seo_site_auditor:delete no OAuth)
Permissão
Editar no módulo
Tool do MCP
seo_site_auditor_sites_deleteNa superfície completa; na compacta, mb_execute_operation com id: "seo_site_auditor.sites.delete".
Custo declarado: até 100 leituras e 250 escritas por chamada (contam na cota diária).
Parâmetros
site_idstringrotaobrigatório
Audited site id (id from seo_site_auditor.sites.list).
Resposta
oktrue
runs_deletednumber
trash_item_idstring
The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.
trash_item_idsarray<string>
Only when the deletion left more than one copy: all of them, the first being trash_item_id.
trash_expires_atnumber
When the copy leaves the trash for good (epoch ms): 30 days after the deletion.