get_geo_audit

get_geo_audit MCP tool: fetch a single GEO Audit by id. Status and progress while running, full content once COMPLETED.

Updated 2026-09-20

get_geo_audit fetches a single GEO Audit (one-shot white-label audit) by id. While the audit is still running, the response carries the status, a progress counter and a hint about what the audit is waiting for. Once COMPLETED, the response includes the structured visibility metrics, the prompts actually played, the most cited domains, and the full frozen content: selected competitors, personas, recommendations, content ideas and the audit context.

When to use

After finding an audit with list_geo_audits, call this tool to read its content or to check what it is waiting for. The status field tells you where the audit is in its lifecycle, including whether it is parked at competitor selection (REVIEWING).

Read every figure from metrics. The same numbers appear in the generated recommendation prose ("0 mentions across 148 responses"), but that wording changes on every regeneration and is not a contract.

Input

Field Type Description
auditId string (CUID) The audit id returned by list_geo_audits. The tool returns audit_not_found if no audit with this id exists in the workspace.
include.pageContent boolean Include the scraped page markdown in auditContext.pages. Off by default (heavy field, several KB per page); withheld pages carry a markdownLength hint instead.
maxPageChars integer When include.pageContent is true, truncate each page's markdown to this many characters (sets markdownTruncated: true).
topSourcesLimit integer How many cited domains to return in topSources, most cited first. Default 20, max 100.

GEO Audits are workspace-scoped, so this tool takes no projectId.

Response

Still running

{
  "success": true,
  "auditId": "clx_audit_42",
  "status": "REVIEWING",
  "prospectUrl": "https://prospect.com",
  "domain": "prospect.com",
  "brandName": "Prospect",
  "bulkAuditId": null,
  "bulkLabel": null,
  "createdAt": "2026-06-20T09:00:00.000Z",
  "isComplete": false,
  "progress": { "received": 24, "expected": 24 },
  "message": "Scans done. The audit is paused at competitor selection — confirm/reject competitors before insights can be generated."
}

The message is status-specific. REVIEWING means the audit is waiting on competitor selection before it can move to insight generation.

Completed

{
  "success": true,
  "auditId": "clx_audit_42",
  "status": "COMPLETED",
  "prospectUrl": "https://prospect.com",
  "domain": "prospect.com",
  "brandName": "Prospect",
  "bulkAuditId": null,
  "bulkLabel": null,
  "createdAt": "2026-06-20T09:00:00.000Z",
  "isComplete": true,
  "metrics": {
    "totalResponses": 148,
    "brandMentions": 0,
    "visibilityScore": 0,
    "rank": 7,
    "competitorCount": 6,
    "promptsWithoutBrand": 20,
    "competitors": [
      { "name": "Acme", "mentions": 16, "share": 10.8 },
      { "name": "Globex", "mentions": 15, "share": 10.1 }
    ],
    "byLlm": [{ "llm": "CHATGPT", "responses": 50, "brandMentions": 0 }],
    "byPersona": [{ "personaId": "730b39cd", "responses": 30, "brandMentions": 0 }]
  },
  "prompts": [
    { "id": "clx_prompt_1", "text": "My skin feels tight, what should I use?", "personaId": "730b39cd", "responses": 6, "brandMentions": 0 }
  ],
  "topSources": [{ "domain": "doctissimo.fr", "citations": 23 }],
  "brandAliases": ["Prospect Inc"],
  "country": "US",
  "language": "en",
  "llms": ["CHATGPT", "PERPLEXITY"],
  "creditsCost": 24,
  "shareSlug": "prospect-9f3a",
  "reportUrl": "https://mentionable.ai/share/audit/prospect-9f3a",
  "selectedCompetitors": ["Acme", "Globex"],
  "personas": [ /* [{ id, name, description }] */ ],
  "recommendations": [ /* [{ category, severity, title, description, action, metric? }] */ ],
  "contentIdeas": [ /* [{ title, angle }] */ ],
  "auditContext": { /* { pages: [{ url, markdownLength }], siteMeta, scannedAt } — page markdown is opt-in via include.pageContent */ },
  "completedAt": "2026-06-20T09:12:00.000Z"
}

Field notes:

  • One response = one prompt × LLM × persona × occurrence. metrics.totalResponses counts them all.
  • visibilityScore is brandMentions / totalResponses as a percentage, one decimal.
  • rank is 1-based: 1 plus the number of curated competitors mentioned strictly more often than the brand. With no competitor mentioned more often, the brand ranks 1.
  • A competitor's mentions counts the responses it appears in, not the occurrences inside a response. Only curated competitors (selectedCompetitors) are counted, so the figures match the share report.
  • metrics.byPersona[].personaId maps onto personas[].id; null is the bucket of prompts with no persona. This is the breakdown that shows a brand visible to the general public and absent from the specialist's answers.
  • promptsWithoutBrand counts the prompts whose responses never mention the brand.
  • topSources aggregates the domains cited in the answers, most cited first, capped by topSourcesLimit.
  • domain is the prospect host without protocol, www. or trailing slash: the join key for an external prospect base.
  • reportUrl is absolute (the workspace's own domain in white-label, mentionable.ai otherwise), so you never concatenate shareSlug yourself.

Not found

{
  "success": false,
  "error": "audit_not_found",
  "message": "No GEO audit with this id exists in your workspace. Verify the auditId returned by list_geo_audits."
}

Tips and patterns

  • Branch on isComplete, not on status. metrics, prompts, topSources and the frozen content fields (recommendations, contentIdeas, …) only appear when isComplete: true. domain, bulkAuditId and bulkLabel are there from the start.
  • Never parse the prose. metrics is the contract; recommendation wording is not.
  • Read progress while SCANNING to estimate how close the audit is to REVIEWING.
  • REVIEWING needs a decision: confirming or rejecting competitors is handled by a dedicated write flow, not by this read tool.

Related tools

  • list_geo_audits: list every GEO Audit in the workspace (newest first) without polling individual ids.
  • get_page_audit: fetch a Page Audit, a different object.

You can see where you stand today.

Free trial. Start tracking your AI visibility, no credit card.