SKILL.md
DataForSEO Live Data
Every DataForSEO call costs money. Check tool availability first, pick the cheapest endpoint that answers the question, and never re-fetch data you already have in the session.
Prerequisites
Confirm the DataForSEO MCP server is connected: check that serp_organic_live_advanced or another DataForSEO tool is callable. If not, tell the user the MCP server is not connected and stop. Do not simulate results.
Cost discipline
- Prefer bulk endpoints over repeated single calls.
- Default to location_code 2840 (US) and language_code en unless the user says otherwise.
- Reuse results already fetched this session.
- Before any expensive run (full backlink crawls, keyword lists over 100 terms,
site:orfiletype:image queries which bill at 5x, geo-grids), state the approximate call count and ask the user to confirm. - After a multi-call analysis, report how many API calls were made.
Task routing
| Task | Lead tools |
|---|---|
| Google/Bing/Yahoo SERP | serp_organic_live_advanced (engine via se param) |
| Google Images SERP | serp_google_images_live_advanced |
| YouTube search / video analysis | serp_youtube_organic_live_advanced, video info/comments/subtitles tools |
| Keyword ideas | dataforseo_labs_google_keyword_ideas, _keyword_suggestions, _related_keywords |
| Volume, difficulty, intent, trends | kw_data_google_ads_search_volume, dataforseo_labs_bulk_keyword_difficulty, dataforseo_labs_search_intent, kw_data_google_trends_explore |
| Backlink profile | backlinks_summary first, detail tools only if needed |
| Competitors, ranked keywords, traffic | dataforseo_labs_google_competitors_domain, _ranked_keywords, _bulk_traffic_estimation |
| Domain overlap | dataforseo_labs_google_domain_intersection, backlinks_domain_intersection |
| On-page and Lighthouse | on_page_instant_pages, on_page_content_parsing, on_page_lighthouse |
| Tech stack, WHOIS | domain_analytics_technologies_domain_technologies, domain_analytics_whois_overview |
| Content quality and trends | content_analysis_search, _summary, _phrase_trends |
| Business listings | business_data_business_listings_search |
| ChatGPT citation check | ai_optimization_chat_gpt_scraper |
| LLM mention tracking | ai_opt_llm_ment_search, _top_domains, _top_pages, _agg_metrics |
Read references/tool-map.md for parameters, defaults, output fields, and the utility tools (location lookups, bulk operations, historical data).
Workflow
- Confirm the MCP server is connected.
- Restate the question as one or more concrete data pulls, pick tools from the routing table.
- Estimate call count. Over 10 calls or any 5x-billed query: get user confirmation first.
- Run the pulls. On empty results, report "no data found" and suggest broader query or corrected location/language codes. Never fill gaps with guesses.
- Present findings: tables for comparisons, issues ranked Critical > High > Medium > Low, scores as XX/100, and label the data source "DataForSEO (live)".
Feeding sibling skills
Other claude-seo skills upgrade from estimates to live data when this server is available: claude-seo-content-brief (volume, difficulty, intent), claude-seo-page (live SERP position, backlink summary), claude-seo-geo (ChatGPT scraper, LLM mentions), claude-seo-plan (competitor domains, traffic estimation), claude-seo-local and claude-seo-maps (business listings).
Verification
After each pull, check the response status and result count before analyzing. Expect a success status and at least one result item. If the status is an auth error, report bad credentials in the MCP config. If rate-limited, wait and retry once, then report the limit.
Good vs bad
Good: User asks for difficulty on 40 keywords. One dataforseo_labs_bulk_keyword_difficulty call with the full array. Bad: 40 separate single-keyword calls. Same data, 40x the cost and latency.
Footguns
- `site:`/`filetype:` operators on image SERPs bill at 5x. Warn and confirm before running filtered image queries.
- Empty result treated as zero presence. An empty response can mean wrong location_code, not absence. Verify codes with the location lookup tools before concluding.
- Cross-session caching claims. Results are not cached between sessions. Only skip re-fetching within the current session.
- Backlink deep-dives by default.
backlinks_summaryanswers most questions. Only pull full backlink lists when the user needs link-level detail.
Completion checklist
- [ ] MCP availability confirmed before any promise of live data
- [ ] Cheapest sufficient endpoints used, bulk where possible
- [ ] User confirmed anything expensive up front
- [ ] Empty or error responses reported honestly, no invented numbers
- [ ] Output labeled "DataForSEO (live)" with call count
Any box unchecked: not done. Fix or say so.