Docs · Cursor WordPress MCP

Connect Cursor to WordPress with one mcp.json entry

This is the Cursor WordPress MCP setup for sites running AgentedSEO. The MCP server is built into the plugin, so Cursor talks to your site directly: no bridge plugin, no local proxy. You create a user for Cursor with the SEO Agent role, paste one entry into mcp.json, and Cursor’s agent can read and change your SEO data and content. Every change is checked and logged, the areas you choose wait for your approval, and anything can be undone.

No bridge pluginNo local proxyIts own SEO Agent user
Checked against AgentedSEO 1.0 and cursor.com/docs/mcpUpdated 30 October 2026

Before you start

  • AgentedSEO is active (WordPress 6.9 or later, PHP 8.1 or later), and you are an administrator.
  • The site is on HTTPS. WordPress only offers application passwords over HTTPS.

Your endpoint speaks MCP over Streamable HTTP, a transport Cursor supports:

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

01Create the agent’s password

  1. Open AgentedSEO › Agents › Connections.
  2. Under Connect an agent choose Desktop or code app.
  3. Name your agent Cursor and click Create password. AgentedSEO creates the user agentedseo-cursor with the SEO Agent role and an application password, shown once.
  4. Copy the config under Paste this config into your agent. Your password is already in it as a Basic Authorization header.
example.com/wp-admin · AgentedSEO › Agents › ConnectionsExample
Claude.ai or ChatGPTOAuth, approve on your site
Desktop or code appApplication password
1 · Name your agent to create its password

Shown once. Copy it now: it can’t be shown again.

2 · Paste this config into your agent
"Authorization": "Basic YWdlbnRlZHNlby1…••••"
Connections › Desktop or code app, after Create password. The password is blurred here.

02Add the Cursor WordPress MCP entry

FileUse it for
~/.cursor/mcp.jsonAgentedSEO in every project
.cursor/mcp.json in a projectOne project only, for example this site’s theme repo

Paste the config. It already matches Cursor’s remote server format:

~/.cursor/mcp.json
{
  "mcpServers": {
    "agentedseo": {
      "url": "https://your-site.com/wp-json/agentedseo/mcp",
      "headers": { "Authorization": "Basic <filled in by the Connections screen>" }
    }
  }
}

If the file has other servers, add the agentedseo entry inside the existing mcpServers.

Keep the password out of the repo

Cursor fills ${env:NAME} in url and headers. Set AGENTEDSEO_AUTH to the part after Basic , then save the file.

.cursor/mcp.json · headers
"headers": { "Authorization": "Basic ${env:AGENTEDSEO_AUTH}" }

03Check it in Cursor

  • Open Customize in the sidebar and find agentedseo: toggle on, tools listed.
  • If it fails, open the Output panel (Ctrl+Shift+U, Cmd+Shift+U on a Mac) and pick MCP Logs. A 401 means the header is wrong.
Cursor · Customize › MCPExample
agentedseoStreamable HTTP · tools listed
githubAnother server you already had

agentedseo connected · tool count shown in Cursor

04Check it in WordPress

On AgentedSEO › Agents › Connections, click Run test. “Authorization header reaches WordPress” must pass. “Tools an agent is offered” shows how many tools Cursor sees. After its first request, Cursor shows under Connected agents.

example.com/wp-admin · AgentedSEO › Agents › ConnectionsExample
Test the connection
OAuth discovery: protected resourceConnectors can find how to sign inPassed
MCP endpoint asks clients to sign in401 with a WWW-Authenticate headerPassed
Authorization header reaches WordPressYour host passes tokens throughPassed

05Your first safe task

Paste into Cursor’s agent

Use the agentedseo tools. Start with agentedseo-get-capabilities. Find one published post with no meta description, write one, run it with dry_run first and show me the before and after, then submit it with a note. Change nothing else.

  1. The agent calls agentedseo-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-cursor · just nowNot yet

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

Cursor may also ask you to confirm each tool call. That is Cursor’s own prompt, separate from AgentedSEO’s approval queue.

06What Cursor’s agent can and can’t change

Cursor is where a lot of WordPress developers already work, so I kept the setup to one entry in a file you already have. The safety lives on the site, not in the editor.

Joy · From the team behind Classic Monks
AutomaticApplied straight away
  • New drafts
  • Edits to drafts
Ask me firstWaits in Approvals
  • Meta, schema, redirects, sitemaps, keywords, alt text
  • Edits to published content, publishing
  • Bulk changes over 20 pages
Always asksCan't be switched off
  • robots.txt edits
  • Noindex on a page with traffic
  • Deleting redirects or schema
  • Trashing or unpublishing
BlockedNever, whatever it asks
  • Permanent deletes
  • Header and footer code
  • Users, plugins, themes, settings outside AgentedSEO

Change the per-area defaults in AgentedSEO › Agents › Approval rules. Approving and rejecting are not tools: only a person can do them, in WordPress. Full table: what your agent can and can’t change.

Builder layouts (Bricks, Elementor, Breakdance, Oxygen) are read-only for agents, their SEO fields still change. Scripts and iframes in content are refused.

07Troubleshooting

SymptomFix
401 in MCP Logs, header check failsOn Apache add SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 to .htaccess, or ask your host.
401 with the header check passingWrong or revoked password. Create a new one on the Connections screen.
${env:...} not filledSet the variable in the environment Cursor starts from, then restart Cursor.
429 agentedseo_locked_outTen failed sign-ins in 15 minutes lock the address out for 15 minutes.
agentedseo_forbidden on a toolThe role lacks that area, or the module is off in AgentedSEO › Tools › Features.
Change came back proposedWorking as set: it waits in Approvals.

08Questions about Cursor and WordPress

Yes. The MCP server is part of the plugin at /wp-json/agentedseo/mcp, so Cursor connects to it like any remote MCP server. It covers SEO and content, not the whole of WordPress.

AgentedSEO also accepts OAuth, which Cursor supports for remote servers.

No. It signs in with the SEO Agent role, which can’t touch users, plugins, themes or settings outside AgentedSEO.

Yes, where you can run WP-CLI. Always pass the agent’s user: wp agentedseo capabilities –user=agentedseo-cursor. Without –user, WP-CLI skips every permission check and approval rule.

Click Revoke on the Connections screen, then delete the entry from mcp.json.

09Next steps