Skip to main content
Glama
README.md
# WordPress MCP Server

An MCP server for day-to-day WordPress maintenance across multiple client sites.

## What it can do

- list configured sites
- inspect site health and pending updates
- list plugins and themes
- update plugins
- update themes
- update WordPress core
- create remote backups via SSH + WP-CLI

## Requirements

- Python 3.11+
- `mcp`
- `pydantic`
- `PyYAML`
- SSH access to each WordPress host
- WP-CLI installed on each remote host

## Install

### Option A — install from the repo

```bash
git clone https://github.com/nextestudios/wordpress-mcp.git
cd wordpress-mcp
uv tool install .
```

### Option B — install with pipx

```bash
git clone https://github.com/nextestudios/wordpress-mcp.git
cd wordpress-mcp
pipx install .
```

Both options install the `wordpress-mcp` command.

## Configuration

Create `~/.hermes/wordpress-mcp.yaml`:

```yaml
sites:
  client-a:
    label: Client A
    ssh:
      host: your-server.example.com
      user: deploy
      port: 22
      key_path: ~/.ssh/id_ed25519
      path: /var/www/client-a/public_html
      wp_bin: wp
      shell: bash
```

You can also point the server at a different file with `WORDPRESS_MCP_CONFIG`.

## Run locally

```bash
wordpress-mcp
```

## Hermes config

Add this to `~/.hermes/config.yaml`:

```yaml
mcp_servers:
  wordpress:
    command: wordpress-mcp
```

Or add it interactively:

```bash
hermes mcp add wordpress --command wordpress-mcp
```

Restart Hermes and the tools will appear with the `mcp_wordpress_*` prefix.

## Suggested workflow

1. `wordpress_list_sites`
2. `wordpress_site_status`
3. `wordpress_site_backup`
4. `wordpress_site_update_plugins`
5. `wordpress_site_update_themes`
6. `wordpress_site_update_core`
7. Re-check `wordpress_site_status`