Seo Research logo

Seo Research

Community
egebese

A free SEO research tool using Model Context Protocol (MCP) powered by Ahrefs data. Get backlink analysis, keyword research, traffic estimation, and more — directly in your AI-powered IDE.

Publisheregebese
Repositorydataseo-mcp
LanguagePython
Forks
29
Stars
192
Available tools
0
Transport typestdio
Categories
Links
  • Connect tools to AI workflows

    Seo Research exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    192 stars and 29 forks from the linked repository.

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 usesYou get
"Who links to suparank.io?"get_backlinks_listDomain rating, referring domains, top backlink rows
"Give me keyword ideas for AI SEO tools"keyword_generatorKeyword and question ideas
"How much organic traffic does suparank.io get?"get_trafficMonthly traffic, top pages, countries, keywords
"How hard is it to rank for 'AI SEO tools'?"keyword_difficultyKD score + the live SERP
"Generate AI search queries for 'AI SEO audit'"ai_search_queriesQueries grouped by search intent
"Give me an SEO overview of suparank.io"domain_overviewBacklink + traffic summary in one call
"Compare suparank.io with its competitors"compare_domains2–5 domains side by side
"Find backlink gaps for suparank.io"backlink_opportunitiesSources linking to competitors but not you
"Write a content brief for 'AI SEO audit'"seo_content_briefSERP data + AI-assisted content angles

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

Quick start

Run it with no install using uv:

bash
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:

bash
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:

bash
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:

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

Runtime overrides:

VariableDefaultPurpose
DATASEO_CACHE_DIR~/.cache/dataseo-mcpSignature cache location
DATASEO_REQUEST_TIMEOUT30HTTP timeout in seconds
DATASEO_MAX_POLLING_ATTEMPTS120CAPTCHA polling cap
OPENROUTER_BASE_URLhttps://openrouter.ai/api/v1OpenAI-compatible AI endpoint

MCP Setup

Claude Code:

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

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

json
{
  "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):

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

get_backlinks_list(domain)

json
{
  "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")

json
{
  "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

bash
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

ProblemFix
No CAPTCHA provider configuredSet CAPSOLVER_API_KEY or ANTICAPTCHA_API_KEY
CAPTCHA solving failedCheck provider balance, key validity, and rate limits
AI tool returns a missing-key errorSet OPENROUTER_API_KEY
Empty SEO responseThe domain or keyword may not be indexed upstream
seo-mcp command not documentedUse dataseo-mcp; seo-mcp still works as an alias

License

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

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "seo-research": {
      "command": "uvx",
      "args": [
        "seo-mcp"
      ],
      "env": {
        "CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Use Seo Research MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Seo Research is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Seo Research as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Seo Research MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "seo-research": {
      "command": "npx",
      "args": [
        "-y",
        "seo-mcp"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Seo Research MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Seo Research MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Seo Research to help me with this task?
Seo Research
Sure. I read it.
Here is what I found using Seo Research.

Frequently asked questions

What is the Seo Research MCP server used for?

Seo Research is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Seo Research MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Seo Research with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Seo Research MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Seo Research connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Seo Research MCP to TypingMind?

Seo Research runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Seo Research MCP provide in TypingMind?

Seo Research exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Seo Research MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Seo Research requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇