Skip to main content
Glama
springvoiceswell

semrush-ai-mcp

🚀 semrush-ai-tool

Turn any AI assistant into a professional SEO analyst. Connect Claude, Cursor, or any MCP-compatible AI client directly to live Semrush data — keyword research, domain analytics, backlink analysis, traffic insights, and competitor intelligence — with a single install.

License: MIT Node.js MCP Platform PRs Welcome

⚡ Quick Install · 🤖 Connect Your AI · ⌨️ CLI Usage · 🧰 All 18 Tools · 👩‍💻 Developers


🎯 What is semrush-ai-tool?

semrush-ai-tool is a free, open-source Semrush SEO analysis tool that gives AI assistants real-time access to the Semrush API through the Model Context Protocol (MCP) — the open standard for connecting AI models to external data.

Instead of exporting CSVs and pasting them into a chat window, you simply ask your AI:

"Analyze the top organic keywords for mysite.com, compare them with competitor.com, score the keyword difficulty, and tell me which backlinks I'm missing."

The AI calls the Semrush API for you, reads the results, and delivers a complete SEO analysis — keyword gaps, backlink opportunities, traffic trends, and competitor strategy — in plain English.

It ships as two tools in one package:

Entry point

Who it's for

What it does

🤖 MCP Server (semrush-ai-mcp)

Marketers, SEOs, founders

Gives Claude Desktop, Cursor & other AI clients 18 Semrush tools

⌨️ CLI (semrush-ai)

Developers, power users, AI coding agents

Run Semrush reports straight from the terminal

✅ No build step — pure JavaScript, installs in seconds ✅ No Homebrew required — works with a standard Node.js setup ✅ Self-hosted & private — your API key never leaves your machine ✅ MIT licensed — free for personal and commercial use


Related MCP server: Semrush MCP Server

✨ Features

  • 🔍 Keyword Research — search volume, CPC, competition, trends, related keywords, question keywords (People Also Ask gold), and batch Keyword Difficulty scoring for up to 100 keywords at once

  • 🌐 Domain Analytics — organic & paid keywords, traffic estimates, rank history, and visibility for any domain in any regional database (US, UK, DE, FR, and 100+ more)

  • 🕵️ Competitor Analysis — discover organic and paid competitors, reverse-engineer their keyword portfolios, and find the gaps in yours

  • 🔗 Backlink Analysis — backlink profile overviews, individual backlinks with anchors, and referring domains sorted by authority for link-building prospecting

  • 📈 Traffic Analytics — visits, unique visitors, bounce rate, and session duration via Semrush .Trends

  • 📊 SERP Snapshots — see exactly which domains and URLs rank for any keyword

  • 💳 API Units Tracking — check your Semrush API units balance before big jobs

  • ⚡ Built-in rate limiting — never trip Semrush's API limits

  • 🧩 Works everywhere MCP works — Claude Desktop, Cursor, Windsurf, Cline, and any MCP-compatible client


⚡ Installation

Choose your path:

🍎 macOS Installation for Non-Developers (Step by Step)

No Homebrew. No programming knowledge. Just open Terminal (press Cmd + Space, type Terminal, hit Enter) and follow these three steps.

Step 1 — Install Apple's command line tools

Copy, paste, and press Enter:

xcode-select --install

A dialog pops up → click Install and wait for it to finish. (If it says they're already installed, great — move on.)

Step 2 — Install Node.js with nvm

Node.js is the engine this tool runs on, and nvm is the official, recommended way to install it — no Homebrew needed. Copy and paste this one line:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Then close Terminal completely and open it again (this loads nvm). Now install Node.js:

nvm install --lts

✅ Check it worked: type node -v — you should see something like v22.x.x.

💡 This is the same method shown on the official Node.js download page: https://nodejs.org/en/download

Step 3 — Install semrush-ai-tool (one line)

mkdir -p 'semrushai' && cd 'semrushai' && npm install github:springvoiceswell/semrush-ai-tool

Done! 🎉 The tool now lives in a folder called semrushai in your home directory. Continue to Get your API key below.

👩‍💻 Quick Install (Developers)

Requires Node.js 18+.

# Local project install
mkdir -p 'semrushai' && cd 'semrushai' && npm install github:springvoiceswell/semrush-ai-tool

# …or global install for the CLI everywhere
npm install -g github:springvoiceswell/semrush-ai-tool

# …or clone for hacking
git clone https://github.com/springvoiceswell/semrush-ai-tool.git
cd semrush-ai-tool && npm install

🔑 Get Your Semrush API Key

  1. Log in to Semrush and open Account → API to find your API key. (API access requires a Semrush Business subscription or purchased API units.)

  2. Tell your Mac about it — paste this into Terminal, replacing the placeholder with your real key:

echo 'export SEMRUSH_API_KEY="paste_your_key_here"' >> ~/.zshrc && source ~/.zshrc
  1. Verify everything works:

npx semrush-ai-tool units

If you see your API units balance — you're fully set up. 🎉


🤖 Connect Your AI Assistant (MCP Setup)

This is where the magic happens: your AI gets 18 live Semrush tools.

Claude Desktop

Open (or create) this file:

~/Library/Application Support/Claude/claude_desktop_config.json

Non-developers: in Finder press Cmd + Shift + G, paste the path above, and open the file with TextEdit. If it doesn't exist, create it.

Paste this in (replace the key with yours):

{
  "mcpServers": {
    "semrush-ai-tool": {
      "command": "npx",
      "args": ["-y", "github:springvoiceswell/semrush-ai-tool"],
      "env": {
        "SEMRUSH_API_KEY": "paste_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You should see 🔨 tools available — Claude can now run live Semrush SEO analysis.

Cursor

  1. Settings → MCP → Add new global MCP server

  2. Use the same JSON block as above, or:

    • Type: command

    • Command: npx -y github:springvoiceswell/semrush-ai-tool

    • Environment: SEMRUSH_API_KEY=your_key

Other MCP Clients (Windsurf, Cline, etc.)

Any MCP-compatible client can connect over stdio. Point it at:

npx -y github:springvoiceswell/semrush-ai-tool

with the SEMRUSH_API_KEY environment variable set.

💬 What to Ask Your AI

Once connected, just talk naturally:

  • "Give me a full SEO overview of example.com — traffic, top keywords, and how rankings changed over the last year."

  • "Find 20 low-difficulty question keywords related to 'email marketing' I could rank for."

  • "Who are the top organic competitors of mysite.com and what keywords do we share?"

  • "Audit the backlink profile of example.com and list the strongest referring domains."

  • "Score the keyword difficulty of these 10 keywords and tell me which to target first."


⌨️ CLI Usage

The semrush-ai CLI is built for humans and AI coding agents (Claude Code, etc.) that can run shell commands.

semrush-ai q "seo tools"                 # 🔮 Smart lookup — auto-detects keyword vs domain
semrush-ai domain example.com            # 🌐 Domain overview
semrush-ai domain example.com --organic -l 30      # Top 30 organic keywords
semrush-ai domain example.com --competitors        # Organic competitors
semrush-ai domain example.com --history            # Rank history
semrush-ai kw "content marketing"                  # Keyword overview
semrush-ai kw "seo" --related -l 20                # Related keywords
semrush-ai kw "marketing" --questions -l 10        # Question keywords
semrush-ai kw "seo tools" --serp                   # Who ranks on the SERP
semrush-ai kd "seo" "link building" "ppc"          # Keyword Difficulty batch
semrush-ai bl example.com                          # Backlink overview
semrush-ai bl example.com --domains -l 20          # Top referring domains
semrush-ai traffic example.com                     # Traffic summary (.Trends)
semrush-ai units                                   # API units balance

Global flags: -d, --database <code> (default us) · -l, --limit <n> · -f, --format text|json

semrush-ai domain example.com --organic -d uk -l 50 -f json

🧰 Available MCP Tools

🌐 Domain Analytics

Tool

Description

semrush_domain_overview

Domain overview across all databases — traffic, keywords, Semrush rank

semrush_domain_rank

Organic & paid visibility in one regional database

semrush_domain_rank_history

Monthly historical rankings, keywords and traffic

semrush_domain_organic_keywords

Keywords the domain ranks for in Google's top 100

semrush_domain_paid_keywords

Keywords the domain bids on in Google Ads

semrush_domain_competitors

Organic search competitors with competition level

semrush_domain_paid_competitors

Paid search (Google Ads) competitors

🔍 Keyword Research

Tool

Description

semrush_keyword_overview

Volume, CPC & competition across all databases

semrush_keyword_overview_single_db

Detailed metrics + trends in one database

semrush_related_keywords

Related phrases & variations for content ideation

semrush_keyword_questions

Question keywords for FAQs & featured snippets

semrush_keyword_difficulty

Difficulty index (0–100), up to 100 keywords per call

semrush_keyword_serp

Domains & URLs ranking organically for a keyword

Tool

Description

semrush_backlinks_overview

Backlinks, referring domains, IPs, follow/nofollow

semrush_backlinks

Individual backlinks with anchors & first/last seen

semrush_backlinks_refdomains

Referring domains sorted by authority

📈 Traffic & 💳 Utility

Tool

Description

semrush_traffic_summary

Visits, uniques, bounce rate, duration (requires .Trends)

semrush_api_units_balance

Remaining Semrush API units

💰 API units: every Semrush API call consumes units from your account. Run semrush-ai units (or ask your AI) to check your balance before large batch jobs.


👩‍💻 Developer Guide

This section is for contributors and engineers who want to understand, extend, or embed semrush-ai-tool.

🏗️ Architecture

Deliberately minimal — zero build step, two runtime dependencies, plain ESM JavaScript:

semrush-ai-tool/
├── src/
│   ├── index.js    # MCP server entry (stdio transport, @modelcontextprotocol/sdk)
│   ├── cli.js      # CLI entry — dependency-free arg parsing, text/JSON output
│   ├── api.js      # SemrushClient: Analytics + Backlinks + .Trends APIs,
│   │               #   token-bucket rate limiter, CSV parser, typed errors
│   └── tools.js    # 18 MCP tool definitions (zod schemas → Semrush reports)
├── tests/          # node:test unit tests (no API key required)
├── .env.example
└── package.json

Design decisions:

  • No transpilation. The package runs as-shipped on Node 18+, so npm install github:... works instantly with no prepare/build surprises — critical for non-developer installs.

  • Thin tool layer. Each MCP tool maps 1:1 to a Semrush API report. Adding a tool = one server.registerTool() call with a zod schema. PRs that add reports are trivial to review.

  • Errors that explain themselves. Semrush returns logical errors as ERROR <code> with HTTP 200; the client normalizes these into actionable messages (check key / subscription / units).

  • stdout is sacred. The MCP server never writes to stdout except protocol frames — all logs go to stderr.

🔧 Local Development

git clone https://github.com/springvoiceswell/semrush-ai-tool.git
cd semrush-ai-tool
npm install
cp .env.example .env   # add your SEMRUSH_API_KEY
npm test                    # Unit tests (no API key needed)
npm start                   # Run the MCP server on stdio
npm run cli -- units        # Run the CLI
node --inspect src/index.js # Debug the server

Test the MCP server end-to-end with the official inspector:

npx @modelcontextprotocol/inspector node src/index.js

⚙️ Configuration

Variable

Default

Description

SEMRUSH_API_KEY

(required)

Your Semrush API key

SEMRUSH_RATE_LIMIT_PER_SECOND

10

Max API requests per second

SEMRUSH_TIMEOUT_MS

30000

Per-request timeout

➕ Adding a New Tool

  1. Find the report type in the Semrush API docs.

  2. Add a server.registerTool() block in src/tools.js with a zod input schema.

  3. Add the tool name to TOOL_NAMES and to the README table.

  4. Run npm test and open a PR. 🎉

🤝 Contributing

Contributions are welcome — new Semrush reports, CLI commands, docs, tests, and bug fixes.

  1. Fork the repo and create a feature branch: git checkout -b feat/my-report

  2. Keep the zero-build-step constraint (plain ESM JS, Node 18+).

  3. Add/adjust tests: npm test must pass.

  4. Open a PR with a clear description of the Semrush report or behavior added.

Please open an issue first for large changes.


🔒 Security

  • Never commit your API key. .env is git-ignored; use environment variables or your MCP client's env block.

  • Your key is sent only to Semrush's official API endpoints over HTTPS — this tool is fully self-hosted and makes no other network calls.

  • Anyone with your key can spend your API units. Rotate it immediately if exposed.

❓ FAQ

Do I need a paid Semrush account? Yes — the Semrush API requires a Business subscription or purchased API units. The tool itself is free and open source.

Is this an official Semrush product? No. This is a community-built, open-source project and is not affiliated with or endorsed by Semrush. Semrush also offers an official hosted MCP connector at https://mcp.semrush.com/v1/mcp if you prefer a managed option.

Does it work on Windows/Linux? Yes — anywhere Node.js 18+ runs. The step-by-step guide above is macOS-specific, but developers on any OS can use the quick install.

The AI says the tool failed with an API error? Run semrush-ai units — most failures are an unset SEMRUSH_API_KEY, an exhausted units balance, or a report your subscription doesn't include (e.g. .Trends).

🗺️ Roadmap

  • Keyword Gap analysis (domain-vs-domain)

  • Site Audit & Projects API tools

  • Full .Trends traffic & audience suite

  • Cached responses with configurable TTL

  • npm registry release (npm i semrush-ai-tool)

⭐ Support the Project

If semrush-ai-tool saves you time, please star the repo — it helps other SEOs and developers find it. Shares, issues, and PRs are all appreciated.

📄 License

MIT © 2026 springvoiceswell — free for personal and commercial use.


Keywords: Semrush SEO tool · Semrush API · MCP server · Model Context Protocol · AI SEO analysis · keyword research tool · backlink analysis · competitor analysis · domain analytics · keyword difficulty · SERP analysis · SEO automation · Claude SEO · Cursor MCP · AI marketing tools

Available Tools

18 tools
semrush_api_units_balanceAPI Units BalanceA

Check how many Semrush API units remain on the account. Call this before large batch jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a cheap, safe read that returns a remaining-units count, but does not state whether this call itself consumes units, what auth/permission it needs, or how the result is shaped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the purpose first and the usage trigger second; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, read-only utility with no output schema, the description covers what it does and when to call it. Minor gaps remain around return format and whether the call is cost-free, but nothing blocks correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: check remaining API units on the account. This is a distinct utility among data-fetching siblings, so an agent can identify it immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this before large batch jobs,' giving a clear trigger condition. It stops short of naming a threshold or an alternative when the balance is low, but no sibling competes for this use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_competitorsOrganic CompetitorsC

Domains competing with the target in organic search, ranked by competition level, common keywords and traffic.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
domainYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses almost nothing behavioral. It never states that this is a read-only metered API call, that results consume API units (only the schema's limit field hints at this), or how results are scoped to the database parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the resource and its ranking dimensions come first. It is efficient but omits any routing or constraint information that could have earned the fifth point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with three parameters this is minimally adequate: the output dimensions are described, but nothing covers cost/API-unit consumption across the limit range, database scoping behavior, or why one would pick this tool over its many keyword/competitor siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: limit and database are documented in-schema, domain is self-evident, and the description adds no parameter meaning at all. With coverage in the mid-range, the schema does most of the work, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('Domains competing with the target in organic search') and how results are ordered (competition level, common keywords, traffic). The 'organic search' qualifier implicitly separates it from the sibling semrush_domain_paid_competitors, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this over semrush_domain_paid_competitors, semrush_domain_organic_keywords, or semrush_domain_overview. Nothing states prerequisites, that domain is required, or when the tool is inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_organic_keywordsDomain Organic KeywordsA

Keywords a domain ranks for in Google's organic top 100, with position, search volume, CPC, traffic % and ranking URL. The core of any SEO competitor analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
domainYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully pins the scope to 'top 100' organic results, but says nothing about data freshness, credit/API-unit cost (only the schema hints at this), pagination, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the core scope statement front-loaded and the value proposition brief. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly enumerates the main returned fields (position, volume, CPC, traffic %, ranking URL), which is enough for an agent to judge relevance. Minor gaps around cost and freshness keep it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% — 'limit' and 'database' are already documented in the schema, and 'domain' is self-evident. The description lists output fields rather than adding meaning to any parameter, so it neither compensates for nor extends the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Keywords a domain ranks for'), scopes it precisely ('Google's organic top 100'), and enumerates the returned fields. The word 'organic' implicitly distinguishes it from the sibling semrush_domain_paid_keywords.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'The core of any SEO competitor analysis' gives an implied use case, but no explicit when-to-use/when-not and no named alternative (e.g., semrush_domain_overview for a summary or semrush_domain_paid_keywords for the paid side). Guidance is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_overviewDomain OverviewA

Get a domain's SEO overview across all regional databases: organic/paid keywords, traffic, traffic cost and Semrush rank. Best first call when analyzing any website.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to analyze, e.g. example.com

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It usefully discloses the cross-regional scope ('across all regional databases'), which tells the agent results are aggregate rather than single-database, but says nothing about API-unit/quota cost (a sibling exposes api_units_balance), rate limits, or whether the call is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the scope and payload come first, followed by the usage recommendation. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the necessary work of naming the returned metrics, so an agent knows what it will get. It remains silent on response shape, unit cost, and multi-region result structuring, which is a minor but real gap for a paid API call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, so the schema already defines 'domain' and its example format. The description adds no format, normalization, or subdomain handling guidance beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), resource ('a domain's SEO overview'), and enumerates the payload (organic/paid keywords, traffic, traffic cost, Semrush rank). It distinguishes itself from metric-specific siblings by being the aggregate view, though this differentiation is implied by the metric list rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Best first call when analyzing any website' is explicit, actionable guidance on when to reach for this tool. It does not name the follow-up alternatives (e.g. semrush_domain_organic_keywords) or state any exclusions, so it falls short of a full when/when-not routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_paid_competitorsPaid CompetitorsC

Domains competing with the target in Google Ads, with common paid keywords and ad traffic estimates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
domainYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only query, how API units are consumed, or whether results are paginated, and it says nothing about cost despite the schema hinting that row count drives unit spend.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the resource and return content front-loaded. It is terse rather than padded, though the brevity contributes to gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description partially compensates by naming the return content (paid keywords, ad traffic estimates). It still omits the required 'domain' input expectation, unit-cost implications, and how it differs from the organic-competitor sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%: limit and database are documented inline, while domain is undocumented but self-evident as the target. The description adds no parameter detail beyond what the schema already conveys, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (domains competing with the target in Google Ads) and the outputs it returns (common paid keywords, ad traffic estimates). The 'paid' qualifier distinguishes it from the organic semrush_domain_competitors sibling, though it never explicitly names that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus semrush_domain_competitors, semrush_domain_paid_keywords, or semrush_domain_overview. The use case is only implied by the word 'competitors', leaving the agent to infer selection criteria from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_paid_keywordsDomain Paid KeywordsB

Keywords a domain is bidding on in Google Ads, with ad position, volume, CPC and landing page URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
domainYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It does disclose the returned fields (ad position, volume, CPC, landing page URL), which is useful, but says nothing about permissions, rate limits, or API-unit cost beyond what the limit param already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence listing the resource and its key output fields, with zero filler. Appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the return fields, covering the return-value gap. But usage context and sibling differentiation are absent, leaving the definition only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: limit and database are documented in the schema (including the API-unit cost hint), while domain is self-evident. The description adds no parameter-level meaning, so the schema does the work — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: 'Keywords a domain is bidding on in Google Ads', which distinguishes it implicitly from the organic-keyword sibling. However, it never names semrush_domain_organic_keywords to make the paid-vs-organic split explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or alternative guidance is given. An agent must infer that this is the paid-side counterpart to semrush_domain_organic_keywords; nothing in the description routes it there.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_rankDomain Rank (single database)C

Overview of a domain's organic and paid search visibility in one regional database.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not state whether the operation is read-only, what permissions are needed, whether data is live or cached, or what the return structure looks like, leaving key behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is too thin. It does not explain the domain input format, what metrics or rankings are returned, or how it differs operationally from semrush_domain_overview, leaving an agent underprepared to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: the database parameter has a description, but the required domain parameter has none. The description mentions 'one regional database' but adds no format details for domain or database beyond what the schema already states, so it fails to compensate for the undocumented domain parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the resource (a domain's organic and paid search visibility) and scopes it to one regional database, which distinguishes it from multi-database or history siblings. It is clear but does not explicitly name the sibling tool it is not, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus semrush_domain_overview, semrush_domain_rank_history, or other siblings. The phrase 'one regional database' hints at a condition but does not state when that condition applies or what alternatives exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_domain_rank_historyDomain Rank HistoryB

Historical monthly rankings, keywords and traffic for a domain — great for spotting growth or drops over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
monthsNoHow many months of history (default 12)
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and mostly doesn't. 'Monthly' is the only granularity disclosure; there is nothing on auth/API-unit cost (relevant given the semrush_api_units_balance sibling), how many data points come back, latency, or whether missing months are returned as gaps. For a historical data pull with zero annotation coverage this is a real gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with the resource stated first and the use case trailing. No filler and no repetition of the title. It could arguably be slightly more generous with a route-to-alternative clause, but as written nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read tool with no annotations and no output schema, the description covers what the tool returns at a high level (rankings, keywords, traffic) but not the shape or granularity of the response, nor why the database choice matters. Adequate to call the tool, thin on what to expect back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%: months and database are already documented in the schema, while domain carries no description anywhere. The description adds nothing about parameter behavior — it doesn't explain that months caps at 36, that database selects the regional index, or that a rank in one database doesn't transfer to another. Baseline 3 is appropriate given the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource and scope: 'Historical monthly rankings, keywords and traffic for a domain'. The 'historical' qualifier implicitly separates it from semrush_domain_rank and semrush_domain_overview, but the description never names those siblings or states the contrast explicitly, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Great for spotting growth or drops over time' sketches a use case, which is more than nothing. But there is no explicit when-to-use versus when-not, and no pointer to semrush_domain_rank for a current snapshot or semrush_domain_overview for a summary, so selection among the ~17 siblings stays ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_keyword_difficultyKeyword DifficultyC

Keyword Difficulty index (0-100): how hard it is to rank in Google's top 10. Accepts up to 100 keywords at once for batch scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
phrasesYesList of keywords to score (max 100)
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the output scale and batch limit, but says nothing about permissions, rate limits, error behavior, or how database selection affects results. For a tool with zero annotation coverage, key behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, and the core definition is front-loaded ahead of the batch detail. Efficient and readable, though it ends without routing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description adequately explains the return value's meaning (0-100 scale). However, it omits how the database choice influences scores and offers no selection guidance among the many keyword siblings, leaving gaps an agent would want closed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters fully. The description's 'up to 100 keywords at once' mirrors the phrases maxItems constraint but adds no new semantics, and the database parameter is left to the schema. Baseline 3 applies when structured data does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific resource (Keyword Difficulty index) with a defined output scale (0-100) and states its meaning ('how hard it is to rank in Google's top 10'), plus the batch-scoring capability. This is a clear verb/resource statement, but it never positions itself against keyword siblings like semrush_keyword_overview or semrush_keyword_serp, so an agent must infer which keyword tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no mention of alternatives, and no exclusions. The description implies usage (scoring keywords to gauge ranking difficulty) but does not tell the agent when to choose this over semrush_keyword_overview or related keyword tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_keyword_overviewKeyword OverviewA

Summary metrics for a keyword across all databases: search volume, CPC, competition and results. Use for quick keyword validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYesKeyword/phrase to analyze, e.g. "seo tools"

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full disclosure burden. It clearly implies a non-mutating read of summary metrics, but it omits any auth requirements, cost in API units, rate limits, or acknowledging the all-databases scope's implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the resource and scope front-loaded and no filler; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the returned metrics and the cross-database scope, which is enough for a simple single-parameter read tool. It would be more complete if it referenced the single-database alternative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'phrase' parameter is fully documented in the schema itself. The description adds no syntax or format detail beyond what the schema already conveys, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb/resource ('Summary metrics for a keyword') and enumerates the returned fields (search volume, CPC, competition, results). The phrase 'across all databases' implicitly differentiates it from the sibling semrush_keyword_overview_single_db, though that sibling is not named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for quick keyword validation' gives an implied usage context, but it does not say when to prefer this over the many keyword siblings (single_db, keyword_difficulty, related_keywords, serp). No exclusions or explicit alternatives are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_keyword_overview_single_dbKeyword Overview (single database)C

Detailed keyword metrics in one regional database, including trend data and SERP features.

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses little beyond content. It does not state whether calls consume Semrush API units (relevant given the semrush_api_units_balance sibling), whether authentication is required, latency, or error behavior for invalid database codes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scope qualifier and included data types come early. It is efficient, though arguably too terse to be maximally useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and only two parameters, the description partially fills the gap by naming included data (trends, SERP features). However, it omits the routing decision against the sibling keyword_overview and any cost/limit context, leaving the definition adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: the 'database' parameter is documented with example codes and a default, but 'phrase' has no description. The description adds only a mild reinforcement of the regional-database concept, not new syntax or format meaning. Baseline 3 is appropriate given partial schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (keyword metrics) with a clear scope qualifier ('one regional database') and lists included outputs (trend data, SERP features). The 'single database' framing implicitly distinguishes it from the sibling semrush_keyword_overview, but the description never names that alternative, so the contrast must be inferred from the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. The phrase 'one regional database' hints at the selection condition versus a multi-database variant, but the sibling semrush_keyword_overview is never mentioned, leaving the agent to guess which tool to call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_keyword_questionsQuestion KeywordsC

Question-based keywords (who/what/where/when/why/how) containing the phrase — perfect for FAQ sections, featured snippets and People Also Ask targeting.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
phraseYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the keyword type. It omits cost/API-unit implications (hinted at only in the schema's limit field), pagination, and return shape — all relevant for a query tool with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence, front-loading the resource and its qualifier before the benefit clause. Nothing is wasted, though the marketing-flavored tail ('perfect for...') spends words on things other than invocation guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only keyword query with no annotations and no output schema, the description is minimally adequate but leaves gaps: no phrase-matching semantics, no note that higher limit values consume more API units, and no indication of the returned data structure. It is enough to call the tool, not enough to call it well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: limit and database are documented in-schema, while the required 'phrase' parameter has no description in either place. The description adds no parameter meaning (format, matching behavior, regional scoping) beyond what the schema already supplies, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource — question-based keywords matching a phrase — and defines the qualifying pattern (who/what/where/when/why/how). This meaningfully distinguishes it from sibling semrush_related_keywords, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence describes downstream applications of the results (FAQ sections, featured snippets, People Also Ask) rather than when to choose this tool over siblings like semrush_related_keywords or semrush_keyword_overview. No conditions, prerequisites, or alternatives are given for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_keyword_serpKeyword SERP ResultsC

Domains and URLs ranking in Google's organic top results for a keyword — instant SERP competitor snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of rows to return (default 10). More rows = more API units.
phraseYes
databaseNoRegional database code, e.g. us, uk, de, fr, es, it, br, au, ca, in (default: us)us

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It never states that this is a read-only query, says nothing about API unit consumption (the cost note lives only in the schema), pagination, rate limits, or the fields returned per ranking domain/URL. Only the core purpose is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler: it states the returned entities, the ranking context, and the keyword input. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and an undocumented required parameter, the description should explain return shape and cost/limit behavior. Instead it stops at the one-line purpose, leaving an agent unable to predict positions, result fields, or units consumed without opening the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, with 'limit' and 'database' documented in the schema but 'phrase' given no description at all. The description adds no parameter meaning — no mention of locale/database behavior, row-limit trade-offs, or the phrase format — so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('Domains and URLs ranking in Google's organic top results for a keyword'), so the agent knows exactly what data comes back. It does not distinguish itself from relational siblings like semrush_keyword_overview or semrush_domain_organic_keywords, which an agent could easily mistake for this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Instant SERP competitor snapshot' hints at the use case, but there is no explicit when-to-use, when-not-to-use, or named alternative among the 17 sibling tools. The agent must infer that this is the reverse-direction lookup (keyword → ranking domains) rather than the domain → keywords direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semrush_traffic_summaryTraffic Summary (.Trends)C

Website traffic estimates: visits, unique visitors, pages/visit, avg. visit duration and bounce rate. Requires a Semrush .Trends subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainsYesOne or more domains to compare

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the subscription requirement, which is useful, but says nothing about whether this is a read operation (implied by 'estimates'), whether results are cached or real-time, what period the traffic covers, or how multiple domains are returned. For a tool with no annotations and no output schema, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that lists the metrics efficiently and appends the subscription prerequisite. It is appropriately sized, though the prerequisite could be separated for scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-oriented tool, the description covers what is measured and the commercial prerequisite. However, without annotations or an output schema, it should at least clarify the time granularity, whether multiple domains return a comparison structure, and how this differs from semrush_domain_overview. The core need is addressed but gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already documents 'domains' as 'One or more domains to compare', including the 200-item maximum. The description does not add syntax, format, or comparison semantics beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (website traffic) and enumerates the exact metrics returned (visits, unique visitors, pages/visit, avg. visit duration, bounce rate), making the purpose concrete. It is less clear whether this tool is differentiated from siblings like semrush_domain_overview, which may also include traffic data, but the metric list is distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no indication of how this differs from semrush_domain_overview or other domain-level siblings, and no mention of alternatives. The subscription requirement is the only usage constraint, and it is stated as a prerequisite rather than a routing signal.

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.

  1. 18 tool updatesv1.0.0
    • First observedsemrush_api_units_balance
    • First observedsemrush_backlinks
    • First observedsemrush_backlinks_overview
    • First observedsemrush_backlinks_refdomains
    • First observedsemrush_domain_competitors
    • First observedsemrush_domain_organic_keywords
    • First observedsemrush_domain_overview
    • First observedsemrush_domain_paid_competitors
    • First observedsemrush_domain_paid_keywords
    • First observedsemrush_domain_rank
    • First observedsemrush_domain_rank_history
    • First observedsemrush_keyword_difficulty
    • First observedsemrush_keyword_overview
    • First observedsemrush_keyword_overview_single_db
    • First observedsemrush_keyword_questions
    • First observedsemrush_keyword_serp
    • First observedsemrush_related_keywords
    • First observedsemrush_traffic_summary

TDQS

B3.4/5.0

Scored across 18 tools

Disambiguation4/5

Tools map cleanly to distinct resource+action pairs (domain, keyword, backlinks, traffic), and competitor vs paid-competitor, organic vs paid keywords are well separated. The only real overlap is domain_overview/domain_rank and keyword_overview/keyword_overview_single_db, where the all-databases vs single-database distinction is subtle but clarified in descriptions.

Naming Consistency5/5

Every tool uses the semrush_ prefix followed by a predictable resource_action snake_case pattern (semrush_domain_*, semrush_keyword_*, semrush_backlinks_*). The all-databases vs single-database variants are named consistently, making the set easy to scan.

Tool Count4/5

18 tools is slightly heavy but justified given the breadth of the SEO analytics domain (domain, keyword, backlinks, traffic, competitors). Each tool covers a genuinely distinct data surface rather than padding the count.

Completeness4/5

Strong coverage across the core SEO workflow: domain analysis, keyword research, backlinks, competitor discovery, traffic estimates, plus an API balance check and batch keyword difficulty. Minor gaps remain (e.g. URL-level vs domain-level analysis, historical backlinks), but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

  • Semrush MCP Pack — SEO analytics via the Semrush Analytics API.

  • Your agent needs the derived numbers — domain authority, what a site ranks for, related and relevant keywords, search intent, and who the real competitors are — for Google, Amazon and the app stores. **What you can ask for** • "What is this domain's authority, and how has its rank history moved?" • "Which keywords does this site rank for, and with what intent?" • "Who are this domain's organic competitors, and where do we overlap?" • "Which keywords does this Amazon product rank for?" • "Compare these two domains keyword by keyword." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-labs/mcp and sign in with OAuth — there is no key to create or paste. 46 tools: ranked, related and relevant keywords, keyword ideas and intent, domain authority and rank history, competitor and intersection analysis, bulk metrics, plus the same shapes for Amazon products and Apple and Google Play apps. **Why this rather than the source** Ahrefs domain rating, Semrush rank history and DataForSEO Labs answering the same questions side by side. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Size the competitor here, then ask the same agent for their traffic mix or their contacts — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • Your agent needs the link graph — who points at a competitor, what anchor text they use, what was won or lost last month, and which sites link to all of your rivals but not to you. **What you can ask for** • "Who links to my competitor and not to me?" • "What anchors point at this domain, and how spammy are the sources?" • "Which links did this site win and lose in the last 30 days?" • "Compare the referring domains of these five competitors." • "Summarise the backlink profile of these 100 domains in bulk." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-backlinks/mcp and sign in with OAuth — there is no key to create or paste. 27 tools: backlinks and referring domains, anchors, new and lost links over time, domain and page intersections, referring networks, spam scores, bulk summaries for many domains at once, plus Semrush's own backlink and indexed-page sets. **Why this rather than the source** Two independent link indexes behind one account — coverage differs, and the gap is usually the interesting part. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the link gap here, then ask the same agent who runs those sites and how to reach them — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • Open-source AI SEO over MCP: audits, ranks, keywords, backlinks + AI visibility (GEO).

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides SEO automation with tools for keyword research, SERP analysis, and competitor analysis through Google Ads API integration, enabling AI assistants to access these capabilities via MCP.
    50
    -
  • F
    license
    B
    quality
    D
    maintenance
    Provides AI assistants with access to Semrush SEO API functionality including domain analytics, keyword research, backlink analysis, and competitor insights.
    7
    16
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Connects AI assistants to SEO APIs for backlinks analysis, keyword research, and traffic analysis.
    10 npm
    28
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables SEO analytics via the Semrush Analytics API, allowing AI agents to query Semrush data through natural language.
    42 npm
    MIT