whats_next
Not sure what to do next? whats_next looks at where your project stands — crawl, audits, Search Console, reports — and tells you the single best next…
Cost: Free (0 credits).
whats_next is the guide for non-experts. It looks at where a project stands — whether it has been crawled, whether Google Search Console is connected, whether you have pulled performance data — and tells you the single best next step, a short reason, and the two or three steps that come after.
What it does
Pass a project_id to route that project; omit it and it routes your only project, or lists them and asks which one if you track several. It reads the project's state through the same tenant-scoped data the tools use — your latest crawl_site and pull_gsc_data runs, whether Search Console is connected, whether that connection is still alive, and whether the domain resolves — then walks a ladder, taking the first rung that applies:
- No project yet → run
setup_project. - The domain does not resolve → nothing to measure yet. This rung names no paid tool at all, because every recommendation below it would be work against a host that is not there.
- No crawl yet → run
crawl_site(works without Search Console). - Crawl ready, Search Console never used → run the audits:
audit_onpage,audit_tech,audit_schema. Connecting Search Console withconnect_gscis optional and never a barrier. - Old Search Console data but no live connection →
connect_gsc, which is free. Frozen rows cannot be refreshed, so nothing that reads them is offered. - Connected, but the credential is dead →
connect_gscagain, and the discovery tools are deliberately withheld: they read a pull this project cannot take. - Connected, but no property is mapped →
list_gsc_properties, thentrack_gsc_property. Both are free. The Google account works, so this rung does not send you round another OAuth loop — what is missing is the mapping, and until it exists a Search Console pull cannot run. - Connected, nothing pulled → run
pull_gsc_data. - A pull or a crawl has gone stale → refresh that one first, so the numbers describe the site as it is now.
- Everything fresh, but nothing analysed yet →
find_quick_winsfirst: it reads the Search Console data you already pulled and names the pages closest to moving up. A report is worth generating once there are findings to put in it. - Everything fresh → you're all set:
generate_reportfor a shareable summary, and themonthly-routineprompt to keep it up to date.
"Rows were pulled once" is not "the link is live"
The two used to be the same signal, and the difference is what the middle of that ladder is for. A succeeded pull is a fact about the past: it outlives a disconnect, an unmapped property and a deleted Google account. A project holding one such pull and no connection was told it was all set and pointed at a paid report — while the free reconnection that was the real next step went unmentioned.
So liveness is now read separately, and a project that cannot refresh its Search Console data is never called all set, however fresh the frozen rows look.
Every step says what it costs
The primary step and each line of what follows carry their own price — free, or the credits that tool charges. This tool is for the reader who does not already know the price list, and a list that named a free step and a paid one in the same breath left them nothing to choose with.
The figures are read from the same signed cost table the tools charge from, never restated here, and a tool priced per unit shows the range a call can really cost rather than a unit price no call ever pays. A step that is not a priced tool — a prompt, or a note about coming back later — shows no price rather than a guessed one.
Example
Ask your MCP client in plain language:
What should I do next with my example.com project?
Input
| Field | Type | Required | Description |
|---|---|---|---|
project_id | string (uuid) | No | Optional project to route from (from setup_project / list_projects). Omit it and whats_next routes your only project; if you track several, it lists them and asks which one. |
Returns
One clear next step for the project, a short reason, and the next two or three steps — all in plain language, naming the exact tools to run and what each one costs. An archived project is refused rather than routed, and a project_id that is not yours is reported exactly like an id that does not exist.
generate_report
Generate a shareable HTML SEO report for a project from its latest crawl and Search Console data, and get a public link to share with clients or…
list_gsc_properties
List the Search Console properties on your connected Google accounts: permission level, whether SeoGrep can query each one, and which project reads it.