Rankdelta

io.github.alordincansPublished by GitHub account alordincansv0.3.1Updated Oct 24, 2026

Open-source AI SEO over MCP: audits, ranks, keywords, backlinks + AI visibility (GEO).

Overview

AI-generated overview

Rankdelta is a hosted SEO and AI-visibility MCP server that lets an assistant run audits, rank tracking, keyword research, backlink lookups and GEO reports.

What you can do
  • Run AI-visibility checks: ask ChatGPT, Perplexity, Gemini and Google AI Overviews buyer prompts and see share of voice, competitors and cited sources
  • Research keywords with SERP clustering, track Google rankings, and explore sites and backlinks
  • Audit sites for technical and GEO issues and get next-step recommendations
  • Build, schedule and export reports (PDF, PowerPoint, white-label) combining AI visibility, rankings, Search Console, GA4 and site health
  • Draft SEO/GEO articles grounded in live SERP research, with visible placeholders where sources are missing
When to use it
Useful for SEO consultants, agencies and site owners who want an assistant to gather rankings, backlinks, audits and AI-answer visibility and turn them into client-ready reports, rather than only raw research data.
Requirements
Remote endpoint at mcp.rankdelta.ai over streamable HTTP with OAuth sign-in; the README also shows an API key sent as an Authorization Bearer header created in the account settings. A Rankdelta account is needed. Self-hosting instead requires Docker, Node 20, pnpm, the Supabase CLI and your own DataForSEO and OpenRouter keys.
Before you install
Tool calls consume paid provider credits: roughly $0.004 per prompt per engine for AI visibility, about $0.03 per research lookup and $0.09 per article; the hosted cloud applies a server-side spend cap, while self-hosting bills your own provider accounts directly. Tools can create reports, schedule scans and send emails, and data is sent to third-party providers such as DataForSEO and OpenRouter. Keep provider keys server-side and never in VITE_ variables.

Installation

In SourceWeft

  1. Open Rankdelta in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.alordincans%2Frankdelta/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "rankdelta": {
      "type": "http",
      "url": "https://mcp.rankdelta.ai/mcp"
    }
  }
}

README

Rankdelta

Open-source SEO and AI-visibility reporting, for agencies and for your own sites.

Find out what ChatGPT, Perplexity and Gemini say when someone asks for what you sell. See it next to your Google rankings, Search Console and GA4, and send it as one report your client actually reads. Run it on your own keys, or let us host it.

[License: AGPL-3.0] [MCP server] [Languages] [Hosted cloud]

Hosted cloud · Self-host guide · MCP docs · Discussions

Works with your agent: Claude, ChatGPT, Cursor, OpenCode, or any MCP client.

[A Rankdelta client report: cover, executive briefing, export to PDF and PowerPoint]

Why Rankdelta

  • Your prompts, asked live. Not a pre-collected database: Rankdelta asks ChatGPT, Perplexity, Gemini and Google AI Overviews the questions your buyers ask, on a schedule, for about $0.004 per prompt per engine. You see who gets named, who gets named instead of you, and which sources the answers cite.
  • One report per site, ready to send. AI visibility, rankings, Search Console, GA4, site health and backlinks in one place, with a summary and next steps grounded in the numbers. Keep it for your team or white-label it; share it by link, email it weekly or monthly, export it to PDF or PowerPoint.
  • English and Italian. Prompts are generated in each market's language, and the interface, reports and emails come in both. New sites pick up their language and market from the site itself.
  • A writer that doesn't make things up. It drafts the page you're missing from live SERP research, and never invents statistics, experts, quotes or sources: where your own data belongs, it leaves a visible [Source needed: …] note.
  • Agent-native. 32 MCP tools with per-user keys, so your agent can run the same workflows you do.
  • No feature gates. Self-hosting is bring-your-own-keys (DataForSEO + OpenRouter), with every feature unlocked and no Rankdelta fee.

What's inside

  • AI visibility: share of voice, competitors named instead of you, cited sources, Google AI Overviews
  • Reports for your own sites or your clients, scheduled, white-label, PDF and PowerPoint
  • Keyword research with SERP clustering
  • Rank tracking
  • Site audit, technical and GEO
  • Site Explorer and backlinks
  • GEO content writer
  • Coming next: one-click publishing to WordPress and Shopify (hosted cloud)

One codebase, two editions

Self-host (AGPL-3.0)Hosted cloud
Codethis repothis repo, plus hosted billing and the marketing site
Keysbring your own (DataForSEO + OpenRouter)managed
Billingnone — every feature unlockedplans
AI visibility, research, audits, rank trackingyesyes
Reports (own sites or white-label), scheduled delivery, PDF/PPTXyesyes
MCP serveryes (your instance)yes (mcp.rankdelta.ai)
Content auto-publisher (WordPress/Shopify)—in progress

Cloud: rankdelta.ai

Connect your AI agent (MCP)

Paste into Cursor (~/.cursor/mcp.json), Claude Desktop, or any client that takes mcpServers:

json
{  "mcpServers": {    "rankdelta": {      "url": "https://mcp.rankdelta.ai/mcp",      "headers": { "Authorization": "Bearer sk_rankdelta_…" }    }  }}

Claude Code:

bash
claude mcp add rankdelta --transport http https://mcp.rankdelta.ai/mcp --header "Authorization: Bearer sk_rankdelta_…"

Create the key in Settings → API & MCP. Self-hosted? Use your own endpoint, <your Supabase URL>/functions/v1/mcp, with a key from your instance. ChatGPT (Developer mode), OpenCode and Grok setups: rankdelta.ai/docs/mcp. On the cloud, every tool call runs through the same server-side spend cap as the web app, so an agent in a loop can't overspend your account. On a self-host you pay your providers directly: see Spending.

Quick start (self-host)

Full guide: SELF_HOSTING.md. To try it on your machine you need Docker, Node 20, pnpm and the Supabase CLI. CI runs this setup, with the Docker frontend, on every change.

bash
supabase start                   # Postgres, Auth and the edge runtime, with the migrations applied
# Your provider keys, server-side only (this file is git-ignored)cat > supabase/functions/.env <<'EOF'SELF_HOST=trueOPENROUTER_API_KEY=...DATAFORSEO_LOGIN=...DATAFORSEO_PASSWORD=...EOFpsql postgresql://postgres:[email protected]:54322/postgres -f supabase/setup/self-host.sql   # once: no plans on a self-hostsupabase functions serve --env-file supabase/functions/.env   # leave it running
cp .env.selfhost.example .env    # VITE_SUPABASE_URL=http://127.0.0.1:54321, ANON_KEY from `supabase status`pnpm installpnpm dev                         # http://localhost:5173

Prefer containers for the app too? docker compose -f docker-compose.selfhost.yml up --build serves it on http://localhost:8080.

Putting it on a public URL? Create your account, then turn sign-ups off: every account spends on your provider keys (Lock down sign-ups).

Provider keys (DataForSEO, OpenRouter, Pexels, …) are edge-function secrets, never VITE_ variables — anything prefixed VITE_ is compiled into the browser bundle. On a hosted Supabase project, set them with supabase secrets set … and deploy with supabase functions deploy.

Scheduled scans, scheduled report emails and the Search Console refresh need one more step — see Scheduled jobs in SELF_HOSTING.md.

What self-hosting costs

You pay your providers directly, per use — there is no Rankdelta fee. Measured on the hosted cloud:

ActionTypical cost
One AI-visibility check (1 prompt × 1 engine, OpenRouter)~$0.004 (p90 $0.01)
One research lookup (Site Explorer / keyword research, DataForSEO)~$0.03
One Google rank check (DataForSEO SERP)~$0.002
One full article (draft, sources, fact-check)~$0.09

A weekly scan of 25 prompts on 3 engines is roughly $0.30–0.75 per site per week. Supabase's free tier is enough to start.

How it compares to OpenSEO

OpenSEO is a great project, and if you only need research data for yourself it may be all you need. Rankdelta is for people who report on SEO and AI visibility, for clients or for their own sites, and who publish content:

RankdeltaOpenSEO
AI visibility datayour own prompts, run live on ChatGPT, Perplexity and Gemini through OpenRouter (~$0.004 per prompt per engine), plus Google AI Overviews through DataForSEODataForSEO LLM Mentions: a pre-collected database for ChatGPT and Google AI ($0.10 per request + $0.001 per row)
Content creationSEO/GEO article writer grounded in live SERP research, with fact-checking, verified citations and no invented statistics— (SERP analysis for keyword research)
Reportsbuilt from your data for your own sites or white-labelled for clients: AI visibility, rankings, Search Console, GA4 and site health, with scheduled email, PDF and PowerPoint exportagent-written HTML reports on demand, with templates and share links
LanguagesEnglish and Italian (interface, prompts, reports, emails)English
LicenseAGPL-3.0MIT

Built by a team that runs SEO for client sites and our own: the reports are the ones clients ask us for. Comparison based on OpenSEO's public repository and docs, and DataForSEO's public pricing, as of September 2026.

Honest caveats

  • Search volumes, difficulty and traffic are estimates from DataForSEO, not an Ahrefs-scale index.
  • AI answers are sampled, so Share of Voice is a measurement with noise, not a ranking.
  • ChatGPT and Gemini are queried as models through OpenRouter, without web search: they answer from the model, not like the ChatGPT or Gemini apps browsing the web, and never cite sources. Sources and the citation rate come from Perplexity and Google AI Overviews. Reports say so next to the numbers.

Stack

Vite + React 19 + TypeScript, Supabase (Postgres, Auth, Edge Functions on Deno), Tailwind. Package manager: pnpm. More guides in docs/.

bash
pnpm dev            # Vitepnpm typecheck      # tsc --noEmitpnpm lint           # eslint (errors only)pnpm test:unit      # vitestpnpm build          # tsc && vite build

Security

  • Never put OpenAI / DataForSEO / Pexels / Unsplash / Perplexity keys in .env as VITE_*.
  • The anon Supabase key is public by design; Row Level Security is the access control.
  • Found a vulnerability? Please report it privately — see SECURITY.md.

Community & contributing

License

AGPL-3.0 © Agape Group GmbH. The name and logo Rankdelta are trademarks — see TRADEMARK.md.

Source: README.md at commit 069c019

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

2
  1. v0.3.1LatestSep 28, 2026
  2. v0.3.0Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts