WordPress MCP Server
Enables AI assistants to manage WordPress content (create, retrieve, update posts) via the WordPress REST API with secure authentication.
README
WordPress MCP Server
A 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 WordPress content programmatically, including creating, retrieving, and updating posts.
Features
- Create new WordPress posts with customizable titles, content, and status
- Retrieve WordPress posts with pagination support
- Update existing posts with new content or status
- Secure authentication using WordPress application passwords
- Error handling and detailed response messages
Prerequisites
- Node.js v18 or higher
- A WordPress site with REST API enabled
- WordPress application password for authentication
Installation
- Clone this repository:
git clone https://github.com/stefans71/wordpress-mcp-server.git
cd wordpress-server
- Install dependencies:
npm install
- Build the server:
npm run build
WordPress Configuration
Before using the server, you need to set up your WordPress site:
- Ensure your WordPress site has REST API enabled (enabled by default in WordPress 4.7+)
- Create an application password:
- Log in to your WordPress admin panel
- Go to Users → Profile
- Scroll down to "Application Passwords"
- Enter a name for the application (e.g., "MCP Server")
- Click "Add New Application Password"
- Copy the generated password (you won't be able to see it again)
MCP Configuration
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-server/build/index.js"]
}
}
}
Available Tools
1. create_post
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"
}
2. get_posts
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)
Example:
{
"tool": "get_posts",
"siteUrl": "https://example.com",
"username": "admin",
"password": "xxxx xxxx xxxx xxxx",
"perPage": 5,
"page": 1
}
3. update_post
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"
}
Response Format
All tools return responses in the following format:
Success Response
{
"success": true,
"data": {
// WordPress API response data
}
}
Error Response
{
"success": false,
"error": "Error message here"
}
Error Handling
The server handles various types of errors:
- Invalid request format
- Missing required parameters
- WordPress API errors
- Authentication failures
- Network issues
Each error response includes a descriptive message to help diagnose the issue.
Security Considerations
- Always use HTTPS URLs for your WordPress site
- Use application passwords instead of your main WordPress password
- Keep your application passwords secure and don't share them
- Consider using WordPress roles and capabilities to limit access
- Regularly rotate application passwords
Development
To contribute to the development:
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests (when available)
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. By contributing to this project, you agree to abide by its terms.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.