AI SEO agents for WordPress, with Kantan.
Kantan’s AI SEO agents connect Claude Code or Gemini CLI to your WordPress site over MCP, read your analytics and SEO data, and propose edits you approve over the WordPress REST API.
Kantan gives your agent two channels. It reads your analytics and SEO through the Kantan MCP server — 35 typed, read-only tools. It writes content through the standard WordPress REST API, and only after you approve the change. There is no MCP write tool, by design.
One thing to be clear about: the read-only guarantee belongs to the MCP tools, not to your credential. The Application Password you generate carries the full access of the account that made it — WordPress does not scope it to read-only, and the same credential authorizes those REST writes.
“The dashboard in wordpress is great, but what I really love is the Claude agent. I have Claude create a report every week and I can just ask it questions and it gives me the data I’m looking for. Super cool!”
Which agent do I want?
Each plugin has its own dedicated agent — use both in tandem for best results.
kantan-analytics-agentThe Analytics agent
Ships free with Kantan Analytics. 18 read tools covering traffic, journeys, visitors and conversions. Analysis only — it answers questions and recommends, but it never edits your content.
kantan-seo-agentThe SEO agent
Ships with Kantan SEO, a paid plugin. 17 read tools covering keywords, rankings, health audits and content scores — plus 3 write modes to only suggest edits or make edits via the Agent.
recommendNever makes a write request. Reads your SEO data and hands you exact copy to paste into your own page builder.
gutenbergEdits Gutenberg block content directly, over the standard wp/v2 REST API, only after you approve it in the conversation — the change goes live immediately, and WordPress keeps a revision of what it replaced, so you can roll back through the editor’s revision history.
acfReads and writes ACF field values directly, also over wp/v2 — the mode to pick on ACF Flexible Content builds with REST API access enabled.
Download the agent file.
-
1
Kantan Analytics → Settings → Download Agent. One file, works for every site you run Kantan Analytics on.
-
2
Kantan SEO → Settings tab → Download Agent — pick a write mode first, it’s baked into the file you get.
Either agent needs two environment variables before it can do anything — set them in your shell, or in a git-ignored .env if you work across several sites:
The spaces in the Application Password are part of the credential, don’t strip them. Set both variables before or after MCP is connected: they still power the agent’s self-update check, its REST fallback when MCP is unavailable, and — for the SEO agent in gutenberg or acf mode — the content edits themselves.
Install the MCP Adapter.
This is the one step that trips people up — REST still works without it.
-
1
Requires WordPress 6.9 or newer. Kantan’s MCP support needs that version — the adapter plugin below is what serves the MCP endpoint on top of it.
-
2
It is not on wordpress.org yet — you won’t find it by searching Plugins → Add New inside wp-admin.
-
3
Download
mcp-adapter.zipfrom the project’s latest GitHub release. -
4
Install it yourself: Plugins → Add New → Upload Plugin, choose the zip you just downloaded.
-
5
Activate it. Kantan detects it automatically — no settings to configure.
The adapter is what turns on the WordPress MCP server route at /wp-json/kantan/mcp — the endpoint every tool call in the next steps goes through.
The GitHub release zip ships a built vendor/ directory. A bare git clone of the repo does not — so if you clone it instead of downloading the release, the plugin activates cleanly but its MCP route silently 404s, with nothing in the WordPress error log to point at why. Run composer install in the plugin folder if you ever clone it, or just use the release zip and skip the problem entirely.
Connect your agent.
With the environment variables set and the adapter active, tell Claude Code about your site — once per site. This is the exact command your downloaded agent file will also give you.
Prefer Gemini CLI? The same server works there. Add the same HTTP server URL — $KANTAN_SITE_URL/wp-json/kantan/mcp — and the same Authorization: Basic header to that tool’s own MCP configuration. The connection is identical; only where you paste it differs.
Ask your first question.
With the connection in place, just talk to your agent in your own natural language. It picks the right tool from the 35 on offer, calls it, and reads back a plain-English answer — no dashboard tab to open first.
That’s the whole round trip: one MCP tool call, one JSON result, nothing written anywhere. Every read tool works this way — none of them has a path to a write request, so there’s nothing to approve and nothing to undo.
Make an edit.
-
1
The agent proposes the exact change in the conversation — the new title, the new copy — and stops there.
-
2
You approve it, explicitly, in that same conversation. Nothing has been sent to your site yet.
-
3
Only then does the agent send a
POSTrequest, straight towp/v2. That’s WordPress core’s own REST API, not Kantan’s — no MCP tool can do this; the MCP server doesn’t have a write tool at all.
The moment that request lands, the change is live — WordPress doesn’t hold it back for anyone to look at first. What you get instead is a revision: the content the edit replaced is kept in that post’s revision history, so if the edit turns out to be wrong, you roll it back from inside the editor, the same way you’d undo any other edit.
Recommend mode.
The right default if you’d rather nothing touched your content at all.
recommendNever sends a write
In this mode, the SEO agent doesn’t have a POST or PUT to wp/v2 anywhere in its instructions — not gated behind an approval it might skip, simply not there to call.
Exact copy to paste
It still reads your SEO data — keywords, health audits, content scores — and still tells you what to change. But what it hands back is the finished replacement text itself, ready to paste into your own page builder, not a change already made on your behalf.
Pick it when you want the agent’s job to be analysis, not authorship — you stay the only one who ever touches the page. It’s chosen once, at download time (§01), and baked into that copy of the file; it doesn’t drift into a write mode later on its own.
Common problems, answered.
Why am I getting a 404 on the MCP route?
The MCP Adapter plugin is missing or inactive — or it was installed from a bare git clone that never ran composer install, so its vendor/ directory doesn’t exist (§03). Skip the clone: download the release zip and install it through Plugins → Add New → Upload Plugin instead.
Why don’t any tools show up in my client?
WordPress is older than 6.9 — the abilities API the adapter depends on isn’t available on that version. Use the REST fallback at /wp-json/kantan/v1/... in the meantime; it’s the same data, and it doesn’t need an MCP connection at all.
Why does every request fail right after initialize?
The Mcp-Session-Id header the server returned on that first call isn’t being sent back on the ones that follow. Capture it from the initialize response and echo it back as Mcp-Session-Id on every request after that.
Why does authentication keep failing?
The spaces in the Application Password got stripped somewhere along the way — a shell export, a config file, a copy-paste. Put them back: as in §02, the spaces are part of the credential, not formatting.