Changesets
Propose edits to published WordPress posts/pages without changing live content. Agent-native Abilities; human Apply to live.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/richtabor/changesets/archive/refs/heads/main.zipReadme
Changesets
Accumulate site edits in a staging Changeset, preview them on the live site without touching production, then Publish Changeset after human approval.
For agents
Agent prompt (paste-ready):
You have access to a WordPress site. Before staging changes: (1) Check if Changesets and WordPress MCP Adapter are installed and active by verifying
changesets/*abilities are available via MCP. (2) If missing, explain both plugins are required, ask permission to install, then install if allowed. (3) Once plugins are active, ensure MCP connection with Application Password. Then workflow: create changeset → stage changes with changesets/save (type: content/styles/setting) → give human the preview URL and wait for approval → after approval call changesets/approve then changesets/publish. Never edit live content directly unless human explicitly requests a repair outside Changesets.
Setup checklist (verify BEFORE asking for credentials):
- Are Changesets + MCP Adapter installed and active?
- Verify by checking if
changesets/*abilities are available via MCP tools - If missing: Ask permission to install, then install if allowed
- Only after plugins are active: Request Application Password / MCP connection if not connected
Why: Site URL alone ≠ MCP access. You need the adapter plugin + authenticated connection for changesets/* tools to appear.
Critical rule: Never edit live posts, options, or styles directly. Use Changesets abilities only. Only bypass Changesets if human explicitly asks for a live repair.
Workflow:
- Create a changeset:
changesets/create→ returns{ preview_url, uuid, changeset_id } - Stage work:
changesets/savewith one of threetypevalues:content— page/post/template/template-part/navigation/CPTstyles— global styles and style variationssetting— site options (blogname, page_on_front, etc.)
- Preview: Give the human the
?changeset=<uuid>URL and wait for approval - Publish: After approval, call
changesets/approve, thenchangesets/publish
What stages: Content (pages, posts, templates, template parts, navigation, custom post types), global styles, style variations, and settings (site title, homepage, site logo, site icon, featured images).
Media policy: Attachment posts are never staged in changesets. Uploads go directly to the Media Library and persist even if the changeset is discarded. Changesets stage only references: featured images (featured_media), site logo (custom_logo), site icon (site_icon), and content HTML/blocks containing attachment IDs.
Settings: Site options and theme_mods are staged via type=setting. The plugin auto-detects storage type (option vs theme_mod) for known keys like custom_logo (theme_mod) and site_icon (option).
See readme.txt for complete documentation.
Setup
Requirements: Hosted WordPress 6.9+ (not Playground)
- Install and activate Changesets and WordPress MCP Adapter on your WordPress site
- Create an Application Password (propose-only user without publish permissions recommended)
- Connect your MCP client to the site using the Application Password
Private preview mode (optional): Require logged-in users with manage_changesets capability to preview changesets. Add to wp-config.php:
define( 'CHANGESETS_PRIVATE_PREVIEWS', true );
When enabled, only logged-in users with the appropriate capability can use ?changeset=<uuid> preview URLs. When disabled (default), anyone with the UUID can preview.
License
GPLv2 or later