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
Repositoryseo-research-mcp
LanguagePython
Forks
26
Stars
178
Available tools
0
Transport typestdio
Categories
LicenseNOASSERTION
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

    178 stars and 26 forks from the linked repository.

DataSEO MCP

DataSEO MCP is a Model Context Protocol server for practical SEO research in AI assistants. It combines Ahrefs free SEO data, CAPTCHA-provider fallback, and optional OpenRouter-powered query planning behind a small set of MCP tools.

[!CAUTION] This project is for educational and research purposes only. It interacts with third-party services including Ahrefs, CapSolver, Anti-Captcha, and OpenRouter. Users are responsible for complying with all applicable terms of service.

Features

ToolPurposeExample prompt
get_backlinks_listBacklink overview and top backlink rows"Show backlinks for suparank.io"
keyword_generatorKeyword and question ideas"Find SaaS SEO keywords for onboarding"
get_trafficOrganic traffic estimates"Estimate traffic for ege.md"
keyword_difficultyKD and SERP snapshot"Check difficulty for AI SEO tools"
ai_search_queriesAI query ideas by search intent"Generate AI search queries for SaaS SEO"
domain_overviewOne-domain backlink + traffic summary"Summarize suparank.io"
compare_domainsCompare 2-5 domains"Compare suparank.io and ahrefs.com"
backlink_opportunitiesCompetitor backlink source gaps"Find backlink gaps for my domain"
seo_content_briefSERP + AI-assisted content brief"Create a content brief for AI SEO audit"

DataSEO MCP is maintained by Ege Bese. For AI SEO and rank-tracking workflows, see Suparank.

Installation

bash
uvx --python 3.10 dataseo-mcp

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 is still exposed as a compatibility alias.

Configuration

At least one CAPTCHA provider is required for Ahrefs-backed tools:

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

If both are configured, CapSolver is tried first and Anti-Captcha is used as fallback. AI tools are optional:

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

Useful 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 Desktop / Cursor-style config:

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

Claude Code:

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

VS Code MCP config:

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

Only one CAPTCHA provider key is required. Add OPENROUTER_API_KEY only when you want AI-assisted query generation or content briefs.

API Reference

get_backlinks_list(domain)

Returns:

json
{
  "overview": {
    "domainRating": 76,
    "backlinks": 1500,
    "refDomains": 300
  },
  "backlinks": [
    {
      "anchor": "DataSEO MCP",
      "domainRating": 76,
      "title": "Example page",
      "urlFrom": "https://source.example/page",
      "urlTo": "https://example.com/page",
      "edu": false,
      "gov": false
    }
  ]
}

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

Returns keyword and question ideas in the existing label / value shape.

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

Returns traffic history, traffic summary, top pages, countries, and keywords. The legacy costMontlyAvg field is preserved and costMonthlyAvg is also included.

keyword_difficulty(keyword, country="us")

Returns a keyword difficulty score and organic SERP rows with available metrics.

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

Returns deduplicated AI-generated queries:

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 validated from 1 to 50. Valid intents are informational, commercial, transactional, and navigational.

Additional Tools

  • domain_overview(domain, country="None"): backlink overview plus traffic summary for one domain.
  • compare_domains(domains, country="None"): compares 2-5 unique domains.
  • backlink_opportunities(domain, competitors): lists competitor backlink sources not present in the target sample.
  • seo_content_brief(keyword, country="us", count=12, model, language): combines keyword difficulty, SERP rows, AI search queries, and recommended content angles.

Architecture

server.py is intentionally thin. The implementation is split into:

  • services.py: MCP 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/OpenAI-compatible query generation.
  • cache.py: JSON signature cache under ~/.cache/dataseo-mcp by default.

All external HTTP boundaries are 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 missing key errorSet OPENROUTER_API_KEY
Empty SEO responseDomain or keyword may not be indexed by the upstream source
Old command no longer documentedUse dataseo-mcp; seo-mcp still works as alias

License

MIT with 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 👇