list_geo_audit_recommendations

list_geo_audit_recommendations MCP tool: a GEO Audit's generated recommendations (with hash and hidden flag) and the custom ones added on top.

Updated 2026-09-21

list_geo_audit_recommendations returns the recommendations of a report: the AI-generated ones produced when the audit completed, and the custom ones an owner (or an agent) added on top. It works on a single GEO Audit and on a bulk campaign, whose recommendations are the segment-level ones every target report renders. Use it to read the current state before adding or removing custom recommendations with add_geo_audit_recommendation / remove_geo_audit_recommendation.

When to use

Before editing a GEO Audit's recommendations via the MCP, list them so you don't duplicate an existing one and so you have the id of a custom recommendation you want to remove. Read-only, tenant-scoped.

Input

Field Type Description
auditId string (CUID) A single GEO Audit, or a bulk campaign target (which resolves to its campaign). Exactly one of auditId / bulkAuditId.
bulkAuditId string (CUID) A bulk campaign, from list_bulk_audits. Exactly one of auditId / bulkAuditId.

GEO Audits are workspace-scoped, so this tool takes no projectId. Address a report with auditId or bulkAuditId, never both. On a bulk campaign the change applies to the shared settings template every target report renders, so one call covers the whole batch. Passing a campaign target's auditId resolves to its campaign for the same reason: a target has no settings of its own. The response always echoes the resolved target as auditId / bulkAuditId (one of them null).

Response

{
  "success": true,
  "auditId": "clx_audit_42",
  "generated": [
    {
      "category": "technical",
      "severity": "critical",
      "title": "Add FAQ schema to the pricing page",
      "description": "...",
      "metric": { "value": 0.42, "label": "of pages missing schema" },
      "hash": "1a2b3c4d",
      "hidden": false
    }
  ],
  "custom": [
    { "id": "cus_ab12cd34", "category": "content", "severity": "important", "title": "Publish a comparison page", "description": "..." }
  ]
}

Field notes:

  • generated recommendations are frozen at audit completion and have no stored id. Each carries a deterministic hash (derived from category + title) and a hidden flag reflecting the report's visibility settings.
  • custom recommendations each have a stable id (the handle to remove them).
  • category is technical | content | distribution; severity is critical | important | nice-to-have.

Errors

{ "success": false, "error": "target_required", "message": "Pass exactly one of auditId (a GEO audit) or bulkAuditId (a bulk campaign)." }
{ "success": false, "error": "audit_not_found", "message": "No GEO audit with this id exists in your workspace. ..." }
{ "success": false, "error": "bulk_audit_not_found", "message": "No bulk campaign with this id exists in your workspace. ..." }

Tips and patterns

  • List before you add to avoid near-duplicate recommendations.
  • Custom items carry an id, generated ones a hash. remove_geo_audit_recommendation takes either: the id deletes a custom item, the hash removes a generated one from the report by hiding it (reversible with set_geo_audit_recommendation_visibility).

Related tools

You can see where you stand today.

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