Labsco
MCP SERVER

WordPress MCP Server

by stefans71

Draft, publish and update WordPress posts from a conversation, through the site's REST API and an application password.

CMS & Blog Publishing
Summary
Three operations, drafts by default.

The whole surface is create, read and update on posts — no media, no taxonomies, no comments — and the create path defaults to `draft`, so an over-eager model produces something you review rather than something readers see. Because credentials can ride in the request instead of the environment, one server can serve several sites, at the cost of putting passwords in tool arguments.

What it is

A small MCP server for WordPress that talks to a site over its REST API. It covers the writing loop and nothing more: create a post, list existing posts, update one that is already there.

What you get
  • A new post created with title, content and a status of `draft`, `publish` or `private`, defaulting to `draft` — `create_post`
  • Existing posts retrieved with page and per-page paging, 10 per page by default — `get_posts`
  • An existing post updated by id, changing title, content or status — `update_post`
  • Credentials taken either from the environment or passed per request, so one server can address more than one site
  • Works the same on Windows, macOS and Linux
Requirements

A WordPress site with the REST API enabled, and an application password rather than your account password — generate it under Users → Security → Application Passwords. `WORDPRESS_SITE_URL`, `WORDPRESS_USERNAME` and `WORDPRESS_PASSWORD` go in the server entry, or the same three values travel as `siteUrl`, `username` and `password` in each request. Node.js 20.0.0 or higher; install is a clone plus `npm install` and `npm run build`, then launching `build/index.js` with node. The package.json names it `wordpress-server` at 1.0.0.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary