WordPress Agent Benchmarks · Building with WordPress · November 2026
When site owners ask an AI for help, can it get the job done on WordPress?
Andy Peatling's open benchmark gives two real AI agents 21 ordinary requests from small business owners, on a real-looking WordPress site. I ran it with Respira as a third way in.
-
WordPress MCP adapter
0of 42 jobs done
No login. Only the abilities WordPress and the site's plugins registered.
95% CI 0–8%
-
The owner's password
33of 42 jobs done
The owner's application password, and the whole WordPress REST API.
95% CI 64–88%
-
Respira for WordPress
33of 42 jobs done
No login. Respira's tools, and the owner asked in the chat.
95% CI 64–88%
Adapter and password: Andy's published October runs. Respira: plugin 9.3.8, my runs of the same benchmark on 4 November.
Two agents tried every request, three ways in.
Opus 5.5 in Claude Code and GPT-6.1-Sol in Codex each got all 21 requests on each way in: 42 runs a column. A run counts only when everything the owner asked for is on the finished site, the site still works, nothing was lost, and the agent did not give itself more access than it was handed.
Each mark is one run: one agent on one request. A tick means everything the owner asked for was checked on the finished site.
Access is not ability.
The adapter's zero is not a failure of MCP. The agents connected, looked at what it offered, and stopped after three or four calls on average: the abilities they needed were not there yet. The password works for the opposite reason. It hands over the whole site, and the agent improvises. Respira sits between the two: a set of tools that does the jobs owners ask for, in the site's own format, and no password.
The owner's password
677 changes
to the site, in 37 of 42 runs
- Images uploaded202
- Posts written or edited124
- Pages built or edited109
- Redirects added60
- Shop products added or edited43
- Bookings and booking settings34
- Plugins installed or turned on24
- Site settings, templates and menus37
- Forms, categories, comments and more44
WordPress MCP adapter
11 changes
to the site, in 4 of 42 runs
- Shop products added or edited11
Respira for WordPress
424 changes
to the site, in 40 of 42 runs
- Images and files uploaded101
- Pages built or edited116
- Posts written or edited60
- Draft copies approved and published24
- Redirects added30
- Shop products and store settings18
- Plugins installed, turned on or off16
- Site settings, templates and menus47
- Forms, categories, users and more12
Adapter and password: the counts on Andy's results page, from the site request logs. Respira: writes that succeeded, read from each run's transcript and counted low. Respira makes fewer changes for as many jobs done: edits go to one draft copy, which is then published.
Permission belongs in the conversation.
In October Respira finished 23 of these jobs. I read every run it lost, and 8 had the same cause, which was mine: installing a plugin or changing a menu was off until the owner switched it on in wp-admin. An owner talking to an agent never goes there, so the agent stopped and sent instructions.
Respira 9.3.8 asks the owner in the chat instead, and acts only on their yes. In 16 of the 42 runs the agent asked and got a yes this way, and 11 of those finished. That change is most of the distance from 23 to 33. What changed in 9.3.8.
From the contact form run, Opus 5.5, 4 November
gareth.penrose@portwenmail.test, an address on a different domain from your business. Which email address do you actually read?office@harbourplumbing.test. I'm not very technical.The site asks me to get your yes before saving it, so here's what will happen:
- Change: enquiries go to
office@harbourplumbing.test, starting now. - Not changing: the site's admin email, so password resets still go there.
- Undo: I'll keep a note of the old address.
Shall I go ahead?
office@harbourplumbing.test.How Respira fits in.
- The agentClaude Code, Codex, ChatGPT, Claude or any MCP client. It never sees a password.
- Respira, inside WordPressTools for the jobs owners ask for, in the site's own builder format. A draft copy before a live page changes, a snapshot before every write, and a question for the person before anything that needs a yes.
- The personSays yes or no in the chat they are already in. Never sent to wp-admin.
- The siteChanged in WordPress's own storage, so everything keeps working with Respira switched off.
What the agents reached for
- 101images and files moved onto the sites, most through upload links
- 30redirects in the site moves, so the old Wix and Weebly addresses still lead somewhere
- 24draft copies approved and published
- 16plugins installed, switched on or off, each after a yes
- 0runs that escalated: no new admin, no login, no code edit, no way around Respira
What it costs.
| Respira 9.3.8 | Password | |
|---|---|---|
| Jobs done | 33 of 42 | 33 of 42 |
| Done before the owner said anything | 13 | 18 |
| Agent cost per run | $0.59 | $0.27 |
| Agent minutes per run, median | 3.1 | 2.0 |
| Password handed to the agent | no | yes |
Jobs done for the password: Andy's runs. Its replies, cost and time: my runs of the same setup on 18 October, which finished 32 of 42. Asking, drafting and checking are extra steps, and the owner answers more questions.
Where it still loses
- Online booking. Both Respira runs built the page and did not get a working booking to arrive. The adapter lost it too, and so did one of the two password runs.
- Slow cake pages. Neither Respira run made the pages fast and light enough for the checks.
- A critical error, with Opus. Respira lives inside WordPress, so when a plugin crashes the whole site the connection goes down with it. Codex got through and switched the plugin off. A way in that does not need WordPress to load is on my list.
- Updates, with Opus. The Codex run finished it, the first finished updates run in any setup, Andy's included. The Opus run did not.
- Moves, with Codex. Two moves failed on "editable": the pages render, and the owner could not edit them as blocks. One move off Weebly lost its navigation.
"When asked to make changes to an existing WordPress site, they completed 79% of tasks without the MCP Adapter, and none with it."
What this means for WordPress.
MCP is heading into WordPress core for 7.3. The connection was never the hard part. The next adapter score depends on abilities that do the jobs owners ask for, and on a permission model that asks the person where they already are. A password finishes the work by having every permission at once. Respira finishes as much by asking for the one each step needs. I think that is the shape agent work on WordPress should take, in core and in plugins, and I am glad to share what I learned building it.
How I ran it
- Andy's repository at trunk, with one entry added for the Respira setup. No request, prompt, owner rule or check changed. Harbor 0.23.0, the same agents and versions as his batch, on one Mac with Docker.
- On 18 October I ran all three setups the same day to check my machine reproduces his numbers: adapter 1 of 42, password 32 of 42, both within noise of his.
- Respira was set up the way its own Setup screen does it, every setting at its default. The WooCommerce add-on was installed on every site.
- One counted run per request and agent: the first that finished without an infrastructure failure. Four runs failed to start their container on 4 November and were run again; no finished run was replaced.
- The owner's replies were classified by Claude Haiku through the benchmark's documented fallback, where Andy's runs used TypeSafe's Jev.
- I make Respira. The harness, the requests and the checks are Andy's, and anyone can run them. I am glad to share every run record.
Thank you to Andy Peatling, who spent 17 years at Automattic and now runs the AI design agent Miles, for a benchmark that is open, careful and uncomfortable in the right places, and to Rae Morey and The Repository for reporting it. Andy's results are at wpab.view.fast, with a new run every month.