get_recommendation
get_recommendation MCP tool: the step-by-step plan to get cited on one prompt or in one local zone, with the evidence behind each step and its measured effect.
Updated 2026-10-19
get_recommendation returns the plan of one prompt or one local zone, step by step. It is the plan page of the dashboard's Action plan, in JSON.
A prompt plan starts with the brand's own site, then lists the sources to get on. A zone plan lists the directories and rankings cited for that zone. The map profile and the city page are missions of the content plan (list_content_plan). Every step carries its status, and once done, its effect.
When to use
Call it after list_recommendations, with a promptId from summary.promptsToConquer or a zoneKey from summary.zones. It answers "how do I get cited on this question?" with an ordered list an agent can work through: open the page, do the action, then call set_recommendation_status.
Input
| Field | Type | Default | Description |
|---|---|---|---|
projectId |
string (CUID) | required | Project to query. |
promptId |
string (CUID) | - | The plan of one prompt. Exactly one of promptId / zoneKey. |
zoneKey |
string | - | The plan of one local zone. Exactly one of promptId / zoneKey. |
Response
{
"success": true,
"type": "prompt",
"prompt": { "id": "clp1...", "text": "best ai visibility tool for freelancers" },
"visibility": 0,
"absentLlms": ["CHATGPT", "GEMINI"],
"steps": [
{
"id": "prompt:clp1...:fix",
"kind": "fix",
"url": "https://example.com/pricing",
"llms": ["CHATGPT"],
"answers": 4,
"status": "todo",
"doneAt": null,
"hasDraft": false,
"impact": null,
"tool": "run_page_fix"
},
{
"id": "source:https://flint.com/articles/best-ai-visibility-tracking-tools",
"kind": "source",
"action": "ranking",
"domain": "flint.com",
"url": "https://flint.com/articles/best-ai-visibility-tracking-tools",
"pageTitle": "Best AI visibility tracking tools",
"passage": "Mentionova: SaaS & fintech firms, 6 engines, alerts and citation gap analysis",
"competitors": ["Mentionova", "Peec AI", "Semrush"],
"publisher": null,
"backlinkPrice": 280,
"redditAngle": null,
"llms": ["CHATGPT", "GEMINI"],
"otherPromptIds": ["clp2..."],
"status": "done",
"doneAt": "2026-10-01T00:00:00.000Z",
"impact": { "before": 0, "after": 20 },
"tool": null
}
]
}
Page steps (kind):
create: no page of the site is cited, or even opened, on the prompt. Publish one that answers it. Done automatically when a generated page is published.fix: engines open this page on the prompt without citing it, the cheapest citation to win.toolpoints torun_page_fixwith thisurlaspageUrl: it lists what keeps Google and AI engines from reading the page. It is free on every crawled page, on every plan.silent: the page is cited but the answer does not name the brand in at least half of the cases. Name the brand in the passages engines quote, then mark the step done.
impact is the share of the prompt's answers that cite the brand before and since the step was done, in percent. It stays null until both sides have answers. For a zone plan, it is the share of the zone's maps showing the brand.
Errors: invalid_target (neither or both of promptId / zoneKey), prompt_not_found, zone_not_found, local_disabled.
Tips and patterns
passageis what the AI read on the source page, trimmed to 300 characters: quote it when asking the site owner to add you.otherPromptIdstells you which other prompts the same source unlocks. Doing it once checks it in every plan.hasDraft: truemeans a page was already generated for this prompt: publish it in the dashboard instead of writing another.- Re-read the plan a week after a step to see its
impact.
Related tools
list_recommendations: every action of the project, and the prompts and zones to open hereset_recommendation_status: mark a step done, excluded, or back to dorun_page_fix: list what to fix on the page of afixstep