WordPress Integration
STDIOMCP server for managing WordPress sites through REST API with comprehensive tools.
MCP server for managing WordPress sites through REST API with comprehensive tools.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with WordPress sites through the WordPress REST API. This server provides tools for managing all aspects of WordPress programmatically, including posts, users, comments, categories, tags, and custom endpoints.
git clone [repository-url] cd wordpress-mcp-server
npm install
npm run build
Before using the server, you need to set up your WordPress site:
Add the server to your MCP settings file (usually located at ~/AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
):
{ "mcpServers": { "wordpress": { "command": "node", "args": ["path/to/wordpress-mcp-server/build/index.js"] } } }
Creates a new WordPress post.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordtitle
(required): Post titlecontent
(required): Post contentstatus
(optional): Post status ('draft', 'publish', or 'private', defaults to 'draft')Example:
{ "tool": "create_post", "siteUrl": "https://example.com", "username": "admin", "password": "xxxx xxxx xxxx xxxx", "title": "My First Post", "content": "Hello, world!", "status": "draft" }
Retrieves WordPress posts with pagination.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordperPage
(optional): Number of posts per page (default: 10)page
(optional): Page number (default: 1)customParams
(optional): Additional query parametersExample:
{ "tool": "get_posts", "siteUrl": "https://example.com", "username": "admin", "password": "xxxx xxxx xxxx xxxx", "perPage": 5, "page": 1 }
Updates an existing WordPress post.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordpostId
(required): ID of the post to updatetitle
(optional): New post titlecontent
(optional): New post contentstatus
(optional): New post status ('draft', 'publish', or 'private')Example:
{ "tool": "update_post", "siteUrl": "https://example.com", "username": "admin", "password": "xxxx xxxx xxxx xxxx", "postId": 123, "title": "Updated Title", "content": "Updated content", "status": "publish" }
Deletes a WordPress post.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordpostId
(required): ID of the post to deleteExample:
{ "tool": "delete_post", "siteUrl": "https://example.com", "username": "admin", "password": "xxxx xxxx xxxx xxxx", "postId": 123 }
Retrieves WordPress users.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordperPage
(optional): Number of users per page (default: 10)page
(optional): Page number (default: 1)Retrieves a specific WordPress user by ID.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passworduserId
(required): ID of the user to retrieveRetrieves a WordPress user by login name.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passworduserLogin
(required): Login name of the user to retrieveRetrieves WordPress comments.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordperPage
(optional): Number of comments per page (default: 10)page
(optional): Page number (default: 1)postIdForComment
(optional): Filter comments by post IDCreates a new comment on a post.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordpostIdForComment
(required): ID of the post to comment oncommentContent
(required): Content of the commentcustomData
(optional): Additional comment dataRetrieves WordPress categories.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordperPage
(optional): Number of categories per page (default: 10)page
(optional): Page number (default: 1)Creates a new WordPress category.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordcategoryName
(required): Name of the category to createcustomData
(optional): Additional category data (description, parent, etc.)Makes a custom request to any WordPress REST API endpoint.
Parameters:
siteUrl
(required): Your WordPress site URLusername
(required): WordPress usernamepassword
(required): WordPress application passwordcustomEndpoint
(required): API endpoint pathcustomMethod
(optional): HTTP method ('GET', 'POST', 'PUT', 'DELETE', default: 'GET')customData
(optional): Data for POST/PUT requestscustomParams
(optional): URL parameters for GET requestsExample:
{ "tool": "custom_request", "siteUrl": "https://example.com", "username": "admin", "password": "xxxx xxxx xxxx xxxx", "customEndpoint": "wp/v2/media", "customMethod": "GET", "customParams": { "per_page": 5 } }
All tools return responses in the following format:
{ "success": true, "data": { // WordPress API response data }, "meta": { // Optional metadata (pagination info, etc.) } }
{ "success": false, "error": "Error message here" }
To contribute to the development:
For development mode with automatic recompilation:
npm run dev
This project is licensed under the ISC License.
Contributions are welcome! Please feel free to submit a Pull Request.