# Pulse SEO > 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 Pulse SEO gives > it the missing half: keyword research it can act on, articles that ship as > pull requests to your own repo or straight into WordPress, rank > tracking, and a human approval dashboard. A managed cloud service at > pulseseoapp.com. ## What it is, in one paragraph Pulse SEO 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 Pulse SEO 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 Claude plan, writes on the owner's own subscription, and hands the finished article back. ChatGPT is not supported yet; the Gemini app cannot connect outside tools at all. - Content reaches your site one of two ways. For a self-hosted WordPress site, articles are posted through its own API, with cover image, internal links and schema already in place. For a code-built site, they arrive as pull requests to your GitHub repo, opened by the coding agent or by Pulse SEO itself when the article came from the Claude app; human approval is the default and automatic merge is opt-in. - So you need either a self-hosted WordPress site or a site whose source lives in a Git repo. Hosted site builders (Wix, Squarespace, Shopify, Webflow) have neither, and are not supported. A coding agent is not required for either one. - 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 AI subscription or key. Pulse SEO never bills for AI usage. ## Read everything at once - [Full documentation, single file](https://pulseseoapp.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://pulseseoapp.com/docs/troubleshooting.md ## Start here - [Quickstart](https://pulseseoapp.com/docs): choose an install path, then two setup steps. ## Getting started - [What DispatchSEO is](https://pulseseoapp.com/docs/introduction.md): An SEO manager driven by the AI you already pay for, the Claude app or a coding agent - research, content that ships to your site, and rank tracking, on infrastructure you own. - [How it works](https://pulseseoapp.com/docs/how-it-works.md): The moving parts - your agent, the backend, your repo - and which one is responsible for what. ## Setup - [The setup wizard, step by step](https://pulseseoapp.com/docs/setup-wizard.md): What each wizard screen asks for, why, and what to do when a step gets stuck. - [Install Claude Code](https://pulseseoapp.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. - [Use Codex instead](https://pulseseoapp.com/docs/install-codex.md): DispatchSEO runs on OpenAI Codex end to end - connect over MCP, drive it by hand, and let it build overnight. Here is the setup, and the three places Codex differs from Claude Code. - [Use Cursor](https://pulseseoapp.com/docs/install-cursor.md): Connect Cursor to DispatchSEO over MCP in one paste - all 61 tools, in the editor and the CLI, plus the unattended overnight builder. Here is the setup, and the two things that surprise people. - [Google Search Console](https://pulseseoapp.com/docs/search-console.md): Connect free rankings and traffic data with a Google service account. - [Keyword data sources](https://pulseseoapp.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://pulseseoapp.com/docs/publishing.md): How an approved idea actually becomes a live page - the pull request, the checks, and who presses merge. - [The Content API](https://pulseseoapp.com/docs/content-api.md): Publish without giving Pulse any access to your site - articles land in your Content API and your site pulls them at build time. - [Connect your site](https://pulseseoapp.com/docs/connect-your-site.md): The last step - one command into your coding agent, and it installs its own pipeline. ## Using it - [Day to day](https://pulseseoapp.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://pulseseoapp.com/docs/dashboard.md): What each dashboard screen shows, what you can do there, and when to open it. - [Automations and modes](https://pulseseoapp.com/docs/automations.md): The three publish modes, all 12 automations, the publishing pace, and the quality bar every build obeys. - [Agent commands](https://pulseseoapp.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://pulseseoapp.com/docs/concepts.md): Every term DispatchSEO uses, defined plainly - what it means, where it lives, and why it exists. - [MCP tools](https://pulseseoapp.com/docs/mcp-tools.md): Every tool the DispatchSEO MCP server exposes - what it does, its parameters, and what it returns. - [Environment variables](https://pulseseoapp.com/docs/environment-variables.md): Every variable DispatchSEO reads, what it does, and where to get the value. - [Schedules](https://pulseseoapp.com/docs/schedules.md): What runs on a timer, when, and what you see when it works or when it fails. - [Architecture](https://pulseseoapp.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://pulseseoapp.com/docs/troubleshooting.md): What each failure actually means, why it happens, and the fix - grouped by where things go wrong. - [Common questions](https://pulseseoapp.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://pulseseoapp.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. ## Reference on GitHub - [Changelog](https://pulseseoapp.com/changelog): what shipped, newest first ## Guides - [Claude Code permissions: modes, allow/deny/ask rules, and what actually gates a CI run](https://pulseseoapp.com/blog/claude-code-permissions): Permission modes set a baseline; allow/deny/ask rules in settings.json override it per tool and command. The real precedence order, the rule syntax, and the settings.json a CI job needs to run unattended. - [Claude Code bypass permissions: when --dangerously-skip-permissions is actually the right call](https://pulseseoapp.com/blog/claude-code-bypass-permissions): What --dangerously-skip-permissions actually turns off, the handful of things it never does, why Claude Code refuses to start it as root, and the three preconditions that make it safe to use anyway. - [Claude Code slash commands: the reusable playbooks behind an unattended pipeline](https://pulseseoapp.com/blog/claude-code-slash-commands): What a Claude Code slash command actually is, its frontmatter and $ARGUMENTS syntax, how it differs from a skill or a hook, and the real command files that build this site's own guides. - [Claude Code statusline: what to put on it when the agent is running unattended](https://pulseseoapp.com/blog/claude-code-statusline): What the statusline JSON schema actually contains, the fields it flatly can't show (tool name, permission mode, subagent detail), a tested script for cost burn and rate-limit headroom, and how it differs from a hook. - [Claude Code checkpoints: the undo button for an agent that just made 40 file changes unattended](https://pulseseoapp.com/blog/claude-code-checkpoints): What /rewind actually saves, the five things it skips (bash edits, most subagent changes, anything outside the session), and why this project's own unattended builder doesn't lean on it at all. - [Plan mode in Claude Code, and why DispatchSEO's Semi-automatic projects use the same idea](https://pulseseoapp.com/blog/claude-code-plan-mode): What Claude Code's plan mode actually blocks, how to enter and approve it, and the same propose-then-approve mechanic running one layer up in DispatchSEO's own Semi-automatic project mode. - [Claude Code sandbox mode: what it actually stops an unattended agent from doing](https://pulseseoapp.com/blog/claude-code-sandbox): What the built-in Bash sandbox walls off (and what it doesn't touch at all), checked against Claude Code's current docs and tested on the runner that builds this site's own guides - which can't even start it. - [Claude Code's /loop command: what an autonomous loop actually does when nobody's watching](https://pulseseoapp.com/blog/claude-code-loop): What /loop actually runs between iterations - fixed vs Claude-picked intervals, loop.md, the ScheduleWakeup mechanics behind self-pacing, and where it stops. - [Claude Code routines vs. a real cron job: what's actually different](https://pulseseoapp.com/blog/claude-code-routines-vs-cron): What a Claude Code routine actually is, the four things a real cron job (Vercel, GitHub Actions) still does that a routine doesn't yet, and DispatchSEO's own twelve-trigger schedule as the worked example. - [What actually happens when Claude Code hits a rate limit](https://pulseseoapp.com/blog/claude-code-rate-limit): The four kinds of Claude Code rate limit, what happens in an interactive session versus a scheduled -p run, and the backoff logic that tells a quota wait from an actual failure. - [Claude Code hooks: what they are, and how to use them to gate an unattended pipeline](https://pulseseoapp.com/blog/claude-code-hooks): Every Claude Code hook event, how exit codes and JSON output control them, a tested PreToolUse example, and where hooks fit next to a repo's own CI gate. - [Wincher alternative: seven SEO modules, and the one closest to writing still stops at an outline](https://pulseseoapp.com/blog/wincher-alternative): Wincher bundles rank tracking, local tracking, a keyword explorer, an on-page checker, a SERP benchmark and an AI outliner into one plan. What each module verified live actually does, this project's own tracking numbers, and where the chain keeps going instead of stopping. - [MarketMuse alternative: topic modeling that still hands you a blank page](https://pulseseoapp.com/blog/marketmuse-alternative): MarketMuse's own homepage says it plainly - "we do not write content for our customers." What its four tiers actually unlock, checked live, and the pipeline that finishes the research instead of stopping at a brief. - [Frase alternative: Content Guard caps how many pages it watches - this doesn't](https://pulseseoapp.com/blog/frase-alternative): Frase's own pricing page, checked live, shows Content Guard - its ranking-decay monitor - only watches 10, 75, or 300 pages depending which of four tiers you pay for. What a nightly rank and Search Console cron tracks instead, with no per-page cap. - [Outrank alternative: the open-source, self-hosted version of the same idea](https://pulseseoapp.com/blog/outrank-alternative): Outrank auto-publishes SEO content as a $99/mo SaaS with a backlink exchange bolted on. DispatchSEO runs the same research-to-published-page job through your own coding agent, landing as a PR you review instead of an auto-publish.