home / mcp / wordpress mcp server

WordPress MCP Server

Provides an MCP-based bridge to WordPress REST API for creating, reading, updating, and publishing posts and managing site content.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "gaupoit-wordpress-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/wordpress-mcp",
        "wordpress-mcp"
      ],
      "env": {
        "WORDPRESS_URL": "https://your-site.com",
        "WORDPRESS_USER": "your-username",
        "WORDPRESS_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}

You can manage your WordPress site with an MCP server that connects to WordPress via the REST API. This lets you create, read, update, and search posts and sites content through natural conversations with your AI assistant, simplifying content workflows and site administration.

How to use

With the WordPress MCP Server you interact through an MCP client to perform common tasks such as creating posts, updating content, listing posts, and checking plugins. You can draft, publish, and audit content without leaving your editor or chat interface. Typical workflows include creating a draft post, adding content, reviewing draft posts, and publishing when ready.

Practical usage patterns you can follow include: creating drafts for new articles, updating post content or status, listing posts by date or status, and retrieving information about the site and installed plugins. Use simple, natural requests to perform these actions and your MCP client will translate them into WordPress REST API calls behind the scenes.

How to install

# Prerequisites
- Command line access
- Python 3.10+ or compatible runtime
- Git
- Internet access

# 1. Install the MCP server locally
git clone https://github.com/gaupoit/wordpress-mcp.git
cd wordpress-mcp
uv sync

# 2. Create a WordPress Application Password (in WordPress, not here)
# - Go to WordPress Admin β†’ Users β†’ Profile
# - Open Application Passwords, add a new one, and copy the generated password

# 3. Configure the MCP client to talk to WordPress (example for Claude Code)
# Place this in ~/.claude.json as shown in the configuration block
{
  "mcpServers": {
    "wordpress": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/wordpress-mcp", "wordpress-mcp"],
      "env": {
        "WORDPRESS_URL": "https://your-site.com",
        "WORDPRESS_USER": "your-username",
        "WORDPRESS_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}
```

# 4. Start the MCP client and verify
# Quit and restart your MCP client if needed, then run the client and verify the server is listed
"}]}]},{

Configuration and security notes

This MCP server uses WordPress REST API authentication via Application Passwords. Keep the application password secret and only use it in trusted environments. Ensure the WordPress user has appropriate permissions to access and manage content through the REST API.

Environment variables

WORDPRESS_URL=https://your-site.com
WORDPRESS_USER=your-username
WORDPRESS_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx

Troubleshooting

If authentication fails, verify the Application Password is correct and the user has REST API access. If the connection is refused, ensure the URL uses https:// and that you are not behind a firewall. If the MCP client does not detect the server, restart the client or run the startup command manually to check for errors.

Examples and workflows

Blog publishing workflow: create a draft post, review, then publish. Content audit workflow: list drafts, search posts by keywords, check active plugins.

Notes

The WordPress MCP Server supports full CRUD on posts, content management tasks like listing pages and media, and plugin queries. It emphasizes a secure, authorizable workflow using WordPress Application Passwords.

Available tools

wp_site_info

Get site name, URL, and timezone

wp_get_posts

List posts with optional filters for status or keyword

wp_get_post

Get a single post with full content

wp_get_pages

List all pages on the site

wp_get_media

List items in the media library

wp_get_plugins

List installed plugins

wp_create_post

Create a new post (draft or published)

wp_update_post

Update post properties like title, content, status, or excerpt

wp_delete_post

Move a post to trash or permanently delete