Check your local SEO setup and fix what is missing
Run this when setup is incomplete or a Google-backed report fails unexpectedly. The checks stay on your machine and tell you exactly which local setting needs attention.
Run this report from the CLI, an MCP client, or application code. Every surface uses the same report definition and returns the same evidence. JSON is the source of truth; Markdown makes it readable without hiding dates, limits, warnings, or skipped work.
What this report helps you decide
Is this machine ready to run reports for the selected project?
- Sign-in, project selection, or provider-backed reports are failing.
- A fresh installation needs a quick readiness check.
Command facts
- Report id
setup-check- Execution
Local process- Outputs
JSON and Markdown- Example parameters
No parameters- Agent discovery
seo reports describe setup-check --json- Interactive prompts
Human CLI commands only
When this report is not the right tool
These cases need a different report, more evidence, or a human decision. Do not force this report to answer a question its data cannot support.
- Google sign-in and the local project are working and you need to find SEO problems on the site itself. Recommended report: Crawl a site for technical SEO issues. Run a site crawl. It fetches site evidence and applies the technical checks. Setup check only verifies the local configuration and access needed to run other reports.
- The setup checks pass but a provider still returns missing, delayed, partial, or unexpected data. No automated setup report can recover data that the provider did not return. Review the selected property, date range, provider limits, Google account access, and the report source status. Setup check can confirm local credentials and scopes, but it cannot make unavailable rows appear.
Data sources and inputs
- Local SEO configuration and paths. Provides the config directory, saved defaults, OAuth client source, and project settings.
- Local Google token and granted scopes. Shows whether sign-in exists and includes the read-only Search Console and Analytics scopes.
What this report checks
- Checks the local config directory, shared or bring-your-own OAuth client, token client compatibility, and Google sign-in.
- Checks read-only scopes and saved Search Console or GA4 defaults without sending credentials anywhere.
How it works
- Runs independent checks and reports each result separately so one failed check does not hide the others.
The JSON result keeps dates, thresholds, limits, skipped work, and source completeness beside the finding. Missing, partial, capped, filtered, and complete data remain different states.
Run the report from the CLI
Check local sign-in, scopes, configuration, and defaults. Agents and CI should inspect the live schema before their first run.
Run it from the CLI
seo doctorCheck the agent input schema
seo reports describe setup-check --jsonRun it from an agent or script
seo reports run setup-check --params '{}' --jsonProject profiles can fill supported property and analytics inputs for the human-facing commands. The catalog form shown here is explicit by design, so agents and CI jobs do not prompt or guess.
How an MCP agent should use it
Call seo_describe_report first so the agent sees when this report is useful and gets the current input schema. Then callseo_run_report with the validated parameters. Read the status, warnings, source limits, and skipped sections before acting on a finding.
Describe the report with MCP
{
"id": "setup-check"
}Run the report with MCP
{
"id": "setup-check",
"params": {}
}Use a follow-up report returned by the result instead of guessing the next tool. The local MCP server and CLI use the same report definition and evidence. Their outer transport envelopes differ.
Use the report in a TypeScript app
Install seo as a project dependency, then call the same report catalog used by the CLI and MCP. executeReportrejects an unknown report id or invalid parameters. Provider and runtime failures come back as structured results withisError set.
Install the library
npm install seoRun this report from TypeScript
import { executeReport } from 'seo/mcp'
const result = await executeReport(
'setup-check',
{},
)
console.log(result)The TypeScript library guide also covers direct core functions, schema discovery, and the difference betweenexecuteReport and runReport.
What comes back and how to read it
- A pass, warning, or failure for each local setup check with the observed path or state.
- A specific local command for every failed check that has a supported fix.
- Fix failed checks from the top down. A missing OAuth client blocks sign-in, while a missing default only means you need to choose a property explicitly.
Start with dataStatus, source details, warnings, and caveats. Then inspect the observed evidence before derived findings or suggested actions.
What this report cannot tell you
- A clean local check does not prove that Google has data for a property or that a site has no SEO issues.
What to do next
- Run `seo start` if the installation still needs a project profile.
- Run the search performance overview after auth and project defaults pass.
Related reports
- Review SEO performance. See where clicks and impressions changed, which pages or queries account for the movement, and what to inspect next.
Browse all reports in Setup.