Semrush CLI for AI Agents

Framework Integration Gradient
Semrush Logo
CLI Logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 850+ SaaS applications. With Semrush, agents can show top anchor texts for example.com, compare backlink profiles for three domains, get keyword overview for 'organic coffee', and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Semrush automation.

Also integrate Semrush with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 850+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Semrush to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Semrush"
  3. Complete the authentication and authorization flow and your Semrush integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Get ad copiesRetrieves unique ad copies semrush has observed for a specified domain from a regional database, detailing ads seen in google's paid search results.
Get anchor textsUse this action to get a csv report of anchor texts for backlinks pointing to a specified, publicly accessible domain, root domain, or url.
Get authority score profileRetrieves the authority score (as) profile for a specified target, showing the count of referring domains that link to the target for each as value from 0 to 100.
Get backlinksFetches backlinks for a specified domain or url as a csv-formatted string, allowing customization of columns, sorting, and filtering; ensure `display limit` surpasses `display offset` when an offset is used, and note the `urlanchor` filter may have limitations for targets with extensive backlinks.
Backlinks overviewProvides a csv-formatted summary of backlinks, including authority score and link type breakdowns, for a specified and publicly accessible domain, root domain, or url.
Batch comparisonCompares backlink profiles for multiple specified targets (domains, subdomains, or urls) to analyze and compare link-building efforts.
Batch keyword overviewFetches a keyword overview report from a semrush regional database for up to 100 keywords, providing metrics like search volume, cpc, and keyword difficulty.
Broad match keywordFetches broad match keywords for a given phrase; `display sort` and `display filter` parameters are defined but currently not utilized by the api call.
Get categoriesRetrieves categories and their 0-1 confidence ratings for a specified domain, subdomain, or url, with results sorted by rating.
Get categories profileRetrieves a profile of content categories from referring domains for a specified target, analyzing its first 10,000 referring domains and sorting results by domain count.
Get competitor dataRetrieves a customizable csv report of competitors for a specified target (root domain, domain, or url) based on shared backlinks or referring domains, ensuring the target is valid and its type is correctly specified.
Get competitors in organic searchUse to get a domain's organic search competitors from semrush as a semicolon-separated string; `display date` requires 'yyyymm15' format if used.
Get competitors in paid searchRetrieves a list of a domain's competitors in paid search results from a specified regional database.
Get domain ad historyRetrieves a domain's 12-month advertising history from semrush (keywords bid on, ad positions, ad copy) for ppc strategy and competitor analysis; most effective when the domain has ad history in the selected database.
Get domain organic pagesFetches a report on a domain's unique organic pages ranking in google's top 100 search results, with options for specifying database, date, columns, sorting, and filtering.
Get domain organic search keywordsRetrieves organic search keywords for a domain from a specified semrush regional database; `display positions` must be set if `display daily=1` for daily updates.
Get domain organic subdomainsRetrieves a report on subdomains of a given domain that rank in google's top 100 organic search results for a specified regional database.
Get domain paid search keywordsFetches keywords driving paid search traffic to a specified, existing domain using a supported semrush regional database.
Get PLA search keywords for a domainRetrieves product listing ad (pla) search keywords for a specified domain from a semrush regional database.
Compare domainsAnalyzes keyword rankings by comparing up to five domains to find common, unique, or gap keywords, using specified organic/paid types and comparison logic in the `domains` string.
Get historical dataRetrieves monthly historical backlink and referring domain data for a specified root domain, returned as a time series string with newest records first.
Get indexed pagesRetrieves a list of indexed pages from semrush for a specified `target` (root domain, domain, or url) and `target type`, ensuring `target` is publicly accessible, semrush-analyzable, and correctly matches `target type`.
Get keyword difficultyDetermines the keyword difficulty (kd) score (0-100, higher means greater difficulty) for a given phrase in a specific semrush regional database to assess its seo competitiveness.
Keyword overview all databasesFetches a keyword overview from semrush for a specified phrase, including metrics like search volume, cpc, and competition.
Get keyword overview for one databaseFetches a keyword summary for a specified phrase from a chosen regional database.
Get keywords ads historyFetches a historical report (last 12 months) of domains advertising on a specified keyword in google ads, optionally for a specific month ('yyyymm15') or the most recent period, returning raw csv-like data.
Get organic resultsRetrieves up to 100,000 domains and urls from google's top 100 organic search results for a keyword and region, returning a raw string; use `display date` in 'yyyymm15' format (day must be '15') for historical data.
Get paid search resultsFetches domains ranking in google's paid search results (adwords) for a specified keyword and regional database.
Phrase questionsFetches question-format keywords semantically related to a given query phrase for a specified regional database, aiding in understanding user search intent and discovering content ideas.
Get PLA competitorsRetrieves domains competing with a specified domain in google's product listing ads (pla) from a given semrush regional database.
Get PLA copiesFetches product listing ad (pla) copies that semrush observed for a domain in google's paid search results.
Get referring domainsRetrieves a report as a text string (e.
Get referring domains by countryGenerates a csv report detailing the geographic distribution of referring domains (by country, determined via ip address) for a specified, publicly accessible target.
Referring i psFetches ip addresses that are sources of backlinks for a specified target domain, root domain, or url.
Find related keywordsCall this to find related keywords (including synonyms and variations) for a target phrase in a specific regional database; `display date` (if used for historical data) must be 'yyyymm15' for a past month.
Get TLD distributionFetches a report on the top-level domain (tld) distribution of referring domains for a specified target, useful for analyzing geographic or categorical backlink diversity.

Universal CLI Commands for Semrush

You can also manually execute CLI commands to interact with your Semrush.

Connect your Semrush account

Link your Semrush account and verify the connection:

bash
# Connect your Semrush account (opens OAuth flow)
composio connected-accounts link semrush

# Verify the connection
composio connected-accounts list --toolkits semrush

Discover Semrush tools

Search and inspect available Semrush tools:

bash
# List all available Semrush tools
composio tools list --toolkit semrush

# Search for Semrush tools by action
composio tools search "semrush"

# Inspect a tool's input schema
composio tools info SEMRUSH_ADS_COPIES

Common Semrush Actions

Get ad copiesRetrieves unique ad copies semrush has observed for a specified domain from a regional database, detailing ads seen in google's paid search results

bash
composio tools execute SEMRUSH_ADS_COPIES \
  --domain "semrush.com" \
  --database "us"

Get anchor textsUse this action to get a csv report of anchor texts for backlinks pointing to a specified, publicly accessible domain, root domain, or url

bash
composio tools execute SEMRUSH_ANCHORS \
  --target "semrush.com" \
  --target_type "root_domain"

Get authority score profileRetrieves the authority score (as) profile for a specified target, showing the count of referring domains that link to the target for each as value from 0 to 100

bash
composio tools execute SEMRUSH_AUTHORITY_SCORE_PROFILE \
  --target "example.com" \
  --target_type "root_domain"

Get backlinksFetches backlinks for a specified domain or url as a csv-formatted string, allowing customization of columns, sorting, and filtering; ensure `display limit` surpasses `display offset` when an offset is used, and note the `urlanchor` filter may have limitations for targets with extensive backlinks

bash
composio tools execute SEMRUSH_BACKLINKS \
  --target "example.com" \
  --target_type "<string>"

Generate Type Definitions

Generate typed schemas for Semrush tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits semrush

# TypeScript
composio ts generate --toolkits semrush

# Python
composio py generate --toolkits semrush

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Semrush operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Semrush MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 850+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Semrush and other connected apps.

How is the CLI different from using an MCP server for Semrush?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Semrush data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Semrush data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.