remove_geo_audit_recommendation

remove_geo_audit_recommendation MCP tool: remove a custom recommendation from a GEO Audit by its id.

Updated 2026-09-21

remove_geo_audit_recommendation removes a recommendation from a report. A custom one (added via add_geo_audit_recommendation or by hand) is deleted. A generated one is frozen JSON, so it is removed from the report by hiding it, the same thing the app's own toggle does, and reversible. Works on a single GEO Audit and on a bulk campaign. Tenant-scoped write.

When to use

To drop a recommendation you don't want in the report: a custom one you added (pass its customRecoId) or a generated one that missed the mark (pass its hash). Both come from list_geo_audit_recommendations.

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.
customRecoId string The id of a custom recommendation (from custom[].id). Deletes it.
hash string The hash of a generated recommendation (from generated[].hash). Removes it from the report by hiding it.

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

{ "success": true, "auditId": "clx_audit_42", "bulkAuditId": null, "removed": "custom_deleted" }

removed says what actually happened: custom_deleted (a custom item was deleted) or generated_hidden (a generated item was hidden). A reference matching neither a custom id nor a generated hash returns item_not_found rather than a silent no-op.

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 first. list_geo_audit_recommendations gives you both handles: custom[].id and generated[].hash.
  • Hiding is reversible. set_geo_audit_recommendation_visibility with hidden: false puts a generated recommendation back. A deleted custom one is gone for good: re-add it.
  • Read removed instead of assuming: it tells you whether you deleted a custom item or hid a generated one.

Related tools

You can see where you stand today.

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