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.
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.
- 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
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.
Build from source — clone the repository and build it, then point your client at the binary
