SEOSearch IndexActive in MCP

Compare Keyword Coverage

compare_keyword_coverage(domain: string, competitors: string[])

Keyword gap vs competitors.

Keywords each competitor ranks for in the top 20 that your domain doesn't, highest search volume first, with search intent. Navigational searches (usually the competitor's own brand) are listed last, not removed.

Input Parameters

2 arguments
ParameterTypeRequirementDefault / ConstraintsDescription
domainstringrequired
none
Your primary domain to evaluate.
competitorsstring[]required
Array of 1 to 5 competitor domain strings
Competitor domains to find keyword gaps against.

Return Envelope (OFE / 1.0)

Open Fact Envelope

Every response adheres to the strict ofe/1.0 envelope schema, returning verified data, typed facts, entity references, and follow-up tool suggestions:

data Payload

Keywords each competitor ranks for in the top 20 that your domain doesn't, highest search volume first, with search intent. Navigational searches (usually the competitor's own brand) are listed last, not removed.

coverage & Freshness

Reports returned count vs total items, observation timestamp as_of, and scope notes. Evaluated live per request.

resources (Dataset Exports)

If a query yields high row counts (e.g. >1,000 queries in Search Console), full unpaginated tables are persisted to R2 and linked as an mcpseo:// URI for follow-up retrieval via export_dataset.

next_actions

Provides suggested follow-up tool calls with pre-filled arguments so your AI agent can navigate from discovery to detailed inspection autonomously.

Emitted Facts & Entities

Knowledge Graph

Typed Facts

Facts emitted in the facts[] array with provenance receipts:

Fact TypeClaim DescriptionEmitted Data Fields
seo.keyword_opportunityA keyword a competitor ranks for that your domain doesn't, with its demand and the competitor's position.
keywordsearch_volumekeyword_difficultysearch_intentcompetitor_domaincompetitor_positioncompetitor_url

Registered Entities

Entities registered in the entities[] array to establish subject relationships:

domain

Your domain and each competitor domain.

keyword

Discovered gap keywords.

Request & Response Examples

Live MCP Payloads

Exact JSON schemas transmitted over Model Context Protocol (stdio or HTTP SSE transport):

1. Client Tool Invocation

compare_keyword_coverage request.json
{
  "tool": "compare_keyword_coverage",
  "arguments": {
    "domain": "vouchedhq.com",
    "competitors": [
      "semrush.com"
    ]
  }
}

2. Server Envelope Response

compare_keyword_coverage response.json
{
  "schema_version": "ofe/1.0",
  "domain": "seo",
  "data": {
    "domain": "vouchedhq.com",
    "competitors": [
      "semrush.com"
    ]
  },
  "facts": [
    {
      "type": "seo.keyword_opportunity",
      "subject": [
        "urn:domain:vouchedhq.com",
        "urn:domain:semrush.com",
        "urn:keyword:open+source+semrush"
      ],
      "data": {
        "keyword": "open source semrush",
        "search_volume": 880,
        "keyword_difficulty": 22,
        "search_intent": "commercial",
        "competitor_domain": "semrush.com",
        "competitor_position": 4,
        "competitor_url": "https://www.semrush.com/"
      },
      "provenance": {
        "source_class": "search_index",
        "method": "keyword_gap",
        "confidence": 0.75,
        "observed_at": "2026-09-24T00:00:00Z",
        "cache_hit": false
      }
    }
  ],
  "entities": [
    {
      "id": "urn:domain:vouchedhq.com",
      "kind": "domain",
      "label": "vouchedhq.com"
    },
    {
      "id": "urn:domain:semrush.com",
      "kind": "domain",
      "label": "semrush.com"
    },
    {
      "id": "urn:keyword:open+source+semrush",
      "kind": "keyword",
      "label": "open source semrush"
    }
  ],
  "coverage": {
    "returned": 1,
    "total": null,
    "as_of": "2026-09-24T00:00:00Z",
    "scope_note": null
  },
  "deltas": [],
  "resources": [],
  "next_actions": []
}

LLM Agent Workflow

Claude & Cursor Integration
Step 1

Prompt Trigger

"Which keywords does semrush.com rank for that vouchedhq.com is missing?"
Step 2

Agent Decision & Reasoning

The agent uses compare_keyword_coverage to find immediate content and landing page expansion opportunities by analyzing competitor ranking gaps.

Step 3

Recommended Follow-up Tools

Provenance Guarantees & Error Handling

Reliability
Source Classsearch_index
Inspection Methodkeyword_gap
OFE Calibration Score0.75 (OFE 1.0 scale)
Cache DurationNone (Live)

Every fact emitted by Vouched includes source_class, method, observed_at ISO timestamp, and a published confidence score. LLM agents can inspect these citations to distinguish first-party verified facts (e.g. Search Console) from modeled competitor estimates.

Billing & API Keys

Paid market data, on Pro and Team. A call typically costs about $0.024 per competitor of market data, so Pro's included $4 covers roughly 166 calls with one competitor. Self-hosted, it uses your own DataForSEO key and bills you directly, with nothing added. See pricing for what each tool costs.

More SEO Tools

6 sibling tools
Self-host on GitHub (MIT)Try on Cloud plan