trackmcp
Back to directory
mrkooblu

semrush-mcp

View on GitHub

A Model Context Protocol (MCP) server implementation that provides tools for accessing Semrush API data.

25 stars JavaScriptDeveloper Kits Updated Oct 31, 2025

Documentation

Semrush MCP

MCP Server & CLI for keyword research, domain analytics, backlinks, traffic analysis, and competitive intelligence.

A community-maintained, self-hosted tool that provides Semrush API data through two entry points: an MCP server for AI assistants like Claude Desktop and Cursor, and a `semrush` CLI for direct terminal use — ideal for developers and AI coding agents like Claude Code that can run shell commands on your behalf. One install gives you both.

Quick Start

bash
npm install -g github:mrkooblu/semrush-mcp
export SEMRUSH_API_KEY=your_api_key_here

After installing, you have two commands:

  • `semrush` — CLI for terminal and agent use
  • `semrush-mcp` — MCP server on stdio for AI clients

CLI:

bash
semrush domain semrush.com           # Domain overview
semrush kw "seo tools"               # Keyword overview
semrush backlinks semrush.com        # Backlink analysis

MCP server (add to your AI client config):

json
{
  "mcpServers": {
    "semrush-mcp": {
      "command": "npx",
      "args": ["-y", "github:mrkooblu/semrush-mcp"],
      "env": {
        "SEMRUSH_API_KEY": "your-api-key"
      }
    }
  }
}

Features

  • Domain Analytics — Overview, rank tracking, rank history, organic/paid keywords, competitors, ads history, shopping, unique pages
  • URL Analytics — Organic/paid keywords, rank, rank history per URL
  • Subdomain Analytics — Rank, rank history, organic keywords per subdomain
  • Subfolder Analytics — Organic/paid keywords, rank, rank history, unique pages per subfolder
  • Keyword Research — Overview, related keywords, broad match, questions, SERP organic/paid results, ads history, difficulty
  • Backlink Analysis — Backlinks, referring domains, overview, pages, anchors, TLD distribution, categories
  • Traffic Analytics — Summary, sources, destinations, geo, subdomains, subfolders, top pages, rank, social media (requires .Trends)
  • Audience Intelligence — Audience insights, demographics, purchase conversion, interests (requires .Trends)
  • Projects API — List, create, update, delete projects
  • Site Audit — Audit info, snapshots, issues, pages, history, launch crawls
  • Keyword Gap Analysis — Compare two domains' keyword profiles side by side (CLI only)
  • API Units Balance — Check remaining API credits

All capabilities are available through both the MCP server (77 tools) and the CLI.

Installation

Install globally from GitHub

bash
npm install -g github:mrkooblu/semrush-mcp
bash
git clone https://github.com/mrkooblu/semrush-mcp.git
cd semrush-mcp
npm install && npm run build && npm link

Set your API key in the environment or a `.env` file:

bash
export SEMRUSH_API_KEY=your_api_key_here

MCP Setup

Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

json
{
  "mcpServers": {
    "semrush-mcp": {
      "command": "npx",
      "args": ["-y", "github:mrkooblu/semrush-mcp"],
      "env": {
        "SEMRUSH_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor

1. Go to Settings > MCP Servers > Add Server

2. Configure:

    Other MCP Clients

    Any MCP-compatible client can connect using stdio transport. Point it at `semrush-mcp` or `node dist/index.js` with the `SEMRUSH_API_KEY` environment variable set.

    CLI Usage

    The `semrush` CLI is built for both human use and AI coding agents like Claude Code that can invoke shell commands directly. All commands support `-d, --database ` (country code, default: `us`), `-l, --limit `, and `-f, --format `.

    Quick Overview

    Auto-detects keyword vs domain:

    bash
    semrush q "seo tools"              # Keyword overview
    semrush q example.com              # Domain overview

    Domain Analytics

    bash
    semrush domain semrush.com                    # Domain overview
    semrush d example.com --organic -l 30         # Organic keywords
    semrush d example.com --paid -l 20            # Paid keywords
    semrush d example.com --competitors -l 10     # Competitors

    Keyword Research

    bash
    semrush kw "content marketing"                # Basic overview
    semrush kw "seo" --related -l 20              # Related keywords
    semrush kw "marketing" --questions -l 10      # Question-based keywords
    semrush kw "email marketing" --broad -l 15    # Broad match keywords
    semrush kw "seo tools" --organic -l 10        # SERP organic results
    semrush kw "ppc software" --paid -l 10        # SERP paid results

    Keyword Difficulty

    bash
    semrush kd "seo" "content marketing" "link building"
    bash
    semrush bl example.com                        # Backlink overview
    semrush bl example.com --domains -l 20        # Referring domains

    Traffic Analytics

    Requires .Trends API subscription.

    bash
    semrush traffic example.com                   # Traffic summary
    semrush traffic example.com --sources         # Traffic sources

    Keyword Gap Analysis

    bash
    semrush gaps mysite.com competitor.com -l 50

    API Units Balance

    bash
    semrush units

    Available MCP Tools

    Domain Analytics (13 tools)

    ToolDescription
    `semrush_domain_overview`Domain overview — traffic, keywords, rankings across all databases
    `semrush_domain_rank`Domain rank in a specific database
    `semrush_domain_rank_history`Historical rank data for a domain
    `semrush_rank_difference`Domains with biggest rank changes
    `semrush_domain_organic_keywords`Organic keywords for a domain
    `semrush_domain_paid_keywords`Paid keywords for a domain
    `semrush_competitors`Organic search competitors
    `semrush_paid_competitors`Paid search competitors
    `semrush_domain_ads_history`Domain's ad history over time
    `semrush_domain_organic_unique`Unique organic pages for a domain
    `semrush_domain_adwords_unique`Unique paid ad pages for a domain
    `semrush_domain_shopping`Shopping/PLA keywords for a domain
    `semrush_domain_shopping_unique`Unique shopping ad pages

    URL Analytics (5 tools)

    ToolDescription
    `semrush_url_organic`Organic keywords for a specific URL
    `semrush_url_adwords`Paid keywords for a specific URL
    `semrush_url_rank`Rank data for a specific URL
    `semrush_url_rank_history`Historical rank data for a URL
    `semrush_url_ranks`Rank across all databases for a URL

    Subdomain Analytics (4 tools)

    ToolDescription
    `semrush_subdomain_rank`Rank data for a subdomain
    `semrush_subdomain_ranks`Rank across all databases for a subdomain
    `semrush_subdomain_rank_history`Historical rank data for a subdomain
    `semrush_subdomain_organic`Organic keywords for a subdomain

    Subfolder Analytics (7 tools)

    ToolDescription
    `semrush_subfolder_organic`Organic keywords for a subfolder
    `semrush_subfolder_adwords`Paid keywords for a subfolder
    `semrush_subfolder_rank`Rank data for a subfolder
    `semrush_subfolder_ranks`Rank across all databases for a subfolder
    `semrush_subfolder_rank_history`Historical rank data for a subfolder
    `semrush_subfolder_organic_unique`Unique organic pages in a subfolder
    `semrush_subfolder_adwords_unique`Unique paid ad pages in a subfolder
    ToolDescription
    `semrush_backlinks`Backlinks for a domain/URL
    `semrush_backlinks_domains`Referring domains
    `semrush_backlinks_overview`Backlinks summary stats
    `semrush_backlinks_pages`Pages with most backlinks
    `semrush_backlinks_anchors`Anchor text distribution
    `semrush_backlinks_tld`TLD distribution of backlinks
    `semrush_backlinks_categories`Category distribution of backlinks

    Keyword Research (10 tools)

    ToolDescription
    `semrush_keyword_overview`Keyword overview across all databases
    `semrush_keyword_overview_single_db`Detailed keyword data for specific database
    `semrush_batch_keyword_overview`Analyze up to 100 keywords at once
    `semrush_related_keywords`Related keyword discovery
    `semrush_broad_match_keywords`Broad match / alternate queries
    `semrush_phrase_questions`Question-based keywords
    `semrush_keyword_organic_results`Domains ranking in organic results
    `semrush_keyword_paid_results`Domains in paid search results
    `semrush_keyword_ads_history`12-month history of domains bidding on a keyword
    `semrush_keyword_difficulty`Difficulty index for ranking in top 10
    ToolDescription
    `semrush_traffic_summary`Traffic summary for domains
    `semrush_traffic_sources`Traffic sources breakdown
    `semrush_traffic_destinations`Where traffic goes after visiting
    `semrush_traffic_geo`Geographic distribution of traffic
    `semrush_traffic_subdomains`Traffic by subdomain
    `semrush_traffic_subfolders`Traffic by subfolder
    `semrush_traffic_top_pages`Highest-traffic pages
    `semrush_traffic_rank`Traffic rank over time
    `semrush_traffic_social_media`Social media traffic breakdown
    `semrush_audience_insights`Audience overlap between domains
    `semrush_purchase_conversion`Purchase conversion metrics
    `semrush_household_distribution`Household size demographics
    `semrush_income_distribution`Income demographics
    `semrush_education_distribution`Education level demographics
    `semrush_occupation_distribution`Occupation demographics
    `semrush_audience_interests`Audience interest categories
    `semrush_traffic_accuracy`Traffic data accuracy estimates

    Projects & Site Audit (13 tools)

    ToolDescription
    `semrush_list_projects`List all projects
    `semrush_get_project`Get project details
    `semrush_create_project`Create a new project
    `semrush_update_project`Update project settings
    `semrush_delete_project`Delete a project
    `semrush_site_audit_info`Site audit configuration and status
    `semrush_site_audit_snapshots`List audit snapshots
    `semrush_site_audit_snapshot_detail`Get snapshot details
    `semrush_site_audit_issues`Audit issue metadata
    `semrush_site_audit_pages`List audited pages
    `semrush_site_audit_page_detail`Page-level audit details
    `semrush_site_audit_history`Audit history
    `semrush_site_audit_launch`Launch a new audit crawl

    Utility (1 tool)

    ToolDescription
    `semrush_api_units_balance`Check API units balance

    CLI-Only Commands

    CLI CommandDescription
    `semrush gaps `Keyword gap analysis between two domains

    Configuration

    Requires `SEMRUSH_API_KEY` in environment or `.env` file.

    VariableDefaultDescription
    `SEMRUSH_API_KEY`(required)Your Semrush API key
    `API_CACHE_TTL_SECONDS`300Cache TTL for API responses
    `API_RATE_LIMIT_PER_SECOND`10Maximum API requests per second
    `NODE_ENV`developmentEnvironment mode
    `LOG_LEVEL`infoLogging level

    API Units Consumption

    API requests consume units from your Semrush account. Different reports have different costs:

    ToolAPI Units per Line
    `semrush_keyword_overview`10
    `semrush_keyword_overview_single_db`10
    `semrush_batch_keyword_overview`10
    `semrush_keyword_organic_results`10
    `semrush_keyword_paid_results`20
    `semrush_broad_match_keywords`20
    `semrush_related_keywords`40
    `semrush_phrase_questions`40
    `semrush_keyword_difficulty`50
    `semrush_keyword_ads_history`100

    Check your balance anytime with `semrush units` or the `semrush_api_units_balance` MCP tool.

    Development

    bash
    git clone https://github.com/mrkooblu/semrush-mcp.git
    cd semrush-mcp
    npm install
    cp .env.example .env   # add your SEMRUSH_API_KEY
    bash
    npm run dev              # MCP server in dev mode (tsx, hot reload)
    npm run build            # Compile TypeScript to dist/
    npm test                 # Run all tests
    npm run test:unit        # Unit tests only (no API key needed)
    npm run test:integration # Integration tests (requires SEMRUSH_API_KEY)
    npm run lint             # ESLint
    npm run format           # Prettier

    Git Hooks

    This project uses Husky for git hooks:

    • Pre-commit: lint-staged, ESLint, TypeScript type-check, unit tests, secret detection
    • Pre-push: uncommitted changes check, full build, integration tests (requires `SEMRUSH_API_KEY`)

    Why Self-Host?

    This self-hosted tool is for users who need more control:

    • Full control over API calls and caching — configure TTL, inspect raw responses
    • Custom rate limiting — set your own requests-per-second limits
    • Self-hosted / air-gapped — runs entirely on your machine, no external MCP endpoint
    • CLI for agents — AI coding agents can invoke `semrush` directly without MCP
    • Open source — MIT licensed, fork and customize to your needs

    Security

    • Never share your Semrush API key publicly
    • API key provides access to your API units balance
    • Exposing credentials can lead to unauthorized API usage and unexpected charges

    Hosted Alternative

    Semrush also offers an official hosted MCP connector at `https://mcp.semrush.com/v1/mcp` — no setup required, authenticate with your Semrush account. See Getting Started with MCP for details.

    This is a personal project and not an official Semrush product.

    License

    MIT

    Frequently asked questions

    What is semrush-mcp?

    semrush-mcp is A Model Context Protocol (MCP) server implementation that provides tools for accessing Semrush API data.

    How do I install semrush-mcp?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is semrush-mcp open source?

    Yes — it is hosted on GitHub at https://github.com/mrkooblu/semrush-mcp and has 25 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP