| name | competitor-gap |
| description | Find keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability. Use when asked "what does competitor.com rank for", "keyword gap vs X", "steal competitor keywords", or "why do they outrank us". |
Competitor Gap
Requires
The free Ryze MCP connector (https://connector.get-ryze.ai/mcp). Claude Code: claude mcp add ryze --transport http https://connector.get-ryze.ai/mcp. claude.ai / Desktop / Cursor: add it as a custom connector with the same URL. Setup: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp
Their rankings are estimates (DataForSEO), yours are real (GSC). Diff them.
Workflow
- Competitor's keywords. Via the workspace's DataForSEO tools — Labs
ranked_keywords for the competitor domain (request shape: native__get_provider_docs, provider dataforseo). Pull top ~500 by volume. If DataForSEO isn't exposed in this workspace, check for connected ahrefs/semrush providers and use their organic-keywords endpoint instead; if none, stop and say which connection is missing.
- Competitor overview. Labs
domain_rank_overview — their estimated organic traffic and keyword count, for context.
- Your keywords.
google_search_console__runRawSearchAnalytics, dimension ["query"], last 90 days, high rowLimit — the full set of queries the user's site gets impressions for.
- Diff into three buckets:
- Gap — competitor ranks top 20, you have zero impressions → new content needed
- Behind — you both rank but they're ≥ 5 spots ahead → improve existing page
- Ahead — you outrank them (report briefly; it's the moat)
- Prioritize the Gap and Behind buckets by volume × relevance to the user's product. Drop branded competitor terms unless the user wants comparison pages — then list them separately as "vs / alternative" page candidates.
Output
Verdict (how big the gap is, in keywords and estimated traffic), then: Gap table (keyword, their position, volume, suggested page), Behind table (keyword, their pos, your pos, your page, fix), and a top-10 action list. Note explicitly which numbers are estimates (theirs) vs real (yours).