DiviOps
An AI harness for WordPress site authoring — Divi-native today, WordPress-wide by design.

DiviOps gives Claude Code, Claude Desktop, and other MCP clients a typed control layer over WordPress site state. It pairs an MCP server, a WordPress agent plugin, and Claude skill knowledge so AI agents can author Divi pages, inspect schemas, manage design tokens, work with SCF/CPT data models, run safe WP-CLI operations, and extend into target plugin coverage slices.
Claude Code ◄──► MCP Server (stdio) ◄──► WordPress REST API ◄──► DiviOps Agent plugin
▲
│
divi-5-builder skill
(block format + design rules)
Beta software. DiviOps is under active development. Use on production sites at your own discretion. Always back up your WordPress site before running write operations.
What's in this distribution
| Component | What it is | Where it lives |
|---|
diviops-agent WordPress plugin | REST API endpoints for Divi page data, section targeting, block validation, preset management. The contract layer between WordPress + Divi and the MCP server. | diviops-agent.zip at repo root |
@diviops/mcp-server | Node.js MCP server that bridges Claude to WordPress. Distributed via npm — no clone, no build. | npx @diviops/mcp-server |
divi-5-builder Claude skill | Block format rules, verified attribute paths, design patterns. Without it, Claude guesses attr formats and produces broken pages. | skills/divi-5-builder/ (also installable via claude plugin install oaris-dev/diviops) |
diviops-design-library plugin | Optional. CSS entrance animations, gradient text, glass effects, Three.js WebGL shaders. | diviops-design-library.zip at repo root |
Use cases
DiviOps fits multiple WordPress workflows where AI-driven authoring + management is the value:
- Page building (Divi authoring) — create + edit Divi pages, sections, modules, canvases via prompt; preset-driven design system reuse; Theme Builder layouts and templates.
- SCF setup + management — provision Secure Custom Fields field groups, sync schemas, export/import field group definitions; SCF data model becomes a tool surface, not an admin-UI flow.
- CPT + post population — register custom post types via wp-cli passthrough; bulk-populate posts and pages across any post type, not just Divi-built ones.
- Data model reasoning — schema introspection across Divi modules + SCF field groups + post meta; ask Claude what fields a post type carries, what attributes a module accepts, what tokens are defined.
- WordPress site auditing — preset audits, design-token usage scans, orphan detection (presets, variables, dangling references); broader site surveys via wp-cli (
wp option list, wp post list --format=json, wp user list).
- Hybrid sites (Divi + custom PHP) — Divi authors the marketing pages; custom PHP templates handle dynamic ones (CPT listings, single-post views, member portals); design tokens harmonized across both surfaces via CSS custom properties driven from the Divi variable system.
Quick start
Three steps to your first tool call. For containerized environments, HTTPS configuration, and troubleshooting, see SETUP.md.
1. Install the WordPress plugin
Upload diviops-agent.zip (at the root of this repo) via WP Admin → Plugins → Add New → Upload Plugin, then activate it. Requires Divi 5.1+ on WordPress 6.5+.
Verify: visit http://your-site.local/wp-json/diviops/v1/schema/settings — you should get a 401 (auth required).
2. Create an Application Password
In WP Admin → Users → Your Profile → Application Passwords:
- Enter a name (e.g. "Claude MCP")
- Click "Add New Application Password"
- Strip the spaces from the generated password — WordPress shows
758r WQ1X URcg ... for readability but accepts the spaceless form, which avoids argument-parsing surprises in claude mcp add.
3. Register the MCP server with Claude Code
claude mcp add diviops-mysite \
--env WP_URL=http://your-site.local \
--env WP_USER=your-wp-username \
--env WP_APP_PASSWORD=xxxxXXXXxxxxXXXXxxxxXXXX \
-- npx @diviops/mcp-server
For Local by Flywheel (enables the diviops_meta_wp_cli tool), add --env "WP_PATH=/Users/you/Local Sites/your-site/app/public".
Restart Claude Code, then ask: "List the pages on my site." Claude calls diviops_page_list and renders the result. You're authoring with the suite.