# How to connect Semrush to Hermes Agent (paste one key, 37 tools)

> Connect Semrush to Hermes with ClawLink: paste your Semrush key once and 37 tools work from chat. No MCP server to run, nothing stored on your machine.

Web version: https://claw-link.dev/hermes/semrush

Most guides for giving Hermes Agent Semrush access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Semrush setup: pair once in the browser and your always-on Hermes agent can act on Semrush for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

**Start here — paste this into Hermes to set up ClawLink:**

> Set up ClawLink for Hermes and tell me when it's ready.
> 1. Install the plugin: `hermes plugins install ClawLink-HQ/hermes-plugin --enable`
> 2. Start pairing with `hermes clawlink begin`. It prints an approval link, so show me the link and stop, don't wait.
> 3. I'll approve it in my browser, then reply "approved".
> 4. When I say approved, finish setup: `hermes clawlink finish`
> 5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

## Setup

It takes three steps to connect Hermes to Semrush.

1. **Install ClawLink** — add the plugin to Hermes Agent once.
2. **Connect Semrush** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask Hermes Agent in plain English.

**Alternative for any agent (no plugin needed):** if the Hermes Agent plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect semrush  # connect Semrush (browser OAuth)
npx -y @useclawlink/cli actions semrush  # list available actions
npx -y @useclawlink/cli run semrush <action> --input '<json>'  # execute (add --confirm for writes)
```

ChatGPT has quoted these wrong before, so here they are exactly. Run them once, then connect Semrush in the dashboard:

```bash
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin     # approve the link in your browser
hermes clawlink finish
hermes clawlink test
```

The plugin repo is `ClawLink-HQ/hermes-plugin`, capital H-Q, not `claw-link`. The pairing subcommand is `begin`, not `setup`. `hermes clawlink test` is the one that tells you pairing actually worked; run it before connecting Semrush so you are not debugging two things at once. Start a new chat after connecting so Hermes reloads its tool catalog.

### Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once Semrush is connected in the dashboard, that agent calls the same 37 Semrush tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## Semrush MCP for Hermes

Looking for a Semrush MCP server for Hermes Agent? ClawLink connects Semrush to Hermes Agent and exposes 37 Semrush tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using OpenClaw instead? The [OpenClaw Semrush integration](https://claw-link.dev/openclaw/semrush) works the same way.

Semrush now ships its own MCP server, and Google's answer to most agent queries is that server plus a config file. This page is the other route: your Semrush API key pasted once into a hosted setup page, nothing run locally, and 37 tools callable from chat. The pairing above is the whole client-side story. The official server has one genuine advantage worth stating plainly: Semrush includes MCP access with paid plans, so a Semrush customer already paying can use it. What it does not do is put Semrush beside your other connected accounts under one pairing, or remove the key and config handling from your machine. The page that search results put next to ours advertises up to 15 tools; the count here is 37, and the table below is the list.

## What the Hermes Agent Semrush integration can do

37 Semrush tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 37.

### 30 of 37 Semrush tools for Hermes

| Tool | What it does |
|---|---|
| **Account units balance** `semrush_account_units_balance` | Check Semrush account units balance |
| **Authority score profile** `semrush_authority_score_profile` | Get authority score for a domain |
| **Backlinks** `semrush_backlinks` | List backlinks for a domain |
| **Backlinks overview** `semrush_backlinks_overview` | Get backlink overview for a domain |
| **Batch keyword overview** `semrush_batch_keyword_overview` | Get keyword overview for multiple keywords |
| **Broad match keyword** `semrush_broad_match_keyword` | Find broad match keywords |
| **Competitors in organic search** `semrush_competitors_in_organic_search` | Find organic search competitors |
| **Domain organic pages** `semrush_domain_organic_pages` | List organic pages for a domain |
| **Domain organic search keywords** `semrush_domain_organic_search_keywords` | List organic search keywords for a domain |
| **Domain vs domain** `semrush_domain_vs_domain` | Compare two domains in Semrush |
| **Historical data** `semrush_historical_data` | Get historical keyword data from Semrush |
| **Keyword difficulty** `semrush_keyword_difficulty` | Check keyword difficulty in Semrush |
| **Keyword overview one database** `semrush_keyword_overview_one_database` | Get keyword overview for a specific database |
| **Organic results** `semrush_organic_results` | Get organic search results for a keyword |
| **Phrase questions** `semrush_phrase_questions` | Find questions related to a keyword |
| **Ads copies** `semrush_ads_copies` | Retrieves unique ad copies Semrush has observed for a specified domain from a regional |
| **Anchors** `semrush_anchors` | Use this action to get a CSV report of anchor texts for backlinks pointing to a specified |
| **Batch comparison** `semrush_batch_comparison` | Compares backlink profiles for multiple specified targets (domains, subdomains, or URLs) to |
| **Categories** `semrush_categories` | Retrieves categories and their 0-1 confidence ratings for a specified domain, subdomain, or |
| **Categories profile** `semrush_categories_profile` | Retrieves a profile of content categories from referring domains for a specified target |
| **Competitors** `semrush_competitors` | Retrieves a CSV-formatted report of competitors for a specified target (root domain, domain, or |
| **Competitors in paid search** `semrush_competitors_in_paid_search` | Retrieves a list of a domain's competitors in paid search results from a specified regional |
| **Domain ad history** `semrush_domain_ad_history` | Retrieves a domain's 12-month advertising history from Semrush (keywords bid on, ad positions |
| **Domain organic subdomains** `semrush_domain_organic_subdomains` | Retrieves a report on subdomains of a given domain that rank in Google's top 100 organic search |
| **Domain paid search keywords** `semrush_domain_paid_search_keywords` | Fetches keywords driving paid search traffic to a specified, existing domain using a supported |
| **Domain pla search keywords** `semrush_domain_pla_search_keywords` | Retrieves Product Listing Ad (PLA) search keywords for a specified domain from a Semrush |
| **Indexed pages** `semrush_indexed_pages` | Retrieves a list of indexed pages from Semrush for a specified `target` (root domain, domain |
| **Keyword overview all databases** `semrush_keyword_overview_all_databases` | Fetches a keyword overview from Semrush for a specified phrase, including metrics like search |
| **Keywords ads history** `semrush_keywords_ads_history` | Fetches a historical report (last 12 months) of domains advertising on a specified keyword in |
| **Paid results** `semrush_paid_results` | Fetches domains ranking in Google's paid search results (AdWords) for a specified keyword and |

## Example prompts

**Know the account state first**

> Start with semrush_account_units_balance, then use semrush_keyword_overview_one_database for \<keyword> in the US database. Report the unit balance and the keyword metrics.

**Audit a domain**

> Run semrush_domain_organic_search_keywords for \<domain> in the US database and semrush_domain_vs_domain comparing \<domain> against \<competitor>. Give me the top 10 keywords and where we trail the competitor.

**Batch keyword research**

> Use semrush_batch_keyword_overview for \<k1>, \<k2>, \<k3>, \<k4>, \<k5> in the US database, then semrush_keyword_difficulty for the same list. Table of volume, difficulty, and intent.

**Find question phrases**

> Call semrush_phrase_questions for \<seed topic> in the US database and give me the 15 questions with the highest volume that could become content briefs.

## How the Semrush tools behave

Details that decide whether a Semrush prompt is a quick answer or a unit-burning sweep.

- **Most tools take a database argument.** Reports like `semrush_domain_organic_search_keywords` and `semrush_keyword_overview_one_database` need the market code (US, UK, DE and so on), and the numbers change per market. An omitted database fails with a required-argument error.
- **Batch tools exist and should be used.** `semrush_batch_keyword_overview`, `semrush_batch_comparison`, and `semrush_organic_results` are the multi-target shapes; single-keyword loops are the wasteful shape that triggers the rate card above.
- **The unit balance is readable by the agent.** `semrush_account_units_balance` is in the tool set, so "check the balance before you start" is a real instruction, not a dashboard trip.
- **The database-specific and all-database tools are different.** `semrush_keyword_overview_one_database` takes one market; `semrush_keyword_overview_all_databases` sweeps every database Semrush supports in one response and costs accordingly.
- **Competitors come from two angles.** `semrush_competitors_in_organic_search` and `semrush_competitors_in_paid_search` answer the same question for different channels; `semrush_competitors` and `semrush_competitors_in_organic_search` are not duplicates, one is the competitor list, the other the overlap report.
- **Read-only surface.** Every tool reads Semrush data; nothing creates, edits, or deletes in the account, so the blast radius of a wrong prompt is wasted units, never a changed project.

## ClawLink vs. building it yourself

The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Semrush working from chat.

| | Manual | ClawLink |
|---|---|---|
| **Credential handling** | Collect, validate, store, and rotate the Semrush API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected Semrush account becomes available to the agent without you building credential management. |
| **Ongoing maintenance** | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Semrush. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| **Agent usability** | You still need to expose the right Semrush actions to the runtime in a format your agent can reliably use. | 37 tools for Semrush are already exposed through ClawLink, so the agent can read and act from chat immediately. |

## ClawLink vs. Composio

Composio also exposes Semrush to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Semrush in the browser, and the 37 tools above work from chat. There is no SDK and no config file, and the Semrush key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full [Composio alternatives](https://claw-link.dev/hub/composio-alternatives) comparison.

### Hermes paired but still can't use Semrush
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

### Connection succeeds but no tools appear
Reconnect Semrush from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

### "Tool schema not loaded yet" error when calling Semrush tools
Semrush tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Semrush call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

### Semrush returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

### Semrush returns 403 "insufficient permissions" although the account shows as connected
The causes search results teach for this provider are plan tier, an invalid or expired key, and depleted units: some endpoints require Guru or Business tier, a rotated key fails everything from that moment, and a unit pool that is spent refuses calls regardless of the key. The causes this page's card already names remain real and are the ones only a hosted flow produces: a placeholder value such as YOUR_ID reaching the API as a literal argument, and calls that ask for data the connected Semrush account's plan cannot see. Start by checking the account's unit balance and tier, then confirm the key pasted in the dashboard is the current one from Semrush, then re-run the failed call with real arguments. Reconnecting is the last move, not the first.

Ask the agent to diagnose it:

```text
Call semrush_account_units_balance and tell me the unit balance, then quote the exact error from the failed call. Do not retry the failed call yet.
```

### Semrush starts returning 429 or the agent stalls partway through a keyword sweep
Semrush limits request rates and charges units per endpoint, and an agent walking many keywords is the shape that meets both: one call per keyword, one call per database, one call per metric family. The fix is to change the shape of the work, not to retry it. `semrush_batch_keyword_overview` pulls many keywords in one call, so ask for batches instead of loops. If the account's unit pool is the constraint, no retry changes it and the balance call makes that visible.

Ask the agent to diagnose it:

```text
Tell me how many Semrush calls you have made in the last few minutes and what you were sweeping. Quote any error text from the last response. Do not call Semrush again until I reply.
```

### Semrush tools are missing, or one tool name is not found
Two failures share this symptom. If no Semrush tools appear at all, the connection or pairing is incomplete: confirm the plugin was installed with --enable, that `hermes clawlink begin` and `hermes clawlink finish` both ran, and that Semrush shows as connected in the dashboard. If most tools work and one name fails, the name is wrong rather than missing and the error lists the closest real ones. There is also a first-call timing case: schemas load on demand, so the opening Semrush call in a fresh session can arrive before the catalog and needs one retry. The frame most search results teach, a wrong config path in a client config file or a stale MCP session, does not apply to a hosted setup.

Ask the agent to diagnose it:

```text
List the Semrush tools you actually have access to. If there are none, say so plainly and tell me whether Semrush shows as connected. Do not guess tool names.
```

### API key setup works but results look incomplete
Double-check that the API key for Semrush has the right scopes or account access. A valid key can still be too limited for some reads or writes.

### Is there a Hermes Agent Semrush integration?
Yes. ClawLink is the fastest way to connect Hermes to Semrush: link your Semrush account once in the browser and Hermes Agent can call the Semrush API through 37 ready-made tools — no custom code or token handling.

### How do I connect Semrush to Hermes with ClawLink?
Install the plugin with `hermes plugins install ClawLink-HQ/hermes-plugin --enable`, then pair once: run `hermes clawlink begin`, approve the link in your browser, and run `hermes clawlink finish`. Connect Semrush in the dashboard and Hermes can use it from the next message — no config files, and the Semrush key you paste is stored server-side instead of in your environment.

### How long does it take to connect Semrush to Hermes Agent?
About two minutes. Sign in, click Connect next to Semrush in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

### Why use ClawLink instead of wiring Semrush up myself?
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Semrush working from chat.

### Which key does this need, and what plan does it require?
A Semrush API key from your Semrush profile, pasted once on the hosted setup page and held server-side. Search results teach that API access comes with the paid tiers and that creating a key means buying API units, so the key itself is the part of Semrush you cannot skip. If a tool call returns a permission or quota error, the first thing to check is the account's plan and unit balance rather than the connection: some endpoints sit behind higher tiers, and every call draws from the purchased unit pool. `semrush_account_units_balance` reads the unit balance directly, which makes it the natural first call in a fresh session.

### How is this different from Semrush's official MCP server?
Semrush's server is a hosted MCP endpoint included with paid plans, and the setup search results teach is pasting its URL into a client config. ClawLink also runs hosted, but you never touch the MCP layer: the key goes into the dashboard once, and Hermes gets 37 named tools it can reason about individually rather than one opaque endpoint. The official route is the right choice if you already use another MCP client and want Semrush there verbatim. This route is the right choice if Hermes is your agent and you want Semrush alongside every other connection, with one place to revoke it.

### What can the agent do in Semrush?
The research surface: organic and paid keyword positions, competitors in organic and paid search, domain versus domain comparisons, keyword overviews across one or all databases, keyword difficulty, phrase and question research, broad-match expansion, organic pages and subdomains, indexed pages, ads copies and history, backlinks and anchors, categories, and the account unit balance. It is a read-only surface: nothing in Semrush is written by the agent.

### Is it safe to let the agent use my Semrush key?
The safety answer search results give is that Semrush connections are generally secure through official channels, with the risks being a compromised token draining units and shared master keys. Here the key is stored server-side rather than in an environment file on your machine, it is never pasted into chat, and disconnecting Semrush in the dashboard revokes the agent's use of it immediately. The remaining consideration is unit burn: agent calls draw from the same purchased unit pool your own calls use, so a long audit prompt costs real units and it is worth telling the agent to check `semrush_account_units_balance` before a big sweep.

### Hermes paired but still can't use Semrush
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

## Related

- [Metabase](https://claw-link.dev/hermes/metabase) — Metabase is an open-source business intelligence tool that lets you ask questions about your data and visualize answers as charts, graphs, and dashboards.
- [Hermes Twelve Data integration](https://claw-link.dev/hermes/twelve-data) — Twelve Data provides a comprehensive financial data API offering real-time and historical market data for stocks, forex, cryptocurrencies, ETFs, and indices.
- [Gosquared](https://claw-link.dev/hermes/gosquared) — GoSquared provides real-time web analytics and customer engagement tools to help businesses understand and interact with their website visitors.
