SEO Research
The SEO Research MCP server allows you to integrate Ahrefs’ SEO data directly into AI-powered development environments.
It utilizes the Model Context Protocol (MCP) to connect your IDE (Cursor, Claude Desktop, or Windsurf) with external SEO metrics.
Features
- 🔗 Backlink Analysis: Retrieves domain ratings, total backlink counts, and reference domain statistics. It identifies whether links come from educational (.edu) or government (.gov) sources.
- 🔑 Keyword Research: Generates related keyword ideas based on a seed term. You can specify the target country and search engine preference.
- 📊 Traffic Analysis: Estimates monthly traffic and traffic costs. It breaks down data by top pages, countries, and performing keywords.
- 📈 Keyword Difficulty: Calculates a difficulty score (KD) and provides a full breakdown of the Search Engine Results Page (SERP) for analysis.
Use Cases
- Competitor Analysis During Development: You can check a competitor’s domain rating and top pages while building a landing page.
- Content Optimization in Markdown: Technical writers working in an IDE can query keyword difficulty scores immediately.
- Programmatic SEO Validation: Developers building static site generators or directory sites can test the viability of specific niches.
How to Use Ii
Installation
Option 1: Install via PyPI (Recommended)
pip install seo-mcpUsers utilizing uv should run:
uv pip install seo-mcpOption 2: Install from Source
git clone https://github.com/egebese/seo-research-mcp.git
cd seo-research-mcp
pip install -e .IDE Configuration Guides
You must configure your specific IDE to recognize the MCP server. Locate your editor below and follow the exact JSON structure.
Claude Desktop
- Navigate to Settings → Developer → Edit Config.
- This opens your
claude_desktop_config.jsonfile. - Insert the following configuration object. Replace
YOUR_API_KEY_HEREwith your actual CapSolver key.
{
"mcpServers": {
"seo-research": {
"command": "uvx",
"args": ["--python", "3.10", "seo-mcp"],
"env": {
"CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}- Restart Claude Desktop. A hammer icon will appear in the input area if the connection is successful.
Cursor
Cursor requires a specific file path for global availability.
- Create or edit the file located at
~/.cursor/mcp.json. - Paste the configuration below:
{
"mcpServers": {
"seo-research": {
"command": "uvx",
"args": ["--python", "3.10", "seo-mcp"],
"env": {
"CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}- Verify the installation by going to File → Preferences → Cursor Settings → MCP. You should see
seo-researchlisted under Available Tools.
Windsurf
- Open the settings via
Cmd + Shift + P(Mac) orCtrl + Shift + P(Windows) and search for “Open Windsurf Settings”. - Navigate through the menu: Cascade → MCP Servers → Edit raw mcp_config.json.
- Add the server configuration:
{
"mcpServers": {
"seo-research": {
"command": "uvx",
"args": ["--python", "3.10", "seo-mcp"],
"env": {
"CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}VS Code (GitHub Copilot)
This requires VS Code version 1.102+ and the GitHub Copilot extension.
- Create a file named
.vscode/mcp.jsonin the root of your current workspace. - Add the following content:
{
"servers": {
"seo-research": {
"command": "uvx",
"args": ["--python", "3.10", "seo-mcp"],
"env": {
"CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}- Click theStart button that appears within the JSON file editor.
- Toggle MCP tools in the Chat view and use
#seo-researchto reference it.
Zed
- Open your
settings.jsonfile. - Add the
context_serversblock:
{
"context_servers": {
"seo-research": {
"command": {
"path": "uvx",
"args": ["--python", "3.10", "seo-mcp"],
"env": {
"CAPSOLVER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
}- Open the Agent Panel and look for a green indicator dot next to
seo-research.
Available Tools
get_backlinks_list(domain)
- Input:
domain(string, e.g., “example.com”) - Returns: An object containing
overview(Domain Rating, total backlinks) and abacklinksarray detailing specific anchors, source URLs, and target URLs.
keyword_generator(keyword, country?, search_engine?)
- Input:
keyword(string): The seed term.country(string, optional): Target country code (default: “us”).search_engine(string, optional): Platform to analyze (default: “Google”).
- Returns: A list of objects containing the keyword, search volume, and difficulty score.
get_traffic(domain_or_url, country?, mode?)
- Input:
domain_or_url(string): The target website.country(string, optional): Specific region or “None” for global.mode(string, optional): Scope of analysis (“subdomains” or “exact”).
- Returns: Traffic averages, cost estimates, top pages, and top keywords.
keyword_difficulty(keyword, country?)
- Input:
keyword(string): The term to analyze.country(string, optional): Target country code (default: “us”).
- Returns: A difficulty score (integer) and a list of current SERP results.
FAQs
Q: Is this tool officially affiliated with Ahrefs?
A: No. This is an independent project that retrieves data from Ahrefs. It is for educational and research purposes only.
Q: Does this cost money to use?
A: The software itself is open-source and free. However, you must pay for CapSolver credits to handle the CAPTCHA verification required to fetch the data.
Q: Can I use this with ChatGPT or the OpenAI web interface?
A: No. This is an MCP server designed for local IDEs and desktop applications that support the Model Context Protocol, such as Claude Desktop and Cursor.
Latest MCP Servers
CVE
WebMCP
webmcp is an MCP server that connects MCP clients to web search, page fetching, and local LLM-based extraction. It’s ideal…
Google Meta Ads GA4
Featured MCP Servers
Notion
Claude Peers
Excalidraw
FAQs
Q: What exactly is the Model Context Protocol (MCP)?
A: MCP is an open standard, like a common language, that lets AI applications (clients) and external data sources or tools (servers) talk to each other. It helps AI models get the context (data, instructions, tools) they need from outside systems to give more accurate and relevant responses. Think of it as a universal adapter for AI connections.
Q: How is MCP different from OpenAI's function calling or plugins?
A: While OpenAI's tools allow models to use specific external functions, MCP is a broader, open standard. It covers not just tool use, but also providing structured data (Resources) and instruction templates (Prompts) as context. Being an open standard means it's not tied to one company's models or platform. OpenAI has even started adopting MCP in its Agents SDK.
Q: Can I use MCP with frameworks like LangChain?
A: Yes, MCP is designed to complement frameworks like LangChain or LlamaIndex. Instead of relying solely on custom connectors within these frameworks, you can use MCP as a standardized bridge to connect to various tools and data sources. There's potential for interoperability, like converting MCP tools into LangChain tools.
Q: Why was MCP created? What problem does it solve?
A: It was created because large language models often lack real-time information and connecting them to external data/tools required custom, complex integrations for each pair. MCP solves this by providing a standard way to connect, reducing development time, complexity, and cost, and enabling better interoperability between different AI models and tools.
Q: Is MCP secure? What are the main risks?
A: Security is a major consideration. While MCP includes principles like user consent and control, risks exist. These include potential server compromises leading to token theft, indirect prompt injection attacks, excessive permissions, context data leakage, session hijacking, and vulnerabilities in server implementations. Implementing robust security measures like OAuth 2.1, TLS, strict permissions, and monitoring is crucial.
Q: Who is behind MCP?
A: MCP was initially developed and open-sourced by Anthropic. However, it's an open standard with active contributions from the community, including companies like Microsoft and VMware Tanzu who maintain official SDKs.



