A Model Context Protocol (MCP) server for interacting with WordPress sites. This server provides tools to fetch posts, pages, categories, and site information from any WordPress installation with REST API enabled.
- Python 3.13
- WordPress site with REST API enabled
- UV package installer (recommended)
- Install UV (Universal Virtualenv):
curl -LsSf https://astral.sh/uv/install.sh | sh
- Clone the repository:
git clone <repository-url>
cd wordpress
- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
- Install dependencies using UV:
uv add "mcp[cli]" httpx
- Create a
.env
file in the project root:
WORDPRESS_URL="https://your-wordpress-site.com"
Using Claude for Desktop:
- First, start the server:
uv run main.py
- In Claude for Desktop, go to Settings > Developer
- Click "Edit Config"
- Alternative Edit config approach using VSCode in Mac/Windows:
# For Mac Users code ~/Library/Application\ Support/Claude/claude_desktop_config.json # For Windows Users code $env:AppData\Claude\claude_desktop_config.json
- Add the file to config:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/wordpress",
"run",
"main.py"
]
}
}
}
The server provides these testable tools:
fetch_wordpress_info
: Get basic site informationfetch_posts
: Get recent postsfetch_categories
: List all categoriesfetch_posts_by_category
: Get posts in a specific categoryfetch_pages
: Get site pagesfetch_post_by_id
: Get a specific postfetch_page_by_id
: Get a specific page
The server includes robust error handling for:
- Invalid JSON responses
- Network errors
- WordPress API errors
- Invalid URLs
- API authentication issues