WordPress MCP Server
by gopalcnepal
README.md
# WordPress MCP Server
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.
## Prerequisites
- Python 3.13
- WordPress site with REST API enabled
- UV package installer (recommended)
## Installation
1. Install UV (Universal Virtualenv):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. Clone the repository:
```bash
git clone <repository-url>
cd wordpress
```
3. Create and activate a virtual environment:
```bash
uv venv
source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
```
4. Install dependencies using UV:
```bash
uv add "mcp[cli]" httpx
```
## Configuration
1. Create a `.env` file in the project root:
```bash
WORDPRESS_URL="https://your-wordpress-site.com"
```
## Usage
Using Claude for Desktop:
- First, start the server:
```bash
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 information
- `fetch_posts`: Get recent posts
- `fetch_categories`: List all categories
- `fetch_posts_by_category`: Get posts in a specific category
- `fetch_pages`: Get site pages
- `fetch_post_by_id`: Get a specific post
- `fetch_page_by_id`: Get a specific page
## Error Handling
The server includes robust error handling for:
- Invalid JSON responses
- Network errors
- WordPress API errors
- Invalid URLs
- API authentication issues
TDQS
A3.5/5.0
Scored across 7 tools
Disambiguation5/5
Each tool targets a distinct resource (categories, pages, posts, site info) or filtering method, with no overlap between them.
Naming Consistency5/5
All tools follow a consistent 'fetch_<entity>[_by_<filter>]' pattern, using snake_case throughout.
Tool Count5/5
7 tools is well-scoped for a read-only WordPress interface, covering the main retrieval needs without being excessive.
Completeness2/5
The server is read-only with no create, update, or delete operations, which is a significant gap for a full WordPress management experience.
Maintenance
ActivityInactive
ResponsivenessNo issues