Reference

Data sources & API keys

Every data source below is optional. With none of them wired up you still get audits, on-page analysis, schema, GEO and content workflows — the plugin degrades gracefully. Add keys to unlock live rank data, real Core Web Vitals, first-party analytics and full-site crawling.

Where the keys go

Antigravity SEO reads every credential from environment variables. The bundled mcp_config.json references them with ${VAR_NAME} placeholders, and the Python scripts read the same variables — so you never paste a secret into a config file or a prompt. Set them in your shell profile or a local .env file you control.

# macOS / Linux — add to ~/.zshrc or ~/.bashrc
export FIRECRAWL_API_KEY="fc-…"

# Windows PowerShell — persist for your user
setx FIRECRAWL_API_KEY "fc-…"

After setting keys, run the doctor to confirm they are detected: python3 ~/.gemini/extensions/seo/tools/verify_environment.py --json.

SourceCostUnlocks
DataForSEOPaidLive SERP positions, keyword search volume, the backlink graph and competitor intelligence.
FirecrawlFree tierFull-site crawling, JavaScript rendering and sitemap discovery.
Google Search Console · GA4 · PageSpeed / CrUXFreeReal first-party data: Core Web Vitals field data (CrUX/PageSpeed), indexation status and top queries (Search Console), and organic-traffic trends (GA4).
Gemini image generation (Nano Banana)Free tierOn-brand hero images, diagrams and social cards generated inline by the seo-image-gen skill, using Google's Gemini image model.
Free keyword ideation (Google Suggest + Trends)FreeKeyword ideas, autocomplete expansion and interest-over-time signals with zero setup.
Google Keyword Planner (exact volume)FreePrecise search volume, competition and CPC straight from Google Ads.

DataForSEO

Paid

Live SERP positions, keyword search volume, the backlink graph and competitor intelligence. Powers /seo research and the authority side of /seo audit.

  1. 01

    Create an account

    Sign up at dataforseo.com. New accounts usually receive a small amount of free trial credit so you can test before topping up.

    dataforseo.com
  2. 02

    Open the API dashboard

    Go to app.dataforseo.com → API Access. DataForSEO uses HTTP Basic auth: your login is the account email, and the password is the dedicated API password shown on that page.

    app.dataforseo.com/api-access
  3. 03

    Add pay-as-you-go credit

    Billing is usage-based (per API call) rather than a monthly plan. Add a small balance to activate the endpoints. See their pricing page for current per-request rates.

    dataforseo.com/pricing
  4. 04

    Set the two variables

    Export DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD in your environment. The bundled mcp_config.json already references them via ${…}.

Environment variables

  • DATAFORSEO_LOGIN your account email
  • DATAFORSEO_PASSWORD API password from the dashboard (not your login password)

mcp_config.json

{
  "mcpServers": {
    "dataforseo": {
      "command": "npx",
      "args": ["-y", "dataforseo-mcp-server"],
      "env": {
        "DATAFORSEO_LOGIN": "${DATAFORSEO_LOGIN}",
        "DATAFORSEO_PASSWORD": "${DATAFORSEO_PASSWORD}"
      }
    }
  }
}

Firecrawl

Free tier

Full-site crawling, JavaScript rendering and sitemap discovery. Used by /seo audit and the technical crawl skills when you need more than a single-page fetch.

  1. 01

    Sign up

    Create an account at firecrawl.dev. The free tier includes a monthly credit allowance that is plenty for auditing small and mid-size sites.

    www.firecrawl.dev
  2. 02

    Copy your API key

    In the dashboard, open the API Keys page and copy the key (it starts with fc-).

    www.firecrawl.dev/app/api-keys
  3. 03

    Set the variable

    Export FIRECRAWL_API_KEY. Without it, crawl skills fall back to the built-in single-page fetcher instead of failing.

Environment variables

  • FIRECRAWL_API_KEY starts with fc-

mcp_config.json

{
  "mcpServers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp-server"],
      "env": { "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}" }
    }
  }
}

Google Search Console · GA4 · PageSpeed / CrUX

Free

Real first-party data: Core Web Vitals field data (CrUX/PageSpeed), indexation status and top queries (Search Console), and organic-traffic trends (GA4). Powers the seo-google agent inside /seo audit. All Google APIs are free.

Tiered by design: an API key alone unlocks Core Web Vitals (Tier 0). Add a service account for Search Console (Tier 1). Add a GA4 property for traffic (Tier 2). Each tier is optional and degrades gracefully.

  1. 01

    Create a Google Cloud project

    In the Google Cloud Console, create (or pick) a project. This is where you enable the APIs and mint the key.

    console.cloud.google.com
  2. 02

    Enable the APIs you want

    Under APIs & Services → Library, enable: PageSpeed Insights API and Chrome UX Report API (Tier 0), Google Search Console API (Tier 1), and Google Analytics Data API (Tier 2).

    console.cloud.google.com/apis/library
  3. 03

    Tier 0 — create an API key

    APIs & Services → Credentials → Create credentials → API key. Set GOOGLE_API_KEY to this value. That alone unlocks Core Web Vitals field data via PageSpeed and CrUX — no OAuth needed.

    console.cloud.google.com/apis/credentials
  4. 04

    Tier 1 — create a service account for Search Console

    Credentials → Create credentials → Service account, then add a JSON key and download it. Point GOOGLE_APPLICATION_CREDENTIALS at the file. In Search Console → Settings → Users and permissions, add the service-account email as a user, and set GSC_PROPERTY to your verified property URL.

    search.google.com/search-console
  5. 05

    Tier 2 — add GA4

    In Google Analytics → Admin → Property Access Management, grant the same service-account email Viewer access, then set GA4_PROPERTY_ID to your numeric property id (Admin → Property Settings).

    analytics.google.com

Environment variables

  • GOOGLE_API_KEY Tier 0 — PageSpeed Insights + CrUX (public field data)
  • GOOGLE_APPLICATION_CREDENTIALS Tier 1 — path to a service-account JSON for Search Console
  • GSC_PROPERTY Tier 1 — your verified GSC property, e.g. https://example.com/
  • GA4_PROPERTY_ID Tier 2 — numeric GA4 property id for organic-traffic reports

Gemini image generation (Nano Banana)

Free tier

On-brand hero images, diagrams and social cards generated inline by the seo-image-gen skill, using Google's Gemini image model.

  1. 01

    Open Google AI Studio

    Go to aistudio.google.com and sign in with a Google account. AI Studio has a free tier suitable for occasional image generation.

    aistudio.google.com
  2. 02

    Create an API key

    Visit the API keys page and click Create API key. This is the standard Gemini API key.

    aistudio.google.com/apikey
  3. 03

    Set the variable

    Export GOOGLE_AI_API_KEY. If it is absent, image skills simply report that generation is unavailable rather than blocking the rest of a run.

Environment variables

  • GOOGLE_AI_API_KEY Gemini API key from Google AI Studio

mcp_config.json

{
  "mcpServers": {
    "nanobanana": {
      "command": "npx",
      "args": ["-y", "nanobanana-mcp"],
      "env": { "GOOGLE_AI_API_KEY": "${GOOGLE_AI_API_KEY}" }
    }
  }
}

Free keyword ideation (Google Suggest + Trends)

Free

Keyword ideas, autocomplete expansion and interest-over-time signals with zero setup. This is the default source for /seo research keyword ideation — try it before wiring up anything paid.

No API key required. Unofficial Google endpoints apply soft rate limits — if you hit a 429, wait ~60 seconds and retry.

  1. 01

    Nothing to sign up for

    The google-ads-research and google-trends servers wrap Google Suggest and Google Trends directly. They ship enabled in mcp_config.json and need no credentials.

  2. 02

    When to upgrade

    If you need exact monthly search volume, competition and CPC (not ranges), add Google Keyword Planner below.

Google Keyword Planner (exact volume)

Free

Precise search volume, competition and CPC straight from Google Ads. The most involved setup on this page — only worth it when the free ideation tools above aren't precise enough.

The Google Ads API is free to call, but it requires a Google Ads manager account and a developer token. Some accounts return bucketed volume ranges until they have spend history — verify on your own account.

  1. 01

    Create a Google Ads manager (MCC) account

    At ads.google.com, create a manager account if you don't have one. Note its customer id (the 10-digit number) — that becomes GOOGLE_ADS_LOGIN_CUSTOMER_ID.

    ads.google.com/home/tools/manager-accounts
  2. 02

    Request a developer token

    In the manager account, open Tools → API Center and apply for a developer token. Basic access is enough for Keyword Planner. Set it as GOOGLE_ADS_DEVELOPER_TOKEN.

    developers.google.com/google-ads/api/docs/get-started/dev-token
  3. 03

    Create OAuth credentials

    In Google Cloud Console, enable the Google Ads API, then create an OAuth 2.0 Client ID (type: Desktop app). This gives you GOOGLE_ADS_CLIENT_ID and GOOGLE_ADS_CLIENT_SECRET.

    console.cloud.google.com/apis/credentials
  4. 04

    Generate a refresh token

    Run Google's OAuth flow once (their generate-user-credentials helper, or the OAuth Playground) to authorize your Ads account and mint a long-lived refresh token → GOOGLE_ADS_REFRESH_TOKEN.

    developers.google.com/google-ads/api/docs/oauth/overview
  5. 05

    Set all five variables

    Once the five GOOGLE_ADS_* variables are set, the google-keyword-planner server returns exact volume, competition and CPC to the keyword-research skill.

Environment variables

  • GOOGLE_ADS_DEVELOPER_TOKEN from your Google Ads manager (MCC) account
  • GOOGLE_ADS_CLIENT_ID OAuth client id (Google Cloud Console)
  • GOOGLE_ADS_CLIENT_SECRET OAuth client secret
  • GOOGLE_ADS_REFRESH_TOKEN generated once via the OAuth consent flow
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID your MCC customer id, digits only

mcp_config.json

{
  "mcpServers": {
    "google-keyword-planner": {
      "command": "npx",
      "args": ["-y", "google-keyword-planner-mcp"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "${GOOGLE_ADS_DEVELOPER_TOKEN}",
        "GOOGLE_ADS_CLIENT_ID": "${GOOGLE_ADS_CLIENT_ID}",
        "GOOGLE_ADS_CLIENT_SECRET": "${GOOGLE_ADS_CLIENT_SECRET}",
        "GOOGLE_ADS_REFRESH_TOKEN": "${GOOGLE_ADS_REFRESH_TOKEN}",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "${GOOGLE_ADS_LOGIN_CUSTOMER_ID}"
      }
    }
  }
}
Stuck on a key? Troubleshooting covers the recovery prompt, and verify_environment.py --json prints a fix hint for every missing credential.