llms.txt Content
# DispatchSEO
> Open-source SEO manager driven by the AI you already pay for: the ordinary
> Claude app at claude.ai, a coding agent (Claude Code, Codex, Cursor), or any
> other MCP client. Your AI already knows your product, so DispatchSEO gives
> it the missing half: keyword research it can act on, articles that ship as
> pull requests to your own repo or straight into self-hosted WordPress, rank
> tracking, and a human approval dashboard. Self-hosted with one Docker
> command, AGPL-3.0. A hosted version exists at dispatchseo.com, but
> self-hosting has zero feature limitations.
## What it is, in one paragraph
DispatchSEO is a backend, not a writer. It stores state (a suggestions queue,
keywords, published pages, rankings, Search Console stats, backlink
prospects), runs schedules (daily rank checks, hourly GSC snapshots, a nightly
content builder), and gates everything behind a human approval step. The
thinking - research, judgement, writing - happens in your own AI: the Claude
app at claude.ai, or a coding agent (Claude Code, Codex, Cursor), which talks
to DispatchSEO over MCP. That split is deliberate: your AI already has your
product knowledge, so it does not need to crawl your homepage to guess at it.
## Key facts
- The MCP server is at /api/mcp (streamable HTTP, bearer token per project).
The bearer token IS the tenant selector - one deployment manages many sites.
- The MCP exposes state only: reads and writes against the queue, keywords,
pages, rankings, GSC stats, prospects, plus a get_instructions tool that
serves the agent playbook. Keyword research and content generation happen in
the agent, not on the server.
- Anything the dashboard can do, the agent can do over MCP. Parity between the
two is a hard rule in the codebase.
- Two ways to connect an AI. A coding agent (Claude Code, Codex, Cursor)
connects over MCP from a terminal, or the ordinary Claude app at claude.ai
is pointed at the same server as a custom connector on any paid Clau