
WordPress MCP Server
A Machine Communication Protocol (MCP) server for publishing content to WordPress sites
What is WordPress MCP Server?
WordPress MCP Server is a Machine Communication Protocol (MCP) server designed for publishing content to WordPress sites.
How to use WordPress MCP Server?
To use the WordPress MCP Server, set up a virtual environment, install the necessary dependencies, configure your WordPress credentials, and run the server either in MCP mode or as a standalone FastAPI application.
Key features of WordPress MCP Server?
- Publish articles to WordPress
- Test WordPress connection
- Retrieve WordPress categories and tags
- Operates as both a standalone FastAPI server and an MCP server
Use cases of WordPress MCP Server?
- Automating content publishing to WordPress sites.
- Testing and managing WordPress connections programmatically.
- Retrieving and managing WordPress categories and tags efficiently.
FAQ from WordPress MCP Server?
- Can I use this server for multiple WordPress sites?
Yes! You can configure it for different WordPress sites by updating the credentials in the .env file.
- Is there a graphical interface for this server?
No, it operates as a backend server without a graphical interface.
- What programming language is used for this project?
The WordPress MCP Server is developed in Python.
WordPress MCP Server
A Machine Communication Protocol (MCP) server that allows publishing content to WordPress sites.
Features
- Publish articles to WordPress
- Test WordPress connection
- Create, retrieve, and manage WordPress categories and tags
- Automatically handle category and tag creation when publishing
- Support for featured images via URL or base64-encoded data
- Works as both standalone FastAPI server and MCP server
- Environment variable support for WordPress credentials
Setup
-
Create a virtual environment using UV:
uv venv .venv\Scripts\activate
-
Install dependencies:
uv pip install -r requirements.txt
-
Configure WordPress credentials:
- Rename
.env.example
to.env
(or create a new.env
file) - Update with your WordPress site URL, username, and application password
- Rename
Usage
As MCP Server
Run the server in MCP mode:
python main.py --mcp
As Standalone API
Run the server as a standalone FastAPI application:
python main.py
The API will be available at http://localhost:8000
API Endpoints
GET /
- Root endpointGET /wp-config
- Get WordPress configuration from environment variablesPOST /get-categories
- Get all categories from WordPressPOST /get-tags
- Get all tags from WordPressPOST /test-connection
- Test the WordPress connectionPOST /publish-article
- Publish an article to WordPress
MCP Tools
PUBLISH_ARTICLE
- Publish an article to WordPress with category and tag IDsPREPARE_ARTICLE_METADATA
- Check for existing categories and tags, create them if they don't exist, and return their IDsTEST_CONNECTION
- Test connection to WordPress site
Category and Tag Management
The WordPress MCP Server now supports advanced category and tag management:
Using PREPARE_ARTICLE_METADATA
This tool allows you to:
- Check if categories and tags exist on your WordPress site
- Automatically create any categories or tags that don't exist
- Return the IDs of all categories and tags for use with PUBLISH_ARTICLE
Example workflow:
- Call PREPARE_ARTICLE_METADATA with category and tag names
- Get back the corresponding IDs
- Use those IDs with PUBLISH_ARTICLE to publish your content
Featured Image Support
The WordPress MCP Server now supports adding featured images to articles:
Using PUBLISH_ARTICLE with Images
You can add a featured image to your article in two ways:
-
Via URL: Provide an
image_url
parameter with a direct link to the image"image_url": "https://example.com/path/to/image.jpg"
-
Via Base64: Provide an
image_base64
parameter with the base64-encoded image data"image_base64": "iVBORw0KGgoAAAANSUhEUgAA..."
-
Custom Filename: Optionally specify a filename for the uploaded image
"image_filename": "my-custom-image-name.jpg"
The server will:
- Download the image (if URL provided) or decode the base64 data
- Upload the image to WordPress
- Set it as the featured image for the article
- Return the media ID in the response
Using the Standalone API
When using the standalone API, you can provide a featured image either as:
- A file upload using the
image
form field - A URL using the
image_url
form field
Environment Variable Support
All tools now support using environment variables from your .env
file as defaults:
WP_SITE_URL
- Your WordPress site URLWP_USERNAME
- Your WordPress usernameWP_PASSWORD
- Your WordPress application password
This means you can call the tools without explicitly providing these parameters if they're set in your environment.