Rankdelta MCP — Connect Cursor, Claude & ChatGPT
Connect Cursor, Claude, ChatGPT, or Grok to Rankdelta AI SEO software via hosted MCP. Use a personal API key or OAuth so agents can read AI visibility and run research tools on your account.
Rankdelta's MCP server lets Claude, ChatGPT, Cursor, OpenCode or any MCP client run Rankdelta's SEO and AI-visibility tools on your account.
Connect
Endpoint (streamable HTTP): https://mcp.rankdelta.ai/mcp. Authenticate with a personal API key (Settings → API & MCP) as a Bearer token, or with OAuth. In Claude Code:
claude mcp add rankdelta --transport http https://mcp.rankdelta.ai/mcp --header "Authorization: Bearer sk_rankdelta_…"
Self-hosted, the endpoint is <your Supabase URL>/functions/v1/mcp with a key from your instance. On the cloud, every tool call goes through the same server-side spend cap as the web app.
Tools (36)
search— Search your Rankdelta account for sites to research. Returns citable results ({id,title,url}); pass an id to fetch() for that site's AI Share of Voice and details. An empty query returns all your sites.fetch— Fetch the full research document for a search result id (e.g. "site:<uuid>"): AI Share of Voice per engine plus site details.list_sites— List the sites tracked in your Rankdelta account (id, name, url).get_ai_visibility— AI Share of Voice for a site — your mentions vs competitors across ChatGPT, Perplexity, Gemini (last 30 days), measured on discovery prompts (ones that do not name your brand). Branded prompts are reported apart in brandedPrompts.list_ai_recommendations— Competitors the AI engines recommend instead of you, ranked by mention count (last 30 days, discovery prompts — same scope as get_ai_visibility).list_engines— List the AI engines this Rankdelta account can query.run_visibility_scan— Run a capped AI-visibility scan for a site (default up to 6 active prompts × engines). Costs API credits against your account monthly cap.add_site— Register a new site/project in the account so other tools can use it. Creates the project row only — no crawl, no scan, no credits spent. Pass the returned id to setup_ai_visibility (or run_visibility_scan / track_rank) as the next step.setup_ai_visibility— One-shot AI-visibility activation for a new site: create tracked brand, seed competitors from prior AI answers (if any), generate visibility prompts, and run the first capped scan. Requires a paid plan; the scan spends API credits.list_visibility_prompts— List a site's AI-visibility prompts (the questions asked to ChatGPT, Perplexity, Gemini and AI Overviews) with id, text, intent, active flag and whether they were auto-generated.add_visibility_prompts— Add your own AI-visibility prompts to a site (1–20 per call). Duplicates are skipped, and active prompts stay within the plan limit (Starter 10, Growth 20, Pro 30; no limit on Agency). Prompts are scanned on the next scheduled run or with run_visibility_scan (which spends credits); adding them spends nothing. Requires a paid plan.set_visibility_prompt_active— Pause or resume one AI-visibility prompt (paused prompts are not scanned; their history is kept). Resuming respects the plan limit on active prompts.set_rank_active— Pause or resume one tracked Google keyword (paused keywords are not checked on the schedule; their position history is kept). Resuming respects the plan limit on active keywords.list_ranks— List a site's tracked keywords with their latest Google position.track_rank— Add a keyword to a site's Rank Tracker (does not run a SERP check by itself).check_ranks— Run a fresh Google SERP check for tracked keywords on a site (costs DataForSEO credits, ~$0.015 per keyword). Checks the least-recently-checked keywords first, a few in parallel, and returns within about a minute: keywords it had no time for come back as deferred (not charged) — call again to continue. Read results with list_ranks.keyword_research— Keyword discovery engine. mode=lookup (default): bulk volume + difficulty for a keyword list. mode=expand: related keyword ideas from a seed (suggestions + category ideas). mode=domain: keywords a domain already ranks for. Each result includes keyword, volume, difficulty, and source. Optional location_code (DataForSEO) and language_code override site/project locale (site_id) or default US/en (2840/en). Costs DataForSEO credits against your plan cap.audit_page— On-page/technical SEO snapshot for a URL (DataForSEO instant pages).backlink_summary— Backlink profile summary — domain rank (DataForSEO 0–1000, not Ahrefs DR), backlinks, referring domains.domain_overview— Organic overview — estimated traffic, keyword count, traffic value.generate_article— Generate a GEO-oriented article draft (title + markdown) for a topic via the account LLM. Costs credits.mine_fanouts— Mine already-stored AI answers for fanout sub-questions (People Also Ask / related / explicit "?"). Default is ZERO LLM cost (structural extract only). dry_run=true estimates optional extract=true LLM calls and executes nothing. extract=true spends ~$0.0004/query, cap $0.02.get_source_gaps— Rank citation domains from stored AI answers: citation_count, sample_urls, your_presence, gap_score. Pure aggregation, cost_usd=0.get_cannibalization— Keyword cannibalization from stored rank snapshots. Default cost_usd=0. dry_run=true returns keyword_count + estimated_usd and executes NOTHING. refresh=true spends one batched SERP call (capped, default 100 keywords) — only after the user confirms the dry-run estimate.get_link_intersect— Referring domains that link to competitor_domain but NOT the site, from stored backlink_referring_domains. Default cost_usd=0. dry_run=true estimates a domain_intersection call and executes nothing. refresh is refused.get_content_gap— Keywords where the competitor ranks Google top-20 and the site does not rank top-100, from stored SERP snapshots. cost_usd always 0. Never fires DataForSEO.get_brand_sentiment— Sentiment (positive/neutral/negative + accuracy) of already-stored AI answers that mention your brand, aggregated per engine. Default never spends. Too few mentions → insufficient_data (no invented %). dry_run=true estimates gpt-4o-mini cost. classify=true spends up to $0.05/run after the user confirms.get_gsc_property— Get the connected Google Search Console property for a site (if any). Reads the project cache only — no OAuth tokens.get_gsc_analytics— Cached Google Search Console Search Analytics for a site — clicks, impressions, CTR, average position, top queries and top pages (read-only; not a third-party rank tracker).query_gsc_search_analytics— Live Google Search Console Search Analytics for a site, any date range in the last ${GSC_HISTORY_MONTHS} months (Google keeps no more), grouped by any dimensions and filterable — e.g. a query's clicks by month over a year, pages that lost impressions, Discover or image traffic. Read-only, uses the site's connected Search Console. Data lags ~2 days. Note: manual actions, security issues, the Page indexing report, Core Web Vitals and links are not available in Google's API — use inspect_gsc_url for a URL's index status.inspect_gsc_url— Google Search Console URL Inspection for one URL of the site: whether it is indexed and why not (coverage state), last crawl, robots.txt and fetch state, Google's canonical vs the declared one, sitemaps listing it, mobile usability and rich results. Read-only; Google allows ~2,000 inspections per property per day.list_gsc_sitemaps— Sitemaps submitted in Google Search Console for the site: last submitted and last read by Google, pending state, errors, warnings and submitted URL counts. Read-only.get_ga4_property— Get the connected Google Analytics 4 property for a site (if any). Reads the project cache only — no OAuth tokens.get_ga4_analytics— Cached Google Analytics 4 data for a site — sessions, users, pageviews, bounce rate, top pages and top sources.list_client_reports— Client reports built in Rankdelta (agency reporting): one line per report with period, headline KPIs and the public share link. Optionally for one site.get_client_report— Full content of one client report — AI visibility (share of voice, engines, prompts won/missing, competitors), Search Console, GA4, rankings, site health, backlinks, the written summary and next steps, branding and share link. Use it to brief, to answer questions about a client, or to build a presentation (see the rankdelta-client-deck skill). Pass report_id, or site_id for the latest report of that site.
Source code: github.com/rankdelta/rankdelta (AGPL-3.0).