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:
https://your-site.com/wp-json/agentedseo/mcp01Create the agent’s password
- Open AgentedSEO › Agents › Connections.
- Under Connect an agent choose Desktop or code app.
- Name your agent
Cursorand click Create password. AgentedSEO creates the useragentedseo-cursorwith the SEO Agent role and an application password, shown once. - Copy the config under Paste this config into your agent. Your password is already in it as a
BasicAuthorization header.
Shown once. Copy it now: it can’t be shown again.
"Authorization": "Basic YWdlbnRlZHNlby1…••••"02Add the Cursor WordPress MCP entry
| File | Use it for |
|---|---|
~/.cursor/mcp.json | AgentedSEO in every project |
.cursor/mcp.json in a project | One project only, for example this site’s theme repo |
Paste the config. It already matches Cursor’s remote server format:
{
"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.
"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.
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.
05Your first safe task
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.
- The agent calls
agentedseo-set-meta. Meta titles and descriptions ask first by default, so the answer isproposed. The live page has not changed. - Open AgentedSEO › Dashboard › Approvals. Check Before and After, the checks it passed and the agent’s note. Click Approve.
- Open AgentedSEO › Dashboard › Change log, open the change’s Details and click Undo. The Before value is back, and the undo is logged.
The live page has not changed.
Undo restores the Before value, and the undo is logged.
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.
- New drafts
- Edits to drafts
- Meta, schema, redirects, sitemaps, keywords, alt text
- Edits to published content, publishing
- Bulk changes over 20 pages
- robots.txt edits
- Noindex on a page with traffic
- Deleting redirects or schema
- Trashing or unpublishing
- 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
| Symptom | Fix |
|---|---|
| 401 in MCP Logs, header check fails | On Apache add SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 to .htaccess, or ask your host. |
| 401 with the header check passing | Wrong or revoked password. Create a new one on the Connections screen. |
${env:...} not filled | Set the variable in the environment Cursor starts from, then restart Cursor. |
429 agentedseo_locked_out | Ten failed sign-ins in 15 minutes lock the address out for 15 minutes. |
agentedseo_forbidden on a tool | The role lacks that area, or the module is off in AgentedSEO › Tools › Features. |
Change came back proposed | Working 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.