DataForSEO MCP wrapper — live SERP results (Google/Bing/Yahoo/YouTube/Images), keyword volume/difficulty/intent/trends, backlink profiles, domain and competitor analytics, on-page/Lighthouse audits, business listings, and AI-visibility (LLM mention) tracking across 9 API modules. Bring-your-own MCP server; degrades to the WebSearch/WebFetch research ladder when not configured. Paid per API call — always cost-check before bulk operations.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add trungdo9/ClauKit --skill seo-dataforseo --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Seo Dataforseo?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/trungdo9-seo-dataforseo)More formats (shields.io, HTML) on the badges page.
---
name: seo-dataforseo
description: DataForSEO MCP wrapper — live SERP results (Google/Bing/Yahoo/YouTube/Images), keyword volume/difficulty/intent/trends, backlink profiles, domain and competitor analytics, on-page/Lighthouse audits, business listings, and AI-visibility (LLM mention) tracking across 9 API modules. Bring-your-own MCP server; degrades to the WebSearch/WebFetch research ladder when not configured. Paid per API call — always cost-check before bulk operations.
allowed-tools: Read, Write, Glob, Grep, Bash
---
# SEO DataForSEO — Live Search Data (MCP Wrapper)
> Every other skill in this kit reasons from static analysis or a WebSearch snapshot — this one talks to the actual DataForSEO API for real SERP positions, real search volume, real backlink counts. Bring your own MCP server; every consuming skill degrades gracefully without it.
## When this skill activates
**Implicit:** "check keyword volume", "live SERP data", "backlink profile for X", "AI visibility check", "keyword difficulty", "real search data", "dataforseo".
**Explicit:** "Use the seo-dataforseo skill to [task]."
**Routed from:** [[seo-cluster]] (keyword volume/difficulty on cluster nodes), [[seo-content]] / [[seo-content-brief]] (search intent, keyword metrics, content-quality signals), [[seo-technical]] (Lighthouse/crawl data, tech-stack detection), [[seo-plan]] (competitor domain intel, traffic estimation), [[seo-geo]] (LLM mention tracking, ChatGPT visibility), [[seo-audit]] (live SERP/backlink/on-page evidence), and the SERP/keyword research ladder in `references/research-tools.md` of [[seo-writing]] (this skill is the top rung).
## Scope
Covers:
- Live Google/Bing/Yahoo organic SERP, Google Images SERP, YouTube search + video deep-analysis
- Keyword ideas/suggestions, search volume, difficulty, intent classification, Google Trends
- Backlink profiles: summary, referring domains, anchors, spam score, timeseries
- Domain/competitor analytics: ranked keywords, competitor discovery, traffic estimation, domain intersection, subdomains, top searches
- On-page technical data: instant-page checks, content parsing, Lighthouse audit, tech-stack detection, WHOIS
- Content analysis (quality, sentiment, phrase trends) and local business listings
- AI visibility / GEO: ChatGPT web-search scraping, cross-platform LLM mention tracking
- Per-call cost awareness for the underlying paid API (this is metered, unlike most skills in this kit)
Does NOT cover:
- Static/manual technical audits when no live crawl is warranted → [[seo-technical]]
- E-E-A-T writing/scoring of the content itself → [[seo-content]]
- Schema markup generation → [[seo-schema]]
- The non-DataForSEO fallback chain (Exa, SerpAPI, WebSearch/WebFetch) → `references/research-tools.md` in [[seo-writing]]
## MCP server (bring your own)
This skill has no bundled server — wire one up like the `mcp-gsc` / `mcp-ga4` wrappers in `skills/automation/`:
- **Server:** any MCP server exposing the DataForSEO API surface (e.g. the official `dataforseo-mcp-server`, or a community equivalent). Configure via `/ck:use-mcp dataforseo`.
- **Required env:** `DATAFORSEO_LOGIN`, `DATAFORSEO_PASSWORD` (or an API key, depending on the server). Env-only — never paste credentials into a plan file or prompt.
- **Availability check:** before calling any tool below, confirm one of them (e.g. `serp_organic_live_advanced`) is actually present in the tool list. If not, say so and route to the manual fallback — do not guess at data.
## Cost awareness (this API is metered)
Unlike GSC/GA4-style wrappers, DataForSEO bills per call. Be deliberate:
- Prefer bulk endpoints (`*_bulk_*`) over N single calls.
- Use default parameters (US, English, `live_regular` over `live_advanced`) unless the user's market requires otherwise.
- Don't re-fetch the same keyword/domain within a session — reuse what was already pulled.
- **Before anything in the "always confirm" tier below, or before a batch of more than ~10 calls, tell the user the endpoint, the approximate cost from `references/cost-tiers.md`, and ask for a go-ahead.** There is no automated budget tracker in this kit — the confirmation step is manual, every time.
- Note the actual source in output as "DataForSEO (live)" so it's distinguishable from a WebSearch-derived estimate.
**Always confirm before calling**, regardless of batch size — these are the ones people run up a bill on by accident:
- `backlinks_backlinks` (can return large result sets)
- `backlinks_domain_intersection` (multi-domain, expensive)
- `ai_optimization_chat_gpt_scraper` (LLM scraping)
- `ai_opt_llm_ment_search` (LLM mention tracking)
- Any `serp_google_images_live_*` call using `site:`/`filetype:` operators (5x cost multiplier)
Full pricing table, budget presets, and cost-reduction tips: `references/cost-tiers.md`.
---
## SERP analysis
**Organic SERP** — live Google (also Bing/Yahoo via the `se` parameter) results. Tool: `serp_organic_live_advanced`. Defaults: `location_code=2840` (US), `language_code=en`, `device=desktop`, `depth=100`. Returns rank, URL, title, description, domain, featured snippets, AI Overview references, People Also Ask.
**Google Images SERP** — which images/domains rank for a keyword. Tool: `serp_google_images_live_advanced`. Params: keyword (required), depth (max 700, billed per 100-result increment), search_param (e.g. `site:example.com` — **5x cost**, warn first). Returns position, title, alt text, source page URL, image URL, domain. Worth pairing with: domain dominance (top-10 domains by image-position count), alt-text patterns, format distribution (WebP/JPEG/PNG from the URL extension), and gap identification (keywords where the user ranks organically but has no image presence).
**YouTube SERP** — Tool: `serp_youtube_organic_live_advanced`. Useful for GEO: YouTube mentions are one of the stronger correlates with AI-search citations found in third-party studies.
**YouTube video deep-analysis** — info, comments, subtitles for a specific video. Tools: `serp_youtube_video_info_live_advanced`, `serp_youtube_video_comments_live_advanced`, `serp_youtube_video_subtitles_live_advanced`. Param: `video_id`. Treat any specific correlation number (e.g. "0.737") as methodology-dependent, not a fixed constant — cite the study if quoting a figure, otherwise describe the direction only.
## Keyword research
- **Ideas/suggestions/related terms** from a seed — `dataforseo_labs_google_keyword_ideas`, `dataforseo_labs_google_keyword_suggestions`, `dataforseo_labs_google_related_keywords`. Defaults: `location_code=2840`, `language_code=en`, `limit=50`. Returns keyword, volume, CPC, competition, difficulty, trend.
- **Search volume** for a keyword list — `kw_data_google_ads_search_volume`. Returns monthly volume, CPC, competition, monthly trend series.
- **Keyword difficulty (bulk)** — `dataforseo_labs_bulk_keyword_difficulty`. Returns a 0–100 score with an Easy/Medium/Hard/Very Hard interpretation.
- **Search intent** — `dataforseo_labs_search_intent`. Classifies informational/navigational/commercial/transactional with a confidence score.
- **Trends** — `kw_data_google_trends_explore`. Params: keywords, location, date range. Returns a time series, trend direction, seasonality signal.
This is the block [[seo-cluster]] and [[seo-content-brief]] want for real numbers instead of a WebSearch-inferred guess.
## Domain & competitor analysis
- **Backlink profile** — `backlinks_summary`, `backlinks_backlinks`, `backlinks_anchors`, `backlinks_referring_domains`, `backlinks_bulk_spam_score`, `backlinks_timeseries_summary`. Returns total backlinks, referring domains, domain rank, spam score, top anchors, new/lost over time, dofollow ratio.
- **Competitors + traffic** — `dataforseo_labs_google_competitors_domain`, `dataforseo_labs_google_domain_rank_overview`, `dataforseo_labs_bulk_traffic_estimation`. Returns competitor domains, keyword overlap %, estimated traffic, domain rank.
- **Ranked keywords** — `dataforseo_labs_google_ranked_keywords`, `dataforseo_labs_google_relevant_pages`. Returns keyword, position, URL, volume, traffic share, SERP features.
- **Intersection** (2–20 domains) — `dataforseo_labs_google_domain_intersection`, `backlinks_domain_intersection`. Returns shared keywords per domain position, shared backlink sources, unique keywords.
- **Bulk traffic estimation** — `dataforseo_labs_bulk_traffic_estimation`. Domain → estimated organic traffic, traffic cost, top keywords.
- **Subdomains** — `dataforseo_labs_google_subdomains`. Subdomain → ranked-keyword count, estimated traffic, organic cost.
- **Top searches mentioning a domain** — `dataforseo_labs_google_top_searches`. Query → volume, domain position, SERP features, traffic share.
Feeds [[seo-plan]]'s competitive-intelligence prioritization and [[seo-audit]]'s backlink evidence.
## Technical / on-page
- **On-page analysis** — `on_page_instant_pages` (status codes, meta tags, content size, timing, broken links), `on_page_content_parsing` (extracted text, word count, structure), `on_page_lighthouse` (performance/accessibility/best-practices/SEO scores, Core Web Vitals).
- **Tech-stack detection** — `domain_analytics_technologies_domain_technologies`. Returns technology, version, category (CMS/analytics/CDN/framework).
- **WHOIS** — `domain_analytics_whois_overview`. Registrar, creation/expiry date, nameservers, registrant (if public).
Feeds [[seo-technical]] with real crawl data instead of a manual spot-check.
## Content & business data
- **Content analysis** — `content_analysis_search` (topic search with quality scores + sentiment), `content_analysis_summary` (URL → readability/quality metrics), `content_analysis_phrase_trends` (phrase volume over time).
- **Business listings** — `business_data_business_listings_search`. Keyword (+ optional location) → name, category, address, phone, domain, rating, review count, claimed status. Local-SEO competitive scan.
## AI visibility / GEO
- **ChatGPT scrape** — `ai_optimization_chat_gpt_scraper`. Query → response content, cited sources/URLs, referenced domains. Shows which sources ChatGPT cites for a target keyword; pair with GSC's AI Overview / AI Mode reports where available (see [[seo-google]]). Location lookup: `ai_optimization_chat_gpt_scraper_locations`.
- **LLM mention tracking** — `ai_opt_llm_ment_search` (mentions of a brand/keyword across LLM responses), `ai_opt_llm_ment_top_domains` (most-cited domains for the topic), `ai_opt_llm_ment_top_pages` (most-cited specific pages), `ai_opt_llm_ment_agg_metrics` (aggregate volume/trend). Cross-model comparison: `ai_opt_llm_ment_cross_agg_metrics`. Location/model lookups: `ai_opt_llm_ment_loc_and_lang`, `ai_optimization_llm_models`.
This is the strongest available signal for [[seo-geo]]'s citation-rate measurement — it's the only source in this kit that observes actual LLM output rather than inferring citability from content structure.
## Additional utility tools
Location lookups, historical-data variants, bulk operations, and filter-option tools that don't have a dedicated section above are catalogued in `references/tool-catalog.md` — load it when the six sections above don't cover the specific need.
## Error handling
| Situation | Response |
|---|---|
| MCP server not connected / tool not in list | Say so plainly; point to "MCP server (bring your own)" above; do not fabricate a result |
| Auth failure | Report invalid credentials; check `DATAFORSEO_LOGIN`/`DATAFORSEO_PASSWORD` (or key) in the MCP config |
| Rate limit hit | Report the limit and suggest waiting before retrying |
| No results | Report "no data found" — never guess a plausible-looking number to fill the gap |
| Invalid location/language code | Use the relevant `*_locations` lookup tool to find the correct code |
## Manual fallback (no MCP server configured)
DataForSEO has no CSV-export equivalent like GSC/GA4 — when the server isn't available, don't try to approximate its numbers by hand. Instead, drop down the ladder documented in `references/research-tools.md` of [[seo-writing]]: SerpAPI MCP → Exa → `WebSearch` → model knowledge, and **label the output** `[UNVERIFIED — no live SERP/keyword data]` so downstream consumers ([[seo-cluster]], [[seo-content-brief]], [[seo-plan]]) know to sanity-check before acting on it. Never invent a search-volume or difficulty number to fill the gap.
## Key concepts
- **Metered API** — every call costs money; this is the one skill in the kit where "just check it live" isn't free. Batch, cache within-session, and confirm before the expensive tier.
- **Live vs. Labs data** — `serp_*` and `kw_data_*` tools hit the search engine or ad platform directly (freshest, costs more); `dataforseo_labs_*` tools are DataForSEO's own derived/cached datasets (cheaper, near-real-time, better for bulk/competitive work).
- **GEO signal, not SEO signal** — the AI-visibility tools (`ai_opt_llm_ment_*`, `ai_optimization_chat_gpt_scraper`) measure LLM citation behavior, a distinct and much newer surface than organic ranking; treat correlational claims about it as provisional.
## Output
- Inline data tables in the conversation (rank/volume/difficulty/backlink comparisons), formatted with issues prioritized Critical > High > Medium > Low where applicable.
- When feeding another skill's artifact — e.g. `plans/marketing/<site>/pipeline.md` ([[seo-cluster]]), `briefs/<slug>.md` ([[seo-content-brief]]), `audit-report.md` ([[seo-audit]]) — write the live numbers into that file, tagged "DataForSEO (live)" so a reader can tell it apart from a WebSearch estimate.
- Standalone use: `plans/marketing/<campaign>/seo-dataforseo.md`.
## Cross-references
- `plans/marketing-context.md` — required hub (market/locale informs `location_code`/`language_code` defaults)
- [[seo-writing]] `references/research-tools.md` — the research ladder this skill sits at the top of, and its manual-fallback labeling convention
- [[seo-cluster]], [[seo-content-brief]], [[seo-plan]] — consumers of keyword/competitor metrics
- [[seo-technical]] — consumer of Lighthouse/crawl/tech-stack data
- [[seo-geo]] — consumer of AI-visibility/LLM-mention data
- [[seo-audit]] — consumer of live SERP/backlink/on-page evidence
- `skills/automation/mcp-gsc/SKILL.md`, `skills/automation/mcp-ga4/SKILL.md` — sibling MCP-wrapper skills; same bring-your-own-server + manual-fallback convention
- `references/cost-tiers.md` — pricing table, budget presets, cost-reduction tips
- `references/tool-catalog.md` — utility MCP tools without a dedicated section above
## Provenance
Imported from `AgriciDaniel/claude-seo` (`seo-dataforseo`, v2.2.4) and adapted for KitForge. Adaptations: dropped the `./extensions/dataforseo/install.sh` installer and the `claude-seo run dataforseo_costs.py` cost-tracking CLI (neither exists in ClauKit) in favor of the manual, judgment-based cost-confirmation flow described above and the bring-your-own-MCP-server convention already used by `skills/automation/mcp-gsc` and `mcp-ga4`; dropped the source's bespoke `/seo dataforseo <command>` slash-command surface (this kit routes to the skill via `/mk:seo` + implicit activation, not a per-tool subcommand router); all MCP tool names, API module coverage, defaults, and cost figures are preserved from source. `references/cost-tiers.md` and `references/tool-catalog.md` are ported with the same script-removal adaptation.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!