Semrush MCP Server
Provides access to Google Ads data through Semrush, allowing users to retrieve paid search keywords and PPC data for domains.
Enables access to Semrush API functionality for domain analytics, keyword research, organic and paid search analysis, backlinks overview, competitor research, and related keyword discovery.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Semrush MCP Serveranalyze the domain example.com using Semrush"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Semrush MCP Server
An MCP (Model Context Protocol) server that provides access to Semrush API functionality for AI assistants.
Features
Domain Overview: Get comprehensive domain analytics including organic traffic, keywords, and authority score
Keyword Research: Analyze keyword metrics including search volume, difficulty, and CPC
Organic Search Analysis: Retrieve organic search keywords and rankings for any domain
Paid Search Analysis: Get Google Ads keywords and PPC data for domains
Backlinks Overview: Get backlink metrics and analysis for domains or specific URLs
Competitor Research: Identify and analyze organic competitors
Related Keywords: Discover related keywords and search suggestions
Related MCP server: Serpstat MCP Server
Prerequisites
Node.js 18+
A Semrush API key (get one at https://www.semrush.com/api/)
Installation
Clone this repository or create a new directory:
mkdir semrush-mcp
cd semrush-mcpCreate the following directory structure:
semrush-mcp/
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
└── README.mdSave the provided files in their respective locations
Then manually:
npm install
npm run buildConfiguration
Set your Semrush API key as an environment variable:
export SEMRUSH_API_KEY="your-api-key-here"Or create a .env file:
SEMRUSH_API_KEY=your-api-key-hereUsage with Claude Desktop
Add the server to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"semrush": {
"command": "node",
"args": ["/path/to/semrush-mcp-server/dist/index.js"],
"env": {
"SEMRUSH_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
1. domain_overview
Get comprehensive domain analytics.
Parameters:
domain(required): Domain to analyze (e.g., "example.com")database(optional): Database code (default: "us")
2. keyword_overview
Get keyword metrics and data.
Parameters:
phrase(required): Keyword phrase to analyzedatabase(optional): Database code (default: "us")
3. domain_organic_search
Get organic search keywords for a domain.
Parameters:
domain(required): Domain to analyzedatabase(optional): Database code (default: "us")limit(optional): Number of results (default: 10)offset(optional): Offset for pagination (default: 0)
4. backlinks_overview
Get backlinks overview for a domain or URL.
Parameters:
target(required): Domain or URL to analyzetarget_type(optional): "domain" or "url" (default: "domain")
5. competitor_research
Find organic competitors for a domain.
Parameters:
domain(required): Domain to analyzedatabase(optional): Database code (default: "us")limit(optional): Number of competitors (default: 10)
6. domain_adwords
Get paid search (Google Ads) keywords for a domain.
Parameters:
domain(required): Domain to analyzedatabase(optional): Database code (default: "us")limit(optional): Number of results (default: 10)
7. related_keywords
Get related keywords and suggestions for a seed keyword.
Parameters:
phrase(required): Seed keyword phrasedatabase(optional): Database code (default: "us")limit(optional): Number of results (default: 10)
Database Codes
Common database codes for different regions:
us- United Statesuk- United Kingdomca- Canadaau- Australiade- Germanyfr- Francees- Spainit- Italybr- Brazilin- India
Development
To run the server in development mode:
npm run devExample Usage in Claude
Once configured, you can use natural language to access Semrush data:
"Analyze the domain example.com using Semrush"
"What's the search volume for 'digital marketing' keyword?"
"Show me the top organic keywords for techcrunch.com"
"Find competitors for shopify.com"
"Get backlink data for https://metehan.ai/blog/semrush-mcp/"
"What related keywords can you find for 'content marketing'?"
"Show me the Google Ads keywords that amazon.com is bidding on"
Troubleshooting
API Key Issues: Ensure your SEMRUSH_API_KEY environment variable is set correctly
Rate Limits: Semrush API has rate limits. Check your plan's limits
Database Codes: Make sure you're using valid database codes for your target regions
License
MIT
Available Tools
7 toolsbacklinks_overviewB
Get backlinks overview for a domain or URL. Target type can be root_domain, domain, or url.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| target_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't cover critical aspects like whether it's a read-only operation, requires authentication, has rate limits, returns paginated data, or what the output format looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that directly convey the tool's purpose and parameter context. Every word earns its place, and it's front-loaded with the core functionality. No wasted verbiage or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers the basic purpose and parameter types but lacks details on behavior, output, error handling, or usage context. For a tool with this complexity and minimal structured data, more comprehensive guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'target' is a 'domain or URL' and clarifies the 'target_type' options ('root_domain, domain, or url'), providing semantic understanding that the schema lacks. However, it doesn't detail parameter constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get backlinks overview') and resource ('for a domain or URL'), specifying what the tool does. It distinguishes from siblings by focusing on backlinks rather than competitors, ads, organic search, or keywords, though it doesn't explicitly name alternatives. The purpose is specific but could be more distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'domain_overview' or 'competitor_research'. It mentions target types but doesn't explain why to choose this tool over others for backlink analysis. There's no context on prerequisites, timing, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
competitor_researchC
Find organic competitors for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| database | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('Find') without explaining what the tool returns (e.g., list of domains, metrics), whether it's read-only or mutative, rate limits, or authentication needs. This is inadequate for a tool with 3 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly. Every word earns its place by conveying the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how parameters interact, or behavioral traits. For a tool that likely outputs structured competitor data, this leaves critical gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 3 parameters ('domain', 'database', 'limit') are documented in the schema. The description doesn't add any meaning beyond the tool name—it doesn't explain what 'database' refers to (e.g., a specific dataset) or how 'limit' affects results. This fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find organic competitors for a domain' clearly states the verb ('Find') and resource ('organic competitors'), but it's somewhat vague about what constitutes 'organic competitors' (e.g., SEO competitors, similar websites). It doesn't distinguish from sibling tools like 'domain_organic_search' or 'domain_overview', which might overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'domain_organic_search' or 'domain_overview'. The description implies it's for competitor analysis, but it doesn't specify prerequisites, exclusions, or comparative use cases with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_adwordsC
Get paid search (Google Ads) keywords for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| database | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' data, implying a read-only operation, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or response format. For a tool with 3 parameters and no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't address parameter meanings, behavioral traits, or return values, making it inadequate for an AI agent to fully understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 3 parameters have descriptions in the schema. The tool description doesn't mention any parameters or add meaning beyond the schema. It fails to explain what 'domain,' 'database,' or 'limit' mean in context, leaving them undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get paid search (Google Ads) keywords for a domain.' It specifies the action ('get'), resource ('keywords'), and context ('paid search/Google Ads for a domain'). However, it doesn't explicitly differentiate from sibling tools like 'keyword_overview' or 'related_keywords,' which might also handle keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'keyword_overview' or 'domain_organic_search,' nor does it specify use cases, prerequisites, or exclusions. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_organic_searchC
Get organic search keywords for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| database | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it's likely non-destructive, but doesn't cover critical aspects like rate limits, authentication needs, error handling, or what the output looks like (e.g., format, pagination details). This leaves significant gaps for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, 0% schema coverage, no output schema, and no annotations), the description is inadequate. It doesn't explain parameters, output format, or behavioral traits, leaving the agent with insufficient information to use the tool correctly in context with its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 4 parameters have descriptions in the schema. The tool description adds no information about parameters like 'domain', 'database', 'limit', or 'offset', failing to compensate for the lack of schema documentation. This leaves the agent guessing about parameter meanings and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('organic search keywords for a domain'), making the purpose understandable. It doesn't explicitly distinguish from siblings like 'keyword_overview' or 'related_keywords', which might offer similar keyword data, so it misses full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'keyword_overview' or 'related_keywords'. The description lacks context about specific use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain_overviewC
Get domain analytics overview including organic traffic, keywords, and authority score
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| database | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a 'Get' operation (implying read-only), but doesn't disclose any behavioral traits like authentication requirements, rate limits, data freshness, or what happens with invalid domains. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for what it covers, though it could benefit from being more comprehensive given the tool's complexity and lack of other documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters with 0% schema coverage, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain parameters, return values, or behavioral constraints. For a domain analytics tool that likely returns complex data, this leaves too many unknowns for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for 2 parameters, the description provides no information about parameters. It doesn't mention the 'domain' or 'database' parameters at all, nor does it explain what values are expected (e.g., format for domain, valid database codes). The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('domain analytics overview') with specific metrics mentioned (organic traffic, keywords, authority score). It distinguishes from some siblings like 'backlinks_overview' or 'keyword_overview' by focusing on comprehensive domain analytics rather than specific aspects, though it doesn't explicitly differentiate from all alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. With tools like 'domain_organic_search' and 'keyword_overview' available, there's no indication of when this comprehensive overview is preferred over more specific tools or what scenarios warrant its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_overviewC
Get keyword metrics including search volume, difficulty, and CPC
| Name | Required | Description | Default |
|---|---|---|---|
| phrase | Yes | ||
| database | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't mention any side effects, rate limits, authentication requirements, or error conditions. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and immediately lists the key metrics, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters with 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain parameter usage, return values, or behavioral traits. For a keyword analysis tool that likely returns structured data, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning neither parameter has descriptions in the schema. The tool description mentions 'keyword metrics' but doesn't explain what the 'phrase' or 'database' parameters mean, their expected formats, or how they affect the analysis. With 2 parameters and no schema documentation, the description fails to compensate for this gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('keyword metrics') with specific metrics listed (search volume, difficulty, CPC). It distinguishes this tool from siblings like 'backlinks_overview' or 'domain_overview' by focusing on keyword analysis rather than backlinks or domains. However, it doesn't explicitly contrast with 'related_keywords' which might also involve keyword data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'related_keywords' or 'competitor_research'. It mentions what metrics are retrieved but offers no context about appropriate use cases, prerequisites, or limitations compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
backlinks_overview - First observed
competitor_research - First observed
domain_adwords - First observed
domain_organic_search - First observed
domain_overview - First observed
keyword_overview - First observed
related_keywords
TDQS
Each tool has a clearly distinct purpose with no overlap. For example, backlinks_overview focuses on backlink analysis, competitor_research identifies competitors, domain_adwords and domain_organic_search target paid vs. organic keywords respectively, domain_overview provides general analytics, keyword_overview gives keyword metrics, and related_keywords offers keyword suggestions. An agent can easily differentiate them.
All tools follow a consistent snake_case pattern with descriptive names that clearly indicate their function. The naming convention is uniform across all tools, such as domain_adwords, domain_organic_search, and keyword_overview, making them predictable and easy to understand.
With 7 tools, the server is well-scoped for SEO and domain analysis. Each tool serves a specific and necessary function within this domain, such as backlink analysis, competitor research, keyword metrics, and domain overviews, ensuring a balanced and focused toolset.
The toolset covers core SEO workflows comprehensively, including backlinks, competitors, keywords, and domain analytics. A minor gap exists in the lack of tools for updating or managing data (e.g., adding custom keywords or tracking changes), but agents can work around this with the provided read-only operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Semrush MCP Pack — SEO analytics via the Semrush Analytics API.
Related MCP Servers
- AlicenseCqualityNot gradedmaintenanceEnables AI assistants to interact with DataForSEO APIs and obtain SEO data including SERP results, keyword research, on-page metrics, backlink analysis, and domain analytics through a standardized interface.7622,898-
- AlicenseBqualityDmaintenanceIntegrates the Serpstat SEO API with the Model Context Protocol to provide AI assistants with comprehensive data for domain analysis, keyword research, and competitor tracking. It enables users to perform complex SEO tasks like backlink analysis and site audits through natural language interfaces.65374MIT
- AlicenseCqualityDmaintenanceConnects AI assistants to SE Ranking's SEO and project management APIs to enable natural language queries for keyword research, backlink analysis, and technical audits. It supports comprehensive tasks including competitive analysis, domain traffic tracking, and AI search visibility monitoring.100Apache 2.0
- AlicenseNot gradedqualityFmaintenanceConnects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.1628MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/metehan777/semrush-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server