WordPress MCP Integration
About
WordPress MCP Integration is a Model Context Protocol (MCP) server that enables interaction with WordPress sites through the WordPress REST API. It provides tools to create, retrieve, and update WordPress posts, and is intended for developers and AI agents that need to manage…
Details
- Author
- rizaardiyanto1412
- GitHub stars
- 2
- Downloads
- 396
- Categories
- Other
Jump to
- Create new WordPress posts
- Retrieve existing WordPress posts
- Update existing WordPress posts
- Supports draft, publish, and private post statuses
- Configured via environment variables or request parameters
- Uses WordPress application passwords for secure authentication
Clone the repository, run npm install, then start the server with npm run server (optionally specifying a port number). Configure either environment variables (WORDPRESS_SITE_URL, WORDPRESS_USERNAME, WORDPRESS_PASSWORD) or pass credentials as request parameters when calling tools. Use JSON‑RPC over stdio (default) or a specific port to invoke the create_post, get_posts, and update_post tools.
WordPress MCP Integration
This is a streamlined version of the Model Context Protocol (MCP) TypeScript SDK that focuses specifically on WordPress integration. It enables interaction with WordPress sites through the WordPress REST API using the MCP protocol.
Overview
The WordPress MCP integration allows you to:
- Create new WordPress posts
- Retrieve existing WordPress posts
- Update existing WordPress posts
Installation
1. Clone this repository
2. Install dependencies:
npm install
Configuration
There are two ways to configure the WordPress integration:
1. Environment Variables
Set the following environment variables:
- WORDPRESS_SITE_URL: Your WordPress site URL
- WORDPRESS_USERNAME: WordPress username
- WORDPRESS_PASSWORD: WordPress application password
2. Request Parameters
Provide the credentials directly in the request parameters when calling the tools.
Security Note
For security, it's recommended to use WordPress application passwords instead of your main account password. You can generate an application password in your WordPress dashboard under Users → Security → Application Passwords.
Available Tools
create_post
Creates a new WordPress post.
Parameters:
- siteUrl: (optional if set in env) WordPress site URL
- username: (optional if set in env) WordPress username
- password: (optional if set in env) WordPress application password
- title: Post title
- content: Post content
- status: (optional) 'draft' | 'publish' | 'private' (default: 'draft')
Example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_post",
"arguments": {
"title": "My New Post",
"content": "Hello World!",
"status": "draft"
}
}
}
get_posts
Retrieves WordPress posts.
Parameters:
- siteUrl: (optional if set in env) WordPress site URL
- username: (optional if set in env) WordPress username
- password: (optional if set in env) WordPress application password
- perPage: (optional) Number of posts per page (default: 10)
- page: (optional) Page number (default: 1)
Example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_posts",
"arguments": {
"perPage": 5,
"page": 1
}
}
}
update_post
Updates an existing WordPress post.
Parameters:
- siteUrl: (optional if set in env) WordPress site URL
- username: (optional if set in env) WordPress username
- password: (optional if set in env) WordPress application password
- postId: ID of the post to update
- title: (optional) New post title
- content: (optional) New post content
- status: (optional) 'draft' | 'publish' | 'private'
Example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_post",
"arguments": {
"postId": 123,
"title": "Updated Post Title",
"status": "publish"
}
}
}
Running the Server
Start the WordPress MCP server:
npm run server
This will start the server on stdio by default. To run it on a specific port (e.g., 3000):
npm run server 3000
Requirements
- Node.js 18.0.0 or higher
- WordPress site with REST API enabled
- WordPress application password for authentication
License
MIT License - See LICENSE file for details
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



