Skip to main content
Glama
SEO Research MCP

SEO Research MCP

by egebese

DataSEO MCP

Give your AI assistant real SEO data. DataSEO MCP is a Model Context Protocol server that lets Claude, Cursor, and other MCP clients pull backlinks, keyword difficulty, traffic estimates, and keyword ideas from Ahrefs' free tools — plus optional AI query planning — just by asking in plain English.

No dashboards, no CSV exports. Ask "who links to suparank.io?" and get an answer inside your chat.

CAUTION

For educational and research use. It automates third-party services (Ahrefs, CapSolver, Anti-Captcha, OpenRouter). You are responsible for complying with their terms of service.

What you can ask

Talk to it in natural language — the assistant picks the right tool.

Ask something like…

Tool it uses

You get

"Who links to suparank.io?"

get_backlinks_list

Domain rating, referring domains, top backlink rows

"Give me keyword ideas for AI SEO tools"

keyword_generator

Keyword and question ideas

"How much organic traffic does suparank.io get?"

get_traffic

Monthly traffic, top pages, countries, keywords

"How hard is it to rank for 'AI SEO tools'?"

keyword_difficulty

KD score + the live SERP

"Generate AI search queries for 'AI SEO audit'"

ai_search_queries

Queries grouped by search intent

"Give me an SEO overview of suparank.io"

domain_overview

Backlink + traffic summary in one call

"Compare suparank.io with its competitors"

compare_domains

2–5 domains side by side

"Find backlink gaps for suparank.io"

backlink_opportunities

Sources linking to competitors but not you

"Write a content brief for 'AI SEO audit'"

seo_content_brief

SERP data + AI-assisted content angles

Maintained by Ege Bese. Built for the AI SEO and rank-tracking workflows behind Suparank.

Related MCP server: SEO Insights MCP Server

Quick start

Run it with no install using uv:

export CAPSOLVER_API_KEY="your-capsolver-key"
uvx --python 3.10 dataseo-mcp

That's enough to use every SEO tool. See MCP Setup to wire it into your assistant.

For local development:

git clone https://github.com/egebese/dataseo-mcp.git
cd dataseo-mcp
uv sync
uv run dataseo-mcp

The legacy seo-mcp command still works as an alias.

Configuration

One CAPTCHA provider is required — it's how the Ahrefs-backed tools clear the Turnstile challenge:

export CAPSOLVER_API_KEY="your-capsolver-key"
# or
export ANTICAPTCHA_API_KEY="your-anticaptcha-key"

If both are set, CapSolver is tried first and Anti-Captcha is the fallback.

AI tools are optional. ai_search_queries and seo_content_brief need OpenRouter; without it, the other tools still work and AI output is marked unavailable:

export OPENROUTER_API_KEY="your-openrouter-key"
export OPENROUTER_MODEL="openai/gpt-4o-mini"  # optional

Runtime overrides:

Variable

Default

Purpose

DATASEO_CACHE_DIR

~/.cache/dataseo-mcp

Signature cache location

DATASEO_REQUEST_TIMEOUT

30

HTTP timeout in seconds

DATASEO_MAX_POLLING_ATTEMPTS

120

CAPTCHA polling cap

OPENROUTER_BASE_URL

https://openrouter.ai/api/v1

OpenAI-compatible AI endpoint

MCP Setup

Claude Code:

claude mcp add dataseo --scope user -- uvx --python 3.10 dataseo-mcp

Claude Desktop / Cursor (claude_desktop_config.json or equivalent):

{
  "mcpServers": {
    "dataseo": {
      "command": "uvx",
      "args": ["--python", "3.10", "dataseo-mcp"],
      "env": {
        "CAPSOLVER_API_KEY": "YOUR_CAPSOLVER_KEY",
        "OPENROUTER_API_KEY": "YOUR_OPENROUTER_KEY"
      }
    }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "dataseo": {
      "command": "uvx",
      "args": ["--python", "3.10", "dataseo-mcp"],
      "env": { "CAPSOLVER_API_KEY": "YOUR_CAPSOLVER_KEY" }
    }
  }
}

Add OPENROUTER_API_KEY only if you want the AI tools.

API Reference

{
  "overview": { "domainRating": 76, "backlinks": 1500, "refdomains": 300 },
  "backlinks": [
    {
      "anchor": "Suparank",
      "domainRating": 71,
      "title": "The best AI SEO tools",
      "urlFrom": "https://source.example/best-seo-tools",
      "urlTo": "https://suparank.io/",
      "edu": false,
      "gov": false
    }
  ]
}

keyword_generator(keyword, country="us", search_engine="Google")

Keyword and question ideas in the label / value shape. Volume and difficulty come back as Ahrefs' bucketed estimates.

get_traffic(domain_or_url, country="None", mode="subdomains")

Traffic history, traffic summary, and top pages / countries / keywords. Both costMonthlyAvg and the legacy costMontlyAvg spelling are included.

keyword_difficulty(keyword, country="us")

A keyword difficulty score plus the organic SERP rows with available metrics.

ai_search_queries(keyword, count=10, model="openai/gpt-4o-mini", language="en")

{
  "keyword": "ai seo audit",
  "queries": [
    { "query": "what is an AI SEO audit", "intent": "informational" },
    { "query": "best AI SEO audit tools", "intent": "commercial" }
  ],
  "model_used": "openai/gpt-4o-mini",
  "total_queries": 2
}

count is 1–50. Intents are informational, commercial, transactional, navigational.

Composite tools

  • domain_overview(domain, country="None") — backlink overview + traffic summary for one domain.

  • compare_domains(domains, country="None") — 2–5 unique domains side by side.

  • backlink_opportunities(domain, competitors) — competitor backlink sources missing from the target's sample.

  • seo_content_brief(keyword, country="us", count=12, model, language) — keyword difficulty, SERP rows, AI queries, and recommended content angles in one call.

How it works

server.py stays thin; the work is split into focused modules:

  • services.py — tool orchestration and public return shapes.

  • schemas.py — Pydantic validation and normalization.

  • captcha.py — CapSolver / Anti-Captcha fallback with bounded polling.

  • backlinks.py, keywords.py, traffic.py — Ahrefs endpoint adapters.

  • ai.py — OpenRouter query generation.

  • cache.py — JSON signature cache (default ~/.cache/dataseo-mcp).

Every external HTTP boundary is mocked in tests.

Development

uv sync
uv run pytest -q
uv run ruff check .
uv run python -m compileall -q src
uv run python -c "from seo_mcp.server import main"

Troubleshooting

Problem

Fix

No CAPTCHA provider configured

Set CAPSOLVER_API_KEY or ANTICAPTCHA_API_KEY

CAPTCHA solving failed

Check provider balance, key validity, and rate limits

AI tool returns a missing-key error

Set OPENROUTER_API_KEY

Empty SEO response

The domain or keyword may not be indexed upstream

seo-mcp command not documented

Use dataseo-mcp; seo-mcp still works as an alias

License

MIT with an educational-use notice. Original fork attribution is preserved in LICENSE.

Available Tools

4 tools
get_trafficC
Check the estimated search traffic for any website. 

Args:
    domain_or_url (str): The domain or URL to query
    country (str): The country to query, default is "None"
    mode (["subdomains", "exact"]): The mode to use for the query
Returns:
    Traffic data for the specified domain or URL

Inputs: domain_or_url (required), country, mode.

keyword_difficultyC

Get keyword difficulty for the specified keyword

Inputs: keyword (required), country.

keyword_generatorC

Get keyword ideas for the specified keyword

Inputs: keyword (required), country, search_engine.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: get_backlinks_list retrieves backlink data, get_traffic provides traffic estimates, keyword_difficulty assesses keyword competitiveness, and keyword_generator suggests related keywords. There is no overlap in functionality, making tool selection unambiguous.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case: get_backlinks_list, get_traffic, keyword_difficulty, keyword_generator. The naming is predictable and readable, with no deviations in style or convention.

    Tool Count4/5

    With 4 tools, the count is reasonable for an SEO research server, covering key areas like backlinks, traffic, and keywords. It is slightly lean but not insufficient, as these tools address core SEO analysis needs without being overwhelming.

    Completeness3/5

    The toolset covers essential SEO research functions but has notable gaps. For example, there are no tools for competitor analysis, content suggestions, or SERP features, which are common in SEO workflows. Agents can perform basic research but may lack comprehensive coverage for advanced tasks.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables AI-powered IDEs to perform SEO research including backlink analysis, keyword generation, traffic estimation, and keyword difficulty using Ahrefs data and CapSolver for CAPTCHA solving.
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.
      66 npm
      28
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides AI agents with professional-grade SEO capabilities including on-page analysis, technical audits, PageSpeed insights, and Ahrefs data integration.
      13
      67 npm
      30 PyPI
      5
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables SEO data retrieval including backlinks, keyword research, keyword difficulty, and traffic estimation using Ahrefs free tools.
      212 npm
      MIT