Provides tools for managing WordPress content through the REST API, including operations for posts, pages, users, plugins, and custom post types with support for creating, reading, updating, and deleting content.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WordPressMCP Servercreate a new blog post titled 'Summer Gardening Tips' with category 'Gardening'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WordPressMCP Server
Minimal MCP server that exposes WordPress REST tools over stdio. It supports
posts, pages, categories, tags, users, plugins, and dynamic CPT routing via
type/post_type.
Requirements
Node.js 18+ (fetch API required)
WordPress Application Password
Optional: MCP REST Helper plugin for Yoast SEO meta via REST: https://github.com/jahzlariosa/mcp-rest-helper
Setup
Install dependencies:
Create a
.envfile (see.env.example):
Run the server:
MCP Host Config (config.toml)
If your AI host uses a config.toml to register MCP servers, add an entry like:
If your host does not support inline env, configure it to load .env or set
WP_URL, WP_USER, and WP_APP_PASS in the process environment.
Notes
The server uses the stdio transport, so run it under your MCP host.
For custom post types, pass
typeorpost_typewith the CPT slug or REST base. Example:type: "announcement"routes to/wp-json/wp/v2/announcement.create_postalso supportsstatusoverrides likeannouncement:draftto target a CPT without a separatetypearg.Taxonomy tools are available for categories and tags (
list_*,get_*,create_*,update_*,delete_*).list_postsacceptscategories,tags,categories_exclude, andtags_excludefilters;create_post/update_postacceptcategoriesandtags.Media tools are available for uploads (
upload_media) and inspection (list_media,get_media). Providedata_base64, adata_url, orsource_url(optionally withsource_headers), then use the returned mediaidasfeatured_media(orfeatured_image) oncreate_post,update_post,create_page, andupdate_page.Optional:
generate_imageuses the configured provider (currently OpenAI) to return image data or URLs that can be fed intoupload_media. Useresponse_format: "b64_json"orresponse_format: "url"as needed.Yoast SEO meta can be set via a
yoastobject oncreate_post,update_post,create_page, andupdate_page(title, description, focus keyphrase, keyphrase synonyms, related keyphrases, canonical, robots noindex/nofollow, and OG/Twitter overrides). Premium fields require Yoast Premium to be active.Premium Yoast fields available in
yoast:focuskw_synonyms,focuskeywords,keywordsynonyms(provide the raw Yoast string/JSON format).
WordPress Helper Plugin
If you need to update Yoast SEO fields through the REST API, install the MCP REST Helper plugin from https://github.com/jahzlariosa/mcp-rest-helper. It registers the Yoast meta keys (including premium keyphrase fields when Yoast Premium is active) for all REST-enabled post types so MCP updates can persist.
You can install it from GitHub:
Download the zip from https://github.com/jahzlariosa/mcp-rest-helper/releases and unzip it into
wp-content/plugins/.Or clone directly:
git clone https://github.com/jahzlariosa/mcp-rest-helper.gitintowp-content/plugins/mcp-rest-helper.
Sponsorship
If this project helps, consider supporting it:
Project Layout
server.mjs: entrypoint, tool registrationsrc/config.mjs: env parsing and validationsrc/wpClient.mjs: WordPress REST clientsrc/wpUtils.mjs: query/form helpers and post-type parsingsrc/postTypeResolver.mjs: cached CPT resolversrc/tools/: tool registration modules