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.
Alcance
seo_site_auditor:read
Permiso
Ver el módulo
Tool del MCP
seo_site_auditor_sites_listEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.list".
Costo declarado: hasta 201 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
limitintegerqueryopcional
How many items this page brings at most (see the maximum and the default in the schema).
Por defecto: 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.
Alcance
seo_site_auditor:read
Permiso
Ver el módulo
Tool del MCP
seo_site_auditor_sites_getEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.get".
Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
site_idstringrutarequerido
Audited site id (id from seo_site_auditor.sites.list).
Respuesta
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.
Alcance
seo_site_auditor:write
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_createEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.create".
Costo declarado: hasta 1 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).
Parámetros
urlstringcuerporequerido
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.
namestringcuerpoopcional
Display name (default: the domain).
max_pagesintegercuerpoopcional
Pages crawled per audit, 1–500 (default 100; the app offers 10, 25, 50, 100 and 500).
Por defecto: 100
scheduleobjectcuerpoopcional
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)>cuerpoopcional
Who gets the email with the results after every audit (up to 10 addresses; they need not be members).
Por defecto: []
exclude_patternsarray<string>cuerpoopcional
URL patterns left out of the audit, e.g. /blog/* or *?page=* (up to 50).
exclude_modeenumcuerpoopcional
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
Respuesta
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.
Alcance
seo_site_auditor:write
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.update".
Costo declarado: hasta 1 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).
Parámetros
site_idstringrutarequerido
Audited site id (id from seo_site_auditor.sites.list).
urlstringcuerpoopcional
New address (https). Changing it forgets how the site was crawled last time.
namestringcuerpoopcional
New display name.
max_pagesintegercuerpoopcional
Pages crawled per audit, 1–500.
scheduleobjectcuerpoopcional
Replaces the whole schedule. Turning it on again also clears the failure count of a site the system paused.
notify_emailsarray<string (email)>cuerpoopcional
Replaces the whole list (up to 10 addresses).
exclude_patternsarray<string>cuerpoopcional
Replaces the whole list (up to 50 patterns).
exclude_modeenumcuerpoopcional
skip-crawl (excluded URLs are not visited) or crawl-but-ignore (visited, but they raise no issues).
Valores: skip-crawl, crawl-but-ignore
Respuesta
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.
Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.
Alcance
seo_site_auditor:writey «Permitir eliminar» (seo_site_auditor:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.delete".
Costo declarado: hasta 100 lecturas y 250 escrituras por llamada (cuentan en el cupo diario).
Parámetros
site_idstringrutarequerido
Audited site id (id from seo_site_auditor.sites.list).
Respuesta
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.