Tools
Things I built so the agent stops guessing
Language models are confidently wrong about WordPress in very specific, repeatable ways. Every tool here exists because I hit one of those ways on a real project and got tired of it. All open source, all free.
The WordPress MCP trio
Three MCP servers that cover the whole loop: author, validate, test. Language models are confidently wrong about WordPress in very specific ways, inventing hooks that sound right, generating block markup the editor rejects, and never running any of it. Each server replaces a guess with a lookup against real source code.
-
wp-devdocs-mcp
GitHub stars: 72 MIT
A verified hook database instead of a confident guess
Indexes every action, filter, block registration and JS API call from WordPress, WooCommerce, Gutenberg, or any plugin you point it at, including your own private ones that no model has ever seen. The agent searches the index and validates the name before it writes the line, so
woocommerce_email_after_order_detailsnever makes it into a file. Exact parameters, docblocks and file locations come back with it.npx wp-devdocs-mcp -
wp-blockmarkup-mcp
GitHub stars: 39 MIT
Gutenberg markup that survives the editor
Extracts every block's real attribute schema and validates generated markup through two tiers: the official WordPress block parser for structure, then the block's own
save()function AST for output. That is the difference betweenhas-vivid-red-background-colorand the plausible-looking string a model would otherwise produce. 121 core blocks indexed, every static markup example passing both tiers.npx wp-blockmarkup-mcp -
wp-playground-mcp
GitHub stars: 10 MIT
A disposable WordPress the agent can actually run code in
Wraps WordPress Playground so an assistant can boot a full WordPress in WebAssembly, run WP-CLI against it, read the PHP error log, and tear it down leaving nothing behind. No Docker, no MySQL, no server config. It closes the loop: the agent stops iterating blind and finds out whether the tab it hooked actually appears.
npx wp-playground-mcp
The harness
The servers give an agent good information. This is the structure around it: what the agent reads first, who reviews its work, and which gates it cannot talk its way past.
-
wp-agentic-kit
GitHub stars: 18 MIT
The agentic setup I actually use, packaged to install once
Annotated
CLAUDE.mdandAGENTS.md, two interview-driven skills for scaffolding a plugin and adding a feature, read-only reviewer subagents that audit the plan and the security surface before sign-off, and deterministic hooks including a blocking pre-commit gate. Durable plan files carry context across sessions. Structured around the four D's from the WordCamp Portugal talk: delegation, description, discernment, diligence.npm create wp-ai-plugin my-plugin
Also
One tool for anyone living in Claude Code all day, and one that is less a developer tool than an argument about where AI should run.
-
wims
GitHub stars: 1 MIT
Find and resume any Claude Code session, from any folder
claude --resumeonly lists sessions for the directory you happen to be standing in, so a good session from three days and forty folders ago is effectively lost. wims lists every session on the machine, lets you search and preview them, and drops your shell into the right folder with the conversation resumed. Not WordPress-specific, and the one I reach for most.npm install -g @pluginslab/wims -
wp-agentic-admin
GitHub stars: 28 GPL-2.0
A site reliability engineer that never leaves the browser
Describe the problem in plain English inside wp-admin and a local model reads the error log, names the plugin at fault, proposes a fix and applies it with your approval. The model runs in the browser through WebLLM and WebGPU, so no admin data reaches a third party, there are no API costs and no GPU to rent. Co-authored with Ivelina Dimova, built with the team at the CloudFest Hackathon 2026 on the WordPress Abilities API. We present it together at WordCamp Galicia in October.
Issues and pull requests are welcome on all of them. If one of these saved you an afternoon, or broke in an interesting way, I would like to hear about it: marcel@pluginslab.com.