Semrush and Ahrefs bill by the seat whether you run ten queries a month or ten thousand. OpenSEO does the same keyword research, rank tracking, backlink and site-audit work, but you bring your own DataForSEO API key and pay only for the data you pull. It exposes an MCP server too, so Claude Code can query your SEO data directly instead of you copying numbers into a prompt.
By Raj Singh · September 2026 · 18k stars · MCP for Claude Code, OpenClaw, Hermes · 6 min read
Keyword research, rank tracking, competitor insight, backlinks and site audits, in one focused UI instead of a bloated suite. The same data is reachable from Claude Code through the MCP server without opening the dashboard at all.
You need a DataForSEO key. OpenSEO has no SEO data of its own. Every keyword, backlink and rank number comes from your own DataForSEO account, billed to you directly at their rates.
Hosted adds a 28% markup. The $10 a month hosted version is not the real cost: the hosted service charges 28% extra on every DataForSEO request it makes on your behalf. Self-hosting skips that markup entirely.
Two self-host paths, one recommended. Docker is for testing on your own machine. Cloudflare is what the maintainers recommend for anything internet-facing or shared with a team, and it runs on Cloudflare's free plan.
MCP is the real feature. Claude Code, OpenClaw and Hermes can query your SEO data directly through it, with agent skills layered on top for the common workflows like keyword research and audits.
Licence, in plain English: MIT. Free to self-host and modify, no obligation beyond keeping the licence file. You still pay DataForSEO for the data itself.
Drop your email and unlock the rest: what you need, the Cloudflare self-host path, the DataForSEO key setup, and the MCP connection for Claude Code.
One email. No follow-up unless I ship something that fits.
Docker is the fastest way to try it on your own machine. Cloudflare is the path worth setting up if more than one person, or more than one device, will use it.
The install
The Docker path uses compose.yaml and Dockerfile.selfhost directly for a local-only instance, no Cloudflare account required.
.env.selfhost is where the DataForSEO key and auth mode live. Auth mode decides who can reach the instance once it is deployed.
| Setting | Default | Why I change it |
|---|---|---|
| AUTH_MODE | cloudflare_access | Right for a team deploy behind Cloudflare Access. Switch to local_noauth only for a single-user local instance you fully trust. |
| DATAFORSEO_API_KEY | unset | Required before any SEO data loads. Get one from DataForSEO directly, not through OpenSEO. |
local_noauth mode injects a trusted admin user automatically, fine for a laptop-only instance, wrong for anything reachable from outside your machine.Use the dashboard for a workflow you are doing yourself. Use MCP when you want Claude Code to pull the same data into a task without you copying numbers over.
The MCP path is what makes this worth self-hosting over a free-tier SaaS tool: the data stays queryable by an agent, not locked in someone else's dashboard.
DATAFORSEO_API_KEY is unset or invalid. Check docs/DATAFORSEO_API_KEY.md for how to generate and verify one.AUTH_MODE is still local_noauth on a Cloudflare deploy. Switch to cloudflare_access and set TEAM_DOMAIN and POLICY_AUD.Everything your instance stores lives in your own database, either the SQLite default or a Postgres you point it at.
One DataForSEO key, one Cloudflare deploy, and the seat-based SEO subscription is gone. The MCP server is what turns it from a dashboard replacement into something your agent can use directly.
↑ Unlocks the moment you submit the form above.
I'm Raj Singh, founder of DebtOps.ai and a Claude certified partner. Over the last five years I've managed $25M in ads, built AI solutions for Fortune 100 companies, and installed AI operating systems and AI brains inside small businesses. Everything here is something I've shipped, debugged, or watched a client ship. My goal with AgileSingh is to make you irreplaceable in this AI age.
OpenSEO gives an agent one specific dataset to query. The claude-code-n8n-mcp-setup-guide covers the same MCP pattern applied to your own product workflows.