On Page Navigation

WordPress MCP Connector: What It Does and How to Set It Up

Updated August 19, 2026

What the connector does

The WordPress MCP Connector is a free plugin that turns your WordPress site into an MCP server. Once it is installed, an AI client such as ChatGPT, Claude, Cursor or Windsurf can read and change things on your site directly, using tools rather than by you copying text back and forth.

The problem it solves is narrow and familiar. An assistant will happily write you a product description, a redirect rule or a page of copy, and then you become the transport layer. You open wp-admin, find the right screen, paste, save, and do it again for the next one. Everything the assistant knows about the site is whatever you remembered to paste in the other direction. The connector removes both halves of that. The assistant reads the real site and writes back to it.

It runs on your own server. There is no relay service in the middle, nothing is proxied through us, and no copy of your content goes anywhere else. The plugin is the whole product and it is free, with no paid tier waiting behind it.

How the connection is actually made

Activating the plugin adds one JSON-RPC 2.0 endpoint to your site, under wp-json on your own domain. That single endpoint serves every client. There is no middleware to host, no daemon to keep alive and no separate service to open an account with, which is why the plugin has zero external dependencies, no Composer install and no build step.

Because the endpoint speaks an open standard rather than a vendor format, one server works with many clients. Model Context Protocol is published by Anthropic as a shared specification, so a client that adopts it later should connect without waiting on a plugin update. The same reasoning sits behind the Frappe MCP Connector, which does the equivalent job for ERPNext, and behind MCP Router, which puts one gateway in front of several servers at once.

What an agent can actually reach

389 tools across seven plugins. The split is worth knowing, because it tells you whether the thing you want to change is addressable at all. 82 tools cover WordPress core, 74 cover WooCommerce, 78 cover Rank Math, 29 cover Yoast, 71 cover Elementor, 35 cover Jetpack and 20 cover Contact Form 7.

Core covers posts, pages, media, comments, users, taxonomies, menus, plugins, themes and site settings, which is most of what an editor does in wp-admin. WooCommerce covers products, variations, stock, categories, attributes, orders, refunds, order notes, coupons, shipping zones, tax rates, payment gateways, webhooks and sales reports. The SEO tools reach meta titles and descriptions, focus keywords, canonicals, robots directives, schema, redirects, 404 logs and Search Console data, with Pro features supported where you already have them.

Elementor exposes the full elements tree, pages and templates, and global colours and typography, with Pro adding form submissions, theme builder templates, popups, custom code, dynamic tags and role permissions. Jetpack covers modules, site stats, top posts, related posts, sharing, subscriptions, publicize connections and protect settings. Contact Form 7 covers creating, editing, duplicating and deleting forms, mail templates and response messages, and a configuration validation tool that catches the misconfigured field which quietly stops a form delivering.

That coverage is the difference between an agent that can draft a post and an agent that can run a site. Most alternatives reach core only, which sounds similar until the thing you need to change lives in a plugin.

Tools appear only when the plugin they belong to is active. A site without WooCommerce simply has the 82 core tools and no store surface. Nothing breaks, nothing nags you, and the tool list reflects what is genuinely installed. Sites that have been built on and maintained for a few years, which is most of the ones we see through WordPress development work, usually end up well past the core set.

Profiles, which are the part that matters

389 tools is a lot to hand an agent unconditionally. Profiles decide what any given connection can see, so a content profile exposes posts and media and nothing else, while an administrative profile exposes more. You can define your own, which is what most people settle on once they know which dozen tools they actually use.

Underneath profiles sits a second and harder limit. Every tool call runs the same capability check WordPress applies in wp-admin, against the account the connection authenticated as. Connect as an editor and no profile will let the agent install a plugin, because the account genuinely cannot. Two independent controls, and the tighter of the two wins. If the account hygiene on the site is not what it should be, that is the real ceiling and it is worth fixing before anything else, which is the ground managed WordPress security covers.

This is scoping at the site level, and it is worth understanding alongside the scoping in MCP Router, which decides per person and per tool across several servers at once. The plugin controls what exists on this site. The router controls who reaches it. Sites that only ever have one operator can stop at profiles. Teams and agencies usually want both.

Authentication done properly

ChatGPT connects over real OAuth 2.0 with PKCE rather than a shared key pasted into a settings box. Claude Desktop connects with a WordPress Application Password, and Cursor and Windsurf use the same path. There is guided setup for each client rather than a page of instructions you have to interpret.

The details matter more than they look. Authorization codes expire after ten minutes, and PKCE ties a code to the client that requested it, so an intercepted code cannot be redeemed by anyone else. Access tokens last an hour. Refresh tokens last thirty days and rotate on renewal, so a leaked token stops being useful quickly instead of granting quiet access indefinitely. Client secrets are encrypted with AES-256-CBC before they reach the database, which means a stolen export or a nightly backup does not hand over working credentials.

From version 1.6.4, only administrators can generate OAuth credentials or authorize a ChatGPT connection. Releases up to and including 1.6.3 did not enforce that check, so upgrade before you connect anything. That keeps the decision to expose a site to an AI client with the people responsible for the site, rather than with anyone who happens to hold an editor login and a spare afternoon. Revocation is equally plain. Remove the Application Password or the OAuth grant in WordPress and the connection stops, with nothing else to rotate and nobody to email.

Where it earns its place

Content teams publishing at volume

The work that eats a content team is rarely the writing. It is formatting, setting categories and tags, attaching media, filling SEO fields and scheduling. With core and SEO tools exposed, an agent does that part against the real site instead of handing you text to paste.

Give that connection a content profile. There is no reason for a publishing workflow to reach user accounts or settings, and the smaller the surface, the less there is to think about later. Apply the same instinct to the account it authenticates as. An author or an editor, not an administrator, so the capability check underneath is doing real work rather than waving everything through.

The archive is the other half of it, and it is the safer half. Ask what is already published on a subject before commissioning another piece. List the posts whose meta description was never filled in. Find everything last touched more than two years ago. Those are read-only questions, they cannot damage anything, and they are the fastest way to find out whether the connection deserves to be widened.

WooCommerce stores with big catalogues

Bulk product edits, description rewrites, category restructuring and stock corrections are the jobs nobody wants and everybody postpones. 74 WooCommerce tools is what makes this real work rather than a demo, because the reach extends past products into variations, coupons, shipping zones, tax rates, refunds and orders.

Two cautions. Catalogue changes are writes, so take a backup you have actually restored from before turning an agent loose on a live store. And on a large catalogue, ask for a small batch first and check the result before scaling up, because a wrong instruction applied to four thousand products is a bad afternoon. That advice generalises. It is the same reasoning as testing an update on staging, which we set out in the piece on what maintenance mode does not protect.

One thing worth saying plainly. A large catalogue edit is a great many database writes in a short window, and on shared hosting that is felt. If the store is already slow under ordinary load, the connector is not what will fix it, and the honest sequence is performance work first and bulk automation second.

SEO work that spans hundreds of pages

SEO is the clearest case for this plugin, because the work is repetitive, per page, and lives in a plugin rather than in core. 78 Rank Math tools and 29 Yoast tools reach meta titles and descriptions, focus keywords, canonicals, robots directives, schema, redirects and the 404 log.

The realistic jobs are auditing rather than rewriting. Which pages have no meta description. Which canonicals point somewhere unexpected after a migration. Which entries in the 404 log are getting real traffic and deserve a redirect. An agent can produce that list in one pass, and then apply the fixes you approve, one batch at a time.

Be careful with canonicals and schema specifically. Both are easy to change in bulk and hard to notice when they are wrong, and a mistaken canonical can quietly take a page out of search results for weeks before anybody looks. Read what the agent proposes before approving it, and change ten pages before you change three hundred.

Forms and layouts you inherited from somebody else

The 20 Contact Form 7 tools include a configuration validator, and it earns its place. A form that has stopped delivering usually looks entirely normal in the admin, and the fault sits in a mail template field pointing at something that no longer exists. Asking an agent to check every form on the site takes seconds and answers a question most people never think to ask until a lead has already gone missing.

Elementor is the other inherited-mess case. 71 tools reach the full elements tree, templates, and global colours and typography, which means an agent can find every page still carrying an old brand colour rather than you clicking through forty of them. That is routine maintenance work done in a single pass instead of turning into a quarterly project.

Agencies running many client sites

The plugin is per site, so twenty clients means twenty servers. That is where a gateway stops being optional. Attach each site as a provider in MCP Router, grant staff access per client, and revoke centrally when an engagement ends.

Without that, offboarding means asking people to remove entries from their own configuration, which is a request rather than a control. If you deliver under a white label arrangement, being able to demonstrate when access ended is worth having before a client asks for it.

The same holds under a reseller arrangement, where the end client relationship is not yours and the boundary matters more rather than less. One credential per site, one profile per connection, and a record of who held what.

Small teams without a developer

This is a finished plugin, not a developer library. You install it, pick a profile and connect a client. Nothing is compiled and no code is written, which is the entire reason it exists in this form.

The tasks that suit it best are the ones that feel technical but are really just tedious. Updating a page, fixing a form, working out why an email stopped sending. Describing the problem to an assistant that can look at the actual site beats hunting for a tutorial written against a version of WordPress you are no longer running.

If the site itself is what is holding you back rather than the tooling, that is a different problem and it is what managed WordPress is for. And if the work you want automated reaches past WordPress into the systems around it, the connector is one input to a larger design rather than the whole answer, which is where business process automation starts.

Setting it up, and what it is not

Three steps

Install the plugin and pick a profile. Connect your AI client, using OAuth for ChatGPT or an Application Password for Claude Desktop, Cursor or Windsurf, following the guided setup for whichever you use. Then put it to work. On a site you already administer the whole thing takes about ten minutes.

Start with a narrow profile and a read-only task on the first day. Ask the agent to list something, or to summarise what is on the site. Once you have seen it read correctly, widen it. The instinct to grant everything immediately and test with a real change is the one to resist.

A worked first hour

Install from the WordPress Plugin Directory and activate. Open Settings, then MCP Connector, and select a read-only profile. Do not connect anything yet.

Decide which account the connection will authenticate as. If the answer is your own administrator account, because that is the one you happen to be logged into, stop and create a separate account at the lowest role that can do the job. This one decision sets the ceiling on everything that follows, and it is much harder to change later once people are relying on the connection.

For Claude Desktop, Cursor or Windsurf, log in as that account, create an Application Password under Users then Profile, and copy it. Open the Client Setup tab, which generates the configuration block for your client with your own endpoint already filled in, and paste it across. For ChatGPT, open the ChatGPT OAuth tab instead, generate a client ID and secret, create an app in ChatGPT pointing at your endpoint, and complete the authorization on your own WordPress login screen. That final step has to be done by an administrator, even though the connection itself can be scoped far below one.

Ask a read-only question first. Something as dull as listing the ten most recently modified posts. If real titles from your site come back, then the transport, the authentication and the profile are all working, and you have proved it without changing a byte.

Then widen once, not twice. Move to a profile that permits writing and make one small change you can verify by eye. A meta description on a single page, or a category on a single post. Go and look at it in wp-admin. Only once that has come back correct is it reasonable to ask for anything in bulk.

The sequence takes under an hour and it moves every likely failure into a moment where nothing is at stake.

Prerequisites

WordPress 5.8 or higher and PHP 7.4 or higher. The current release is 1.6.5, tested up to WordPress 7.0.4. The published test matrix covers WordPress 7.0, WooCommerce 10.7, Yoast SEO 27.6, Rank Math 1.0.270, Contact Form 7 6.1.6, Elementor 4.0.9 and Jetpack 14.0.

The site has to be served over HTTPS. WordPress requires that for Application Passwords whatever plugin you are using, so a site still on plain HTTP cannot connect Claude Desktop, Cursor or Windsurf at all. Most hosts now issue certificates as standard, and if yours does not, that is worth solving before anything else here. It is one of the things managed hosting takes off your hands.

The site also has to be reachable from the internet. A hosted client such as ChatGPT connects inbound to your endpoint, so a site behind HTTP basic auth, on a private network, or on a staging domain that blocks outside traffic will not be reachable by it. That is a networking condition rather than a plugin limitation, and it is the most common reason a first connection fails.

You need an administrator account to set it up, because authorization is admin only. You do not need one to use it afterwards, and you should not use one.

And you need an AI client that speaks MCP. The plugin is the server half of the connection. It does not include a client and it is not one.

When the connection does not work

Check these in order. Each one is cheaper to test than the one after it.

First, is the site reachable from outside your own network over HTTPS. Load it on mobile data with wifi turned off. If that fails, nothing after this matters yet.

Second, did the authorization complete as an administrator. A ChatGPT connection authorized by an editor stops at the final screen, and the error is not always clear about why.

Third, does the profile you selected actually include the tool you are asking for. This is the single most common cause of a tool appearing to be missing, and from the client side it looks identical to the plugin not supporting the feature at all.

Fourth, is the underlying plugin active. WooCommerce, Yoast, Rank Math, Contact Form 7, Elementor and Jetpack tools exist only when the plugin they extend is installed and active on that site. A tool that is present on one site and missing on another is nearly always this.

Fifth, if a call is refused rather than absent, check whether the connected user holds the WordPress capability for it. Capability checks run on every call, and a subscriber level account will be stopped exactly as it should be. A refusal at this layer is the system working, not failing.

Sixth, if a connection worked yesterday and does not today, check whether the Application Password or the OAuth grant was revoked, and whether a refresh token has gone thirty days without use. Both expire quietly and neither announces itself.

What it is not

It is not a hosted service, and that cuts both ways. Nothing is proxied through anybody else, and equally nobody else is watching whether it is up. If the site goes down the connection goes with it, and no one gets paged.

It is not a developer library. If what you wanted was primitives for building your own tools, the official WordPress MCP adapter is that, and it is the right choice for shipping your own integration. This is the finished thing instead. The two serve different people and we would tell you so.

It does not supervise the agent. Profiles decide what is reachable and WordPress capabilities decide what is permitted, but inside those bounds an agent does what it is asked. There is no approval queue, no dry run and no undo. Scope deliberately and keep a restorable backup, which is the same advice as for any tool that can write to your site.

It does not reach plugins it does not support. Seven integrations is a wide net, but if the setting you need to change lives in an eighth plugin, it is not addressable, and no profile setting will make it so.

It is not an audit log either. WordPress records what the connected account did in the ordinary way, and that is what you have. There is no separate ledger of agent activity to hand a client at the end of a project.

And it is free with no upgrade path. It is published on WordPress.org under GPL v3, every feature ships in the free version, and there is no premium tier for anything described here to move behind later.

Where to go next

The full tool inventory and the install notes are on the WordPress MCP Connector product page.

If you run Frappe or ERPNext as well, the Frappe MCP Connector does the equivalent job there, and in practice the same person installs both for the same reason.

If you are connecting more than one or two servers, read the MCP Router documentation before you wire them up individually. Retrofitting a gateway once everybody has their own configuration is harder than starting with one.

And if you would rather not make the profile and account decisions yourself on a site that matters, that is part of managed AI work and it is a reasonable thing to hand over.