Labsco
MCP SERVER

WordPress MCP Server

by seomentor

Publish to several WordPress sites from one conversation — posts with categories and tags, and a DALL-E 3 featured image generated and uploaded with them.

CMS & Blog Publishing
Summary
Draft by default, which is the setting that saves you.

A server that can publish to a dozen client sites should not publish on the first try, and this one defaults to draft. The image pipeline is the genuine time-saver — prompt derived from the article, SEO-shaped filename, uploaded to the right site's media library and set as featured, with none of those steps left as manual follow-up. Budget for it: each image is a DALL-E 3 call against your own OpenAI account. The environment-variable collision on the OpenAI key is the most-reported setup problem and the README says exactly how to avoid it.

What it is

An MCP server for managing multiple WordPress sites through the REST API. Each site is declared once in a YAML file with its application password, and posts can then be created on any of them — optionally with a featured image generated from the article's own title and content and uploaded to that site's media library.

What you get
  • Multi-site control: every configured site addressable by id from the same connection, so a post can go to one blog or several in sequence
  • Article creation with full control over categories, tags and post status
  • Featured images generated with DALL-E 3 — the prompt is derived from the title and content, the filename is SEO-shaped, and the image is uploaded and set as the featured image automatically
  • Reading a site's existing categories and tags before publishing into them
  • A connection test per site, which is how you find a bad application password before a publish fails
  • Full Unicode handling, including right-to-left languages such as Hebrew and Arabic
Requirements

For each WordPress site: the REST API enabled (default since WordPress 5.0), a user with `edit_posts`, `upload_files`, `manage_categories` and `manage_post_tags`, and an Application Password generated from Users → Profile. Sites go in `config/wordpress_sites.yaml` with id, name, url, username and that password. Image generation additionally needs `OPENAI_API_KEY` — and if one is already set in your system environment it can override the `.env` value, so the README recommends putting it in the client config's env block instead. Python 3.8 or higher; clone, `pip install -r requirements.txt`, and launch `python -m src.server` with the repo as the working directory. Image cost runs about $0.04 per standard image and about $0.08 at HD. `default_post_status` is draft. MIT licensed.

Setup effort

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