
Semrush
STDIOMCP server providing tools for accessing and analyzing Semrush API data.
MCP server providing tools for accessing and analyzing Semrush API data.
A Model Context Protocol (MCP) server implementation that provides tools for accessing Semrush API data.
The Semrush MCP server provides tools for:
Domain Analytics
Keyword Analytics
Backlink Analysis
Traffic Analytics
npm install
.env
file with your Semrush API key:
SEMRUSH_API_KEY=your_api_key_here
npm run build
npm run start
Variable | Description | Default |
---|---|---|
SEMRUSH_API_KEY | Your Semrush API key | (Required) |
API_CACHE_TTL_SECONDS | Time to cache API responses | 300 |
API_RATE_LIMIT_PER_SECOND | Maximum API requests per second | 10 |
NODE_ENV | Environment (development/production) | development |
PORT | Server port | 3000 |
LOG_LEVEL | Logging level | info |
Tool Name | Description | Required Parameters |
---|---|---|
semrush_domain_overview | Get domain overview data | domain, [database] |
semrush_domain_organic_keywords | Get organic keywords for domain | domain, [database], [limit] |
semrush_domain_paid_keywords | Get paid keywords for domain | domain, [database], [limit] |
semrush_competitors | Get organic search competitors | domain, [database], [limit] |
semrush_backlinks | Get backlinks for a domain/URL | target, [limit] |
semrush_backlinks_domains | Get referring domains | target, [limit] |
semrush_keyword_overview | Get keyword overview data | keyword, [database] |
semrush_related_keywords | Find related keywords | keyword, [database], [limit] |
semrush_keyword_overview_single_db | Get detailed keyword data for specific database | keyword, database |
semrush_batch_keyword_overview | Analyze up to 100 keywords at once | keywords, database |
semrush_keyword_organic_results | Get domains ranking in organic results | keyword, database, [limit] |
semrush_keyword_paid_results | Get domains in paid search results | keyword, database, [limit] |
semrush_keyword_ads_history | Get 12-month history of domains bidding on keyword | keyword, database, [limit] |
semrush_broad_match_keywords | Get broad matches and alternate search queries | keyword, database, [limit] |
semrush_phrase_questions | Get question-based keywords | keyword, database, [limit] |
semrush_keyword_difficulty | Get difficulty index for ranking in top 10 | keywords, database |
semrush_traffic_summary | Get traffic summary data for domains | domains, [country] |
semrush_traffic_sources | Get traffic sources data | domain, [country] |
semrush_api_units_balance | Check API units balance | check: true |
Parameters in [brackets] are optional.
API requests to Semrush consume API units from your account. Different types of requests have different costs. You can check your API units balance using the semrush_api_units_balance
tool.
Tool | API 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_related_keywords | 40 |
semrush_keyword_ads_history | 100 |
semrush_broad_match_keywords | 20 |
semrush_phrase_questions | 40 |
semrush_keyword_difficulty | 50 |
To add this MCP server to Cursor or Claude:
Semrush MCP
(or any name you prefer)command
node
/path/to/semrush-mcp/dist/index.js
(replace with your actual path)SEMRUSH_API_KEY
: Your Semrush API keyConfigure your MCP servers JSON file for your designated consuming environment by adding this MCP using the following format:
{ "mcpServers": { "semrush-mcp": { "command": "npx", "args": [ "-y", "github:mrkooblu/semrush-mcp" ], "env": { "SEMRUSH_API_KEY": "your-api-key", "LOG_LEVEL": "info" } } } }
Running it from your terminal:
SEMRUSH_API_KEY=your-api-key npx -y github:mrkooblu/semrush-mcp
To run the server in development mode:
npm run dev