I let Claude manage my WordPress blog

I’ve had this site since 2003. In all that time I never really learned WordPress. I knew just enough to keep things running, and every time I wanted to change something, like a menu, a layout or a colour, I decided it could wait.

That has changed. I now manage the site by chatting with Claude, and it is a lot of fun.

What we’ve done so far

In one evening, just by describing what I wanted:

  • Dark mode. The whole site now has a dark theme, with a little sun/moon button in the corner. It follows your system setting by default, and remembers your choice if you click it.
  • A proper menu. The old menu was built automatically from my page hierarchy. Claude migrated it to a real WordPress menu, so I can now mix pages, links and anything else.
  • Demos in plain sight. My JavaScript demos used to be buried on a page few people ever opened. They are now direct links under My Stuff.

How it’s set up

The built-in browser in Claude Desktop

The main piece is the built-in browser pane in Claude Desktop. I sign in to wp-admin once, and the session persists in that pane. Claude then drives the admin like I would: it opens Appearance → Menus, edits pages, and checks the result on the live site afterwards. Because it works through the normal admin session, I didn’t have to buy anything extra from Jetpack to automate this.

Claude can also run JavaScript in the page. In wp-admin, WordPress exposes a REST nonce (wpApiSettings.nonce), so Claude can call the REST API with the session’s own permissions. That is how it rebuilt the menu: it created a new menu with POST /wp/v2/menus, added the items with POST /wp/v2/menu-items, and assigned it to the theme’s header and mobile locations.

The MCP Adapter plugin

I also installed the MCP Adapter plugin, which exposes WordPress’s Abilities API to Claude over MCP. I’m honestly still not sure what good it does yet. Right now it only exposes a handful of abilities: site info, user info, environment info and Jetpack Forms. Nothing for pages, menus or settings. It looks like a plumbing layer that becomes useful once plugins register more abilities, so for now the browser does the real work.

An application password for the REST API

I also created an application password under my user profile, so Claude can talk to the REST API directly without a browser session. Application passwords are revocable and scoped to my user, so I can switch it off at any time without changing my real password.

Dark mode

The dark theme is a small snippet added with the free WPCode Lite plugin, in its header setting, so no theme files are touched. The theme (Blocksy) builds its colours from CSS variables, so the snippet just overrides the palette variables under html[data-theme="dark"]. A short script picks the theme from prefers-color-scheme, lets the button override it, and stores the choice in localStorage.

What’s next

I’ve been postponing Google AdSense, or some other revenue stream, for years. That is on the list now. I also want my demos to be easier to find, so people can actually discover and play with them.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.