# DispatchSEO > Open-source SEO manager built for Claude Code and MCP agents. Your agent > already knows your product, so DispatchSEO gives it the missing half: > keyword research it can act on, content that ships as pull requests to your > own repo, 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 Claude Code agent, which talks to DispatchSEO over MCP. That split is deliberate: the agent 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. - Content ships as pull requests to your site's own GitHub repo. Human approval is the default; fully automatic merge is opt-in. - Your site's source must live in a Git repo. Database-backed CMSes like WordPress cannot work this way. - Data tiers stack: Google Search Console only (free), + a free SerpApi key (live SERP checks), + DataForSEO (volume and difficulty, pay per call). - You bring your own Claude subscription. DispatchSEO never bills for agent usage. ## Read everything at once - [Full documentation, single file](https://dispatchseo.com/llms-full.txt): every page below, inline. Fetch this one URL if you want the complete docs in one request. Every documentation page is also available as plain markdown by appending ".md" to its URL - e.g. https://dispatchseo.com/docs/troubleshooting.md ## Start here - [Quickstart](https://dispatchseo.com/docs): choose an install path, then two setup steps. ## Getting started - [What DispatchSEO is](https://dispatchseo.com/docs/introduction.md): An SEO manager your Claude Code agent drives - research, content that ships as pull requests, and rank tracking, on infrastructure you own. - [How it works](https://dispatchseo.com/docs/how-it-works.md): The moving parts - your agent, the backend, your repo - and which one is responsible for what. - [Cloud or self-hosted](https://dispatchseo.com/docs/choosing-how-to-run-it.md): Two ways to run DispatchSEO, what actually differs between them, and how to pick without regretting it later. ## Installation - [Install on your computer](https://dispatchseo.com/docs/docker-compose.md): One command starts the whole product on any machine with Docker. Open the URL it prints and the setup wizard takes over. - [Install on a VPS](https://dispatchseo.com/docs/vps.md): One line installs everything - Docker included - and one .env line puts the dashboard on your own domain with automatic HTTPS. - [Local development](https://dispatchseo.com/docs/local-development.md): Run DispatchSEO from source with pnpm for hacking on the code itself. ## Setup - [Install Claude Code](https://dispatchseo.com/docs/install-claude-code.md): Claude Code is the agent that does the actual work. Here is how to get it on your computer, from nothing, on any operating system. - [The setup wizard, step by step](https://dispatchseo.com/docs/setup-wizard.md): What each wizard screen asks for, why, and what to do when a step gets stuck. - [Google Search Console](https://dispatchseo.com/docs/search-console.md): Connect free rankings and traffic data with a Google service account. - [Keyword data sources](https://dispatchseo.com/docs/keyword-data.md): The three stacking tiers for keyword data - what each costs, what it unlocks, and how to switch later. - [Publishing and GitHub](https://dispatchseo.com/docs/publishing.md): How an approved idea actually becomes a live page - the pull request, the checks, and who presses merge. - [Connect your site](https://dispatchseo.com/docs/connect-your-site.md): The last step - one command into Claude Code, and your agent installs its own pipeline. ## Using it - [Day to day](https://dispatchseo.com/docs/day-to-day.md): What using DispatchSEO actually looks like once setup is done - a few minutes a week, and where they go. - [The dashboard, page by page](https://dispatchseo.com/docs/dashboard.md): What each dashboard screen shows, what you can do there, and when to open it. - [Automations and modes](https://dispatchseo.com/docs/automations.md): The three publish modes, all 12 automations, the publishing pace, and the quality bar every build obeys. - [Agent commands](https://dispatchseo.com/docs/agent-commands.md): The slash commands and workflows the pipeline installs into your own repo, and why they stay so thin. ## Reference - [Concepts and glossary](https://dispatchseo.com/docs/concepts.md): Every term DispatchSEO uses, defined plainly - what it means, where it lives, and why it exists. - [MCP tools](https://dispatchseo.com/docs/mcp-tools.md): Every tool the DispatchSEO MCP server exposes - what it does, its parameters, and what it returns. - [Environment variables](https://dispatchseo.com/docs/environment-variables.md): Every variable DispatchSEO reads, what it does, and where to get the value. - [Schedules](https://dispatchseo.com/docs/schedules.md): What runs on a timer, when, and what you see when it works or when it fails. - [Architecture](https://dispatchseo.com/docs/architecture.md): How the pieces fit together - the tenant model, what runs where, the data model, and the conventions that keep them honest. ## Help - [Troubleshooting](https://dispatchseo.com/docs/troubleshooting.md): What each failure actually means, why it happens, and the fix - grouped by where things go wrong. - [Common questions](https://dispatchseo.com/docs/faq.md): Honest answers about cost, fit, and what DispatchSEO actually does - including the ones where "no" is the right answer. - [Security and your data](https://dispatchseo.com/docs/security.md): The auth model, what DispatchSEO stores, what leaves your machine on a self-hosted install, and how to report a vulnerability. - [Upgrading and backups](https://dispatchseo.com/docs/upgrading.md): How to upgrade a Docker self-host install, back up your data, restore it, move machines, or uninstall cleanly. ## Reference on GitHub - [Repository](https://github.com/NeoZi12/dispatchseo): source, issues, discussions - [Architecture and conventions](https://github.com/NeoZi12/dispatchseo/blob/main/CLAUDE.md): written for agents - [Agent setup skill](https://github.com/NeoZi12/dispatchseo/blob/main/SKILL.md): how an agent connects a site - [Changelog](https://dispatchseo.com/changelog): what shipped, newest first - [Contributing](https://github.com/NeoZi12/dispatchseo/blob/main/CONTRIBUTING.md) - [Security policy](https://github.com/NeoZi12/dispatchseo/blob/main/SECURITY.md) ## Guides - [Claude Code headless mode: the flags that actually matter for CI](https://dispatchseo.com/blog/claude-code-headless-mode): What -p/--print, --output-format json, --bare, and --permission-mode each actually do, checked against Claude Code's current docs, plus a real claude -p invocation run from this exact CI sandbox and the branch logic dispatchseo.com's own daily builder uses to tell a usage-limit deferral from a real failure. - [Claude Code vs Cursor: which one survives running unattended](https://dispatchseo.com/blog/claude-code-vs-cursor): Both ship a CLI, both take --output-format json, both talk MCP. The difference that matters once a cron job invokes one with nobody watching - checked against each tool's current docs, with a real claude -p run's exit code and JSON fields from this exact sandbox. - [Claude Code memory, mapped - what CLAUDE.md and auto memory actually do](https://dispatchseo.com/blog/claude-code-memory): CLAUDE.md's four scopes, auto memory's MEMORY.md limits, and the unrelated API "memory tool" everyone confuses it with - checked against Claude Code's current docs, with this repo's real 207-line CLAUDE.md as the worked example. - [Claude Code subagents in a real production pipeline, not a toy example](https://dispatchseo.com/blog/claude-code-subagents): What most "Claude Code subagent" guides skip - the shape that reads a real queue, claims its own work, and ships a PR unattended. Shown with this guide's own claim-and-build run, real timestamps included. - [Every AI visibility tracking tool on page 1 costs $99/mo and up - here's the two-tool alternative that doesn't](https://dispatchseo.com/blog/ai-visibility-tracking-tool): Profound, Peec AI, and SE Ranking's AI Visibility Tracker all sell AI-citation tracking as its own subscription, checked live against each one's own pricing page. The by-hand method, the two MCP tools that automate it, and this site's own real citation numbers at day 11. - [Every "Ahrefs alternative" list still sells you a seat - here's the one that doesn't](https://dispatchseo.com/blog/ahrefs-alternative): SE Ranking, Mangools, Zapier's own list - all of it prices out as a cheaper paid seat, verified live against each vendor's own pricing page. The self-hosted, agent-driven model none of page 1 names, and what your own backlink index honestly can't do yet. - [The free Semrush alternative isn't one tool - it's a stack. Here's exactly what's in it.](https://dispatchseo.com/blog/semrush-alternative-free): Every "free Semrush alternative" listicle names the same handful of tools without saying what breaks once you're running all of them. The real limits per tool, current Semrush pricing verified live, and what changes when the same jobs run behind one system. - [What an AI SEO agent actually is (it's not AI-writing bolted onto SEO software)](https://dispatchseo.com/blog/ai-seo-agent): Most "AI SEO agent" pages describe a writing feature bolted onto SEO software. The other model puts an agent CLI in the driver's seat and reduces the backend to state - shown with this site's own real, unflattering numbers. - [Self-hosted AI, but for one job - running your own SEO agent](https://dispatchseo.com/blog/self-hosted-ai): What "self-hosted AI" usually means today (a local chat runtime) and the different, growing category it leaves out - a single-purpose agent - shown with DispatchSEO's own real numbers. - [Connecting Claude Code to an MCP server (a real, stateful example)](https://dispatchseo.com/blog/claude-code-mcp-server): claude mcp add, the three storage scopes, header/OAuth auth, and the --mcp-config flag a headless CI run needs - shown with the real config that builds this page. - [Claude Code in GitHub Actions (the scheduled pattern, not just @claude tags)](https://dispatchseo.com/blog/claude-code-github-actions): Most Claude Code GitHub Actions guides cover tagging @claude on a PR. Here's the other pattern - a cron-scheduled, autonomous run against your own MCP - shown with the real workflow that built this page. - [MCP server examples - what a real one looks like in production](https://dispatchseo.com/blog/mcp-server-examples): The actual examples - the official reference servers, real-world servers by category with their tool names, a minimal one in code - plus what a production, multi-tenant server looks like and a checklist to tell the kinds apart. - [How to build an MCP server (with a real, running example)](https://dispatchseo.com/blog/how-to-build-an-mcp-server): The full build path - scaffold, first tool, Inspector test, client connect - then the production layer (transport, auth) illustrated with a production server's actual code, not a toy demo.