ProcessWire MCP: 360 Content Sync Between Cursor and Any ProcessWire Site

Have you ever wished you could publish to your ProcessWire site simply by prompting Cursor? Or pull down a live page, edit it in your IDE, and push it back to remote without touching a database or opening the CMS admin? That's exactly what this module does.

Have you ever wished you could publish to your ProcessWire site simply by prompting Cursor? Or pull down a live page, edit it in your IDE, and push it back to remote - without touching a database, exporting SQL, or opening the CMS admin?

That's exactly what this module does.

Why I built this

I recently built two web applications, one in React and one in Vue. Both needed blogs. I started both in ProcessWire, which felt like the obvious choice.

But as both projects grew, the blogs had to move. Keeping the blog on ProcessWire meant a separate subdomain sitting alongside the main app, a second deployment to manage, and database sync headaches whenever I moved between environments. It also meant splitting the project across two platforms and two domains, which just created more friction as things scaled. So I ended up porting both blogs into the frontend frameworks and used Cursor to build them out with prompts instead.

And I really loved it. The speed of development was brilliant. New post, restructured content, layout change, just prompts. No templates to configure, no fields to set up, no admin to log into.

But as the content grew I started missing things. Small things at first. A proper page tree. Published and draft states. Automatic redirects when a URL changed. Decent image handling. Sitemap generation. The kind of stuff ProcessWire just quietly takes care of, that you only really notice when it isn't there. And as the blogs scaled those small things started to matter quite a lot.

So I wanted to see if I could get the best of both. The speed of a Cursor-driven content workflow, but with ProcessWire doing the heavy lifting underneath. That's what this module is.

What is it?

ProcessWire MCP is a Cursor Model Context Protocol bridge that gives Cursor full read and write access to any ProcessWire site - local or remote - via a secure HTTPS API. You describe what you want in plain English, and Cursor handles the rest: pulling pages, editing content, pushing changes, creating new pages, syncing fields and templates across environments.

The practical result is a genuine 360 workflow - content and structure moving freely between your local dev environment and any live site, driven entirely by natural language prompts.

What's new in this release

Remote site connection

Cursor can now connect directly to any live ProcessWire site over HTTPS. A single API endpoint deployed to your remote server root is all that's needed. Previously all MCP tools only worked against your local database - remote changes meant logging into the CMS admin manually.

Schema sync - push, pull, diff

Field and template definitions are exported as versioned JSON files. Compare your local schema against production, see exactly what would change, and push with a single prompt. Think of it as Prisma migrations for ProcessWire. Previously adding a new field to production meant recreating it by hand in the admin and hoping it matched local. Now it's one prompt.

Page content sync - pull and push

Any live page can be pulled down to a local YAML file. Your content is now code - version-controlled, editable in your IDE, and diffable like any other file. Edit it locally and push it back to local, production, or both simultaneously. Dry-run is on by default so you see exactly what will change before it's applied. The CMS admin is never involved.

Create and publish pages remotely - without touching the CMS

Scaffold a new page in Cursor, write the content, and publish it directly to production in one step. Template, parent, name, fields, and published status are all set via a single prompt. This is the foundation for more powerful automated workflows - bulk landing page generation, scheduled blog publishing, or programmatic content pipelines driven by keyword data or external feeds. The CMS admin is never opened.

Cross-environment page reference resolution

Pages that reference other pages - a homepage featuring service pages, for example - previously stored those relationships as raw database IDs. Those IDs differ between local and production, so pushing a page reference to a different environment would silently link to the wrong page, or nothing at all. References are now stored with their URL path and resolved correctly on whatever environment receives the push.

Pre-push reference validation

Before any push, a new pw_validate_refs tool scans every synced page and checks that all page references actually exist on the target environment. It reports missing references - which would blank the field on push - and unpublished references separately. Previously a broken reference had no way to surface until it caused a visible problem on the live site.

A real example

This blog post was created using the module itself. The workflow was:

  1. Pull an existing blog post to see the field structure
  2. Scaffold a new blog-post page under /blog/posts/
  3. Write the content into local YAML and HTML files
  4. Push to production - published - without opening the CMS admin once

The whole process took a single Cursor session. I just published a blog post about the module using the module, without opening the CMS admin once. That's the demo right there.

The optional Admin UI

Cursor chat is the primary interface for this module, but there is also an optional PW-MCP Admin module that adds a visual sync dashboard directly inside the ProcessWire admin panel.

The dashboard shows your full page tree with a sync status indicator on each page - clean, locally dirty, changed remotely, or in conflict. From there you can pull or push individual pages without leaving the ProcessWire admin, which is useful for content editors who are comfortable in the CMS but want the benefits of the sync workflow without writing prompts in Cursor.

Currently the Admin UI handles local sync only. Full 360 support - including remote push/pull, environment switching, and reference validation - is coming to the Admin UI in the next release, bringing it to feature parity with the Cursor chat interface.

What's coming next

The next phase adds a staging environment tier for a local → staging → production promotion workflow, matrix and repeater item sync, and autonomous content publishing - where an external scheduled process generates and publishes SEO-optimised content directly to ProcessWire without Cursor or the CMS admin being open at all.

If you build with ProcessWire and use Cursor, it's worth a look. Drop a comment below if you'd like early access.