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.
| Source | Cost | Unlocks |
|---|---|---|
| DataForSEO | Paid | Live SERP positions, keyword search volume, the backlink graph and competitor intelligence. |
| Firecrawl | Free tier | Full-site crawling, JavaScript rendering and sitemap discovery. |
| 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). |
| 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. |
| Free keyword ideation (Google Suggest + Trends) | Free | Keyword ideas, autocomplete expansion and interest-over-time signals with zero setup. |
| Google Keyword Planner (exact volume) | Free | Precise search volume, competition and CPC straight from Google Ads. |
DataForSEO
PaidLive SERP positions, keyword search volume, the backlink graph and competitor intelligence. Powers /seo research and the authority side of /seo audit.
- 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 ↗ - 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 ↗ - 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 ↗ - 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 emailDATAFORSEO_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 tierFull-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.
- 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 ↗ - 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 ↗ - 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
FreeReal 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.
- 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 ↗ - 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 ↗ - 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 ↗ - 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 ↗ - 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 ConsoleGSC_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 tierOn-brand hero images, diagrams and social cards generated inline by the seo-image-gen skill, using Google's Gemini image model.
- 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 ↗ - 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 ↗ - 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)
FreeKeyword 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.
- 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.
- 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)
FreePrecise 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.
- 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 ↗ - 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 ↗ - 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 ↗ - 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 ↗ - 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) accountGOOGLE_ADS_CLIENT_ID— OAuth client id (Google Cloud Console)GOOGLE_ADS_CLIENT_SECRET— OAuth client secretGOOGLE_ADS_REFRESH_TOKEN— generated once via the OAuth consent flowGOOGLE_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}"
}
}
}
}