Open-source AI SEO over MCP: audits, ranks, keywords, backlinks + AI visibility (GEO).
One address for any MCP client. You sign in at mcp.rankdelta.ai once, after adding it.

At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Mcp | Not stated: mcp:tools | |
| Your identity | ||
| Email address | ||
From the sign-in at mcp.rankdelta.ai, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
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.
Hosted cloud · Self-host guide · MCP docs · Discussions
Works with your agent: Claude, ChatGPT, Cursor, OpenCode, or any MCP client.

[Source needed: …] note.| AI visibility | Site health and next steps |
|---|---|
![]() | ![]() |
| Self-host (AGPL-3.0) | Hosted cloud | |
|---|---|---|
| Code | this repo | this repo, plus hosted billing and the marketing site |
| Keys | bring your own (DataForSEO + OpenRouter) | managed |
| Billing | none — every feature unlocked | plans |
| AI visibility, research, audits, rank tracking | yes | yes |
| Reports (own sites or white-label), scheduled delivery, PDF/PPTX | yes | yes |
| MCP server | yes (your instance) | yes (mcp.rankdelta.ai) |
| Content auto-publisher (WordPress/Shopify) | — | in progress |
Cloud: rankdelta.ai
Paste into Cursor (~/.cursor/mcp.json), Claude Desktop, or any client that takes mcpServers:
{
"mcpServers": {
"rankdelta": {
"url": "https://mcp.rankdelta.ai/mcp",
"headers": { "Authorization": "Bearer sk_rankdelta_…" }
}
}
}
Claude Code:
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.
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.
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=true
OPENROUTER_API_KEY=...
DATAFORSEO_LOGIN=...
DATAFORSEO_PASSWORD=...
EOF
psql postgresql://postgres:postgres@127.0.0.1:54322/postgres -f supabase/setup/self-host.sql # once: no plans on a self-host
supabase 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 install
pnpm 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.
You pay your providers directly, per use — there is no Rankdelta fee. Measured on the hosted cloud:
| Action | Typical 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.
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:
| Rankdelta | OpenSEO | |
|---|---|---|
| AI visibility data | your own prompts, run live on ChatGPT, Perplexity and Gemini through OpenRouter (~$0.004 per prompt per engine), plus Google AI Overviews through DataForSEO | DataForSEO LLM Mentions: a pre-collected database for ChatGPT and Google AI ($0.10 per request + $0.001 per row) |
| Content creation | SEO/GEO article writer grounded in live SERP research, with fact-checking, verified citations and no invented statistics | — (SERP analysis for keyword research) |
| Reports | built 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 export | agent-written HTML reports on demand, with templates and share links |
| Languages | English and Italian (interface, prompts, reports, emails) | English |
| License | AGPL-3.0 | MIT |
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.
Vite + React 19 + TypeScript, Supabase (Postgres, Auth, Edge Functions on Deno), Tailwind. Package manager: pnpm. More guides in docs/.
pnpm dev # Vite
pnpm typecheck # tsc --noEmit
pnpm lint # eslint (errors only)
pnpm test:unit # vitest
pnpm build # tsc && vite build
.env as VITE_*.AGPL-3.0 © Agape Group GmbH. The name and logo Rankdelta are trademarks — see TRADEMARK.md.