Cogny CLI · SEO

    Semrush scriptable from Bash.

    Query the Semrush Analytics API for domain overviews, organic and paid keywords, organic competitors, backlinks and keyword ideas — from the shell. The CLI parses Semrush CSV into clean JSON rows over the Semrush MCP.

    # 1. sign up (free for 15 calls) — uses your git email
    $ npx @cogny/cli init --agent claude-code
    
    # 2. see every Semrush tool
    $ cogny tools list
    
    # 3. call any tool from Bash — no MCP wiring
    $ cogny tools call mcp__Semrush__domain_overview --input '{…}'
    ❯ start Cogny Solo — $9/mo@cogny/cli on npm →

    cogny --who

    TWO PATHS
    You're a human

    Semrush hands you semicolon-delimited CSV exports you reformat in a spreadsheet before you can read them. The CLI parses every response into structured JSON rows in one call, ready to sort, diff, or feed to an agent. Connect Semrush once in Cogny Solo and let your coding agent — or scheduled reports — do the querying for you.

    ❯ start Solo
    You're an agent

    Self-onboard with one command. The CLI issues a key, wires nothing, and exposes every Semrush tool over JSON-RPC. First 15 calls are free.

    $ npx @cogny/cli init --agent claude-code

    cogny tools call

    3 EXAMPLES

    Real tool names from the Semrush MCP. Send --input JSON, get JSON back.

    mcp__Semrush__domain_overviewSummary metrics for a domain: rank, organic traffic, keywords, ads.
    $ cogny tools call mcp__Semrush__domain_overview \
      --input '{"domain":"example.com","database":"us"}'
    example response
    {
      "rows": [
        {
          "Db": "us",
          "Dn": "example.com",
          "Rk": "18422",
          "Or": "12840",
          "Ot": "94210",
          "Oc": "38200",
          "Ad": "420",
          "At": "8100",
          "Ac": "6100"
        }
      ],
      "count": 1
    }
    mcp__Semrush__domain_organic_keywordsKeywords a domain ranks for organically, by traffic.
    $ cogny tools call mcp__Semrush__domain_organic_keywords \
      --input '{"domain":"example.com","database":"us","display_limit":2,"display_sort":"tr_desc"}'
    example response
    {
      "rows": [
        {
          "Ph": "running shoes",
          "Po": "4",
          "Nq": "49500",
          "Cp": "1.85",
          "Ur": "https://example.com/shoes",
          "Tr": "0.18",
          "Tc": "0.21"
        },
        {
          "Ph": "trail running shoes",
          "Po": "2",
          "Nq": "22200",
          "Cp": "1.40",
          "Ur": "https://example.com/trail",
          "Tr": "0.16",
          "Tc": "0.14"
        }
      ],
      "count": 2
    }
    mcp__Semrush__phrase_relatedRelated keyword ideas for a seed phrase.
    $ cogny tools call mcp__Semrush__phrase_related \
      --input '{"phrase":"running shoes","database":"us","display_limit":2}'
    example response
    {
      "rows": [
        {
          "Ph": "best running shoes",
          "Nq": "40500",
          "Cp": "1.92",
          "Co": "0.71",
          "Nr": "88000000"
        },
        {
          "Ph": "cushioned running shoes",
          "Nq": "8100",
          "Cp": "1.55",
          "Co": "0.64",
          "Nr": "21000000"
        }
      ],
      "count": 2
    }

    cogny tools list

    MORE

    A sample of the rest of the Semrush surface. Run cogny tools list --json for every tool and its input schema.

    mcp__Semrush__domain_paid_keywordsmcp__Semrush__domain_organic_competitorsmcp__Semrush__backlinks_overviewmcp__Semrush__backlinksmcp__Semrush__keyword_overviewmcp__Semrush__phrase_organic

    cogny --faq

    Is this an official Semrush CLI?

    No — it is the Cogny CLI calling the Semrush MCP over the cogny-mcp-proxy. You connect your Semrush API key once inside Cogny and then call the Analytics API from Bash.

    Do I have to parse Semrush CSV myself?

    No. Semrush returns semicolon-delimited CSV; the proxy parses it into `{ rows, count }` JSON for you. The column codes (Ph, Po, Nq, …) follow Semrush export-column conventions.

    Which databases can I query?

    Any Semrush regional database — pass `database` like us, uk, de, fr, es, se. It defaults to us when omitted.

    related CLIs

    /cli/ahrefs/cli/search-console/cli/brave-search

    Building an agent? The full tool map for all servers is one fetch: /cli/llms.txt