Docs · Connect Claude to WordPress

Claude.ai, Claude Desktop and Claude Code, on your own site

This guide shows how to connect Claude to WordPress through the MCP endpoint built into AgentedSEO. Claude.ai and Claude Desktop sign in with OAuth, so you never paste a password into Claude. Claude Code connects with one terminal command and an application password. Either way, Claude signs in as its own SEO Agent user, and every change it makes is checked, logged in the Change log and can be undone. Changes in the areas you choose wait for your approval.

OAuth for Claude.ai and DesktopOne command for Claude CodeIts own SEO Agent user
Checked against AgentedSEO 1.0 and Claude’s help centerUpdated 30 October 2026

Before you start

  • AgentedSEO is active (WordPress 6.9 or later, PHP 8.1 or later).
  • You can sign in as an administrator. Only an administrator can approve an agent.
  • The site is on public HTTPS. Claude.ai and Claude Desktop reach your site from Anthropic’s cloud, so localhost, VPN-only or password-protected staging sites won’t connect. Claude Code connects from your own machine.

Your endpoint, shown with your domain on AgentedSEO › Agents › Connections:

MCP endpoint · Streamable HTTP
https://your-site.com/wp-json/agentedseo/mcp

01Pick your route

02Connect Claude to WordPress from Claude.ai

  1. Copy your connector URL. In WordPress open AgentedSEO › Agents › Connections. Under Connect an agent choose Claude.ai or ChatGPT, then copy the URL under Copy your site’s connector URL.
  2. Add a custom connector in Claude. Pro or Max: Customize › Connectors, + Add, Add custom connector. Team or Enterprise: an Owner adds it under Organization settings › Connectors, then members click Connect. Free allows one custom connector.
  3. Fill in the dialog. Name AgentedSEO, paste the URL, Continue. Authentication: Sign in now. OAuth client: Register automatically. Leave Request headers empty. Click Add.
  4. Approve it on your site. A page on your site asks “Connect Claude to AgentedSEO?”. Sign in if asked, click Approve. Your browser returns to Claude.
  5. Turn it on in a chat: + menu, Connectors, switch AgentedSEO on.
claude.ai · Add custom connectorExample
Name
Remote MCP server URL
AuthenticationSign in now
OAuth clientRegister automatically
Request headers: empty
In Claude: the custom connector dialog.
your-site.com · AgentedSEO approvalExample
On your site: the one-time approval page.

The connection now shows under Connected agents with its own user (agentedseo-...), Last activity and Revoke. Access tokens last one hour, refresh tokens 30 days, and they rotate.

03Connect Claude Desktop to WordPress

Claude Desktop uses the connector from section 2. Remote connectors live on your Claude account, so once AgentedSEO is added it is in Claude Desktop too: + menu, Connectors, switch it on.

You don’t need to edit claude_desktop_config.json. That file is for servers that run on your computer; AgentedSEO runs on your WordPress site.

Even in Claude Desktop the connection starts from Anthropic’s servers, so the public HTTPS rule applies.

04Connect Claude Code to WordPress

  1. Create the agent’s password. In AgentedSEO › Agents › Connections choose Desktop or code app, name it Claude Code, click Create password. The password is shown once. The config under Paste this config into your agent now has your Authorization value.
  2. Add the server with the Basic … value. --scope user makes it available in every project; leave it out to keep it in this project only.
    ✻ Claude Code~ · add the AgentedSEO server
    $ claude mcp add --transport http agentedseo https://your-site.com/wp-json/agentedseo/mcp \
      --header "Authorization: Basic <value from the Connections screen>" \
      --scope user
    Then run the connection test under Agents › Connections.
  3. Check it: claude mcp list shows AgentedSEO as Connected. In a session, /mcp lists its tools.
Pasting the JSON into .mcp.json instead? Add "type": "http" to the entry. Claude Code skips an entry with a url and no type.

No password in your config: add the server without --header, then run /mcp to authenticate.

Using Claude Code as your main SEO tool? See Claude Code WordPress SEO.

05Check the connection

On AgentedSEO › Agents › Connections, the Test the connection card has a Run test button. It checks what an agent outside your site sees.

example.com/wp-admin · AgentedSEO › Agents › ConnectionsExample
Test the connection
OAuth discovery: protected resourceConnectors can find how to sign inPassed
OAuth discovery: authorization serverSign-in and token endpoints foundPassed
MCP endpoint asks clients to sign in401 with a WWW-Authenticate headerPassed
Authorization header reaches WordPressYour host passes tokens throughPassed
Tools an agent is offered72 abilities, filtered by rolePassed
Five checks. Each row says what a pass means: discovery for sign-in, a 401 with WWW-Authenticate, your host passing the header, and the tools on offer.

06Your first safe task

Give Claude a small job that lands in your approval queue, then approve it and undo it, so you see the whole loop on a real page. I’d start any new agent here: one field on one page, easy to check by eye.

Paste into your agent

Use AgentedSEO. Start with get-capabilities. Find one published post with no meta description, write one, do a dry run first and show me the before and after, then submit it with a note. Don’t publish or change anything else.

  1. The agent calls set-meta. Meta titles and descriptions ask first by default, so the answer is proposed. The live page has not changed.
  2. Open AgentedSEO › Dashboard › Approvals. Check Before and After, the checks it passed and the agent’s note. Click Approve.
  3. Open AgentedSEO › Dashboard › Change log, open the change’s Details and click Undo. The Before value is back, and the undo is logged.
1 · Agent callproposed
→ set-meta dry_run: true← before / after returned→ set-meta note: “first test”← status: proposed

The live page has not changed.

2 · ApprovalsWaiting
Meta description · /what-is-a-410(empty)A 410 tells search engines a page is gone for good.
LengthKeyword
3 · Change log
AgentMeta description · /what-is-a-410agentedseo-claude · just nowNot yet

Undo restores the Before value, and the undo is logged.

Claude can undo its own work too: every write returns a batch_id, and revert-change with that id puts it back.

07What Claude can and can’t change

I made approving a person’s job on purpose. Claude can propose, preview and undo, but it has no tool that approves its own work. I want the last call on anything visitors see to stay with you.

Joy · From the team behind Classic Monks

Claude signs in as an SEO Agent user, refused on every REST route outside AgentedSEO and on XML-RPC. Defaults from AgentedSEO › Agents › Approval rules; per-area rules apply to every connected agent.

Per area (you choose)

AreaDefaultWhat it covers
Meta titles and descriptionsAsk me firstShown as before and after before anything is written
SchemaAsk me firstJSON-LD is validated first, then shown for approval
RedirectsAsk me firstLoops and chains are refused outright
Sitemap rebuildsAsk me firstNothing visitors see changes
Keyword plansAsk me firstPlanning data, never printed on the site
Image alt textAsk me firstWritten to the media library and the image block
New draftsAutomaticDrafts stay private until someone publishes them
Edits to draftsAutomaticSaved as revisions you can restore
Edits to published contentAsk me firstVisitors see these straight away
Publishing and schedulingAsk me firstMakes a draft public, now or at a set time
Bulk changes over 20 pagesAsk me firstAsks even when the area above is automatic
Always asksFixed, can’t be switched off
  • robots.txt edits
  • Noindex on a page with traffic. Until Search Console is connected every page counts as having traffic. Hiding a whole post type, taxonomy or the author archive counts too.
  • Deleting redirects or schema
  • Trashing or unpublishing content
  • An edit to a post someone has open in the editor becomes a proposal
BlockedFixed
  • Deleting content permanently
  • Header and footer code
  • Users, plugins, themes and site settings outside AgentedSEO

Also good to know

  • New posts are always drafts.
  • Bricks, Elementor, Breakdance and Oxygen layouts are read-only for agents; their SEO fields still change.
  • Scripts and iframes in content are refused.
  • Every request, reads and refusals included, shows in AgentedSEO › Agents › Activity.
  • Connecting as yourself with an application password from Users › Profile skips approvals. Use the SEO Agent connection.

08Revoke access

On AgentedSEO › Agents › Connections click Revoke and confirm. Its user and its password or sign-in are deleted and it can no longer reach the site. Its change log stays, and content it created is handed to you. You can also remove the connector in Claude under Customize › Connectors.

09Troubleshooting

SymptomFix
“Authorization header reaches WordPress” failsOn Apache add SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 to .htaccess, or ask your host.
OAuth discovery checks failA security plugin, the host or a cache blocks /.well-known/. The site must answer /.well-known/oauth-authorization-server at the domain root.
Claude.ai can’t reach the serverThe site must be reachable from the public internet.
“Application passwords are turned off on this site”WordPress needs HTTPS for application passwords.
429 agentedseo_locked_outTen failed sign-ins from one address in 15 minutes lock it out for 15 minutes.
Change comes back proposedWorking as set: it waits in Approvals.
agentedseo_blocked_by_ruleThe change hit a fixed rule in section 7.

10Questions about connecting Claude

No. Claude.ai and Claude Desktop sign in with OAuth and get a token for a new SEO Agent user. Claude Code uses an application password made for that user.

No. The endpoint is built in at /wp-json/agentedseo/mcp. The MCP Adapter lists AgentedSEO’s abilities for people’s own accounts, but agent users only reach AgentedSEO’s own endpoint.

Only in where you click. Both use the same custom connector on your Claude account.

Free, Pro, Max, Team and Enterprise, per Claude’s help center on 30 October 2026. Free allows one.

Not by default. New posts are drafts, and publishing asks first unless you switch that area to Automatic.

Yes. Each connection gets its own user and its own Revoke.

11Next steps