rnaga avatar

WordPress MCP Server

rnaga/wp-mcp

Gives Claude direct access to your WordPress database through the Model Context Protocol, so you can draft posts, manage users, moderate comments, and update settings without touching wp-admin. Built on wp-node, it exposes CRUD operations for posts, comments, users, terms, metadata, and site options. Runs as a local STDIO server for direct database connections or as an HTTP server with a CLI proxy for remote access. The server respects WordPress roles and capabilities, so an admin sees every tool while a subscriber gets limited access. Useful when you want to batch-create content, audit user permissions, or automate editorial workflows through conversation instead of clicking through the dashboard.

tools
20
auth
Secret needed
transport
STDIO
env vars
13
last updated
Jul 22, 2026

Tools

20 tools

Public tool metadata for what this MCP can expose to an agent.

wp_list_postsList WordPress posts with optional filters. Returns post ID, title, status, date, and categories. Use to browse existing content or find posts by keyword.3 params

List WordPress posts with optional filters. Returns post ID, title, status, date, and categories. Use to browse existing content or find posts by keyword.

Parameters* required
per_pagenumber
Number of posts to return (default 10, max 100)
searchstring
Search posts by keyword
statusstring
Filter by status: publish, draft, pending, private, trash
wp_get_postGet a single WordPress post with full content, metadata, categories, and tags. Use to inspect post content before editing.1 params

Get a single WordPress post with full content, metadata, categories, and tags. Use to inspect post content before editing.

Parameters* required
idnumber
Post ID
wp_create_postCreate a new WordPress post. Provide title and content (HTML). Optionally set status (draft/publish), categories, and tags.5 params

Create a new WordPress post. Provide title and content (HTML). Optionally set status (draft/publish), categories, and tags.

Parameters* required
categoriesarray
Category IDs
contentstring
Post content (HTML)
statusstring
Post status: draft (default), publish, pending, private
tagsarray
Tag IDs
titlestring
Post title
wp_update_postUpdate an existing WordPress post. Change title, content, status, categories, or tags.6 params

Update an existing WordPress post. Change title, content, status, categories, or tags.

Parameters* required
categoriesarray
New category IDs (optional)
contentstring
New content HTML (optional)
idnumber
Post ID to update
statusstring
New status (optional)
tagsarray
New tag IDs (optional)
titlestring
New title (optional)
wp_delete_postDelete a WordPress post. Moves to trash by default.1 params

Delete a WordPress post. Moves to trash by default.

Parameters* required
idnumber
Post ID to delete
wp_list_pagesList WordPress pages. Returns page ID, title, status, and parent page. Use to browse site page structure.2 params

List WordPress pages. Returns page ID, title, status, and parent page. Use to browse site page structure.

Parameters* required
per_pagenumber
Number of pages to return (default 10, max 100)
statusstring
Filter by status: publish, draft, pending, private
wp_get_pageGet a single WordPress page with full content and metadata.1 params

Get a single WordPress page with full content and metadata.

Parameters* required
idnumber
Page ID
wp_create_pageCreate a new WordPress page. Provide title and content (HTML). Optionally set parent page for hierarchy.4 params

Create a new WordPress page. Provide title and content (HTML). Optionally set parent page for hierarchy.

Parameters* required
contentstring
Page content (HTML)
parentnumber
Parent page ID for hierarchical pages
statusstring
Page status: draft (default), publish
titlestring
Page title
wp_update_pageUpdate an existing WordPress page.4 params

Update an existing WordPress page.

Parameters* required
contentstring
New content HTML (optional)
idnumber
Page ID to update
statusstring
New status (optional)
titlestring
New title (optional)
wp_delete_pageDelete a WordPress page.1 params

Delete a WordPress page.

Parameters* required
idnumber
Page ID to delete
wp_list_mediaList media files in the WordPress library. Returns file URLs, types, and metadata.2 params

List media files in the WordPress library. Returns file URLs, types, and metadata.

Parameters* required
media_typestring
Filter by type: image, video, audio, application
per_pagenumber
Number of items to return (default 10)
wp_delete_mediaPermanently delete a media file from WordPress.1 params

Permanently delete a media file from WordPress.

Parameters* required
idnumber
Media ID to delete
wp_list_commentsList comments on WordPress posts. Filter by post ID.2 params

List comments on WordPress posts. Filter by post ID.

Parameters* required
per_pagenumber
Number of comments to return
postnumber
Filter by post ID
wp_create_commentCreate a new comment on a WordPress post.4 params

Create a new comment on a WordPress post.

Parameters* required
author_emailstring
Comment author email
author_namestring
Comment author name
contentstring
Comment content
postnumber
Post ID to comment on
wp_update_commentUpdate or moderate a comment. Change content or approval status.3 params

Update or moderate a comment. Change content or approval status.

Parameters* required
contentstring
New comment content (optional)
idnumber
Comment ID
statusstring
New status: approved, hold, spam, trash
wp_delete_commentPermanently delete a comment.1 params

Permanently delete a comment.

Parameters* required
idnumber
Comment ID to delete
wp_list_categoriesList all WordPress categories with post counts.2 params

List all WordPress categories with post counts.

Parameters* required
per_pagenumber
Number of categories to return (default 100)
searchstring
Filter categories by search term
wp_list_tagsList all WordPress tags with post counts.2 params

List all WordPress tags with post counts.

Parameters* required
per_pagenumber
Number of tags to return (default 100)
searchstring
Filter tags by search term
wp_list_usersList WordPress users with their roles.2 params

List WordPress users with their roles.

Parameters* required
per_pagenumber
Number of users to return (default 10)
searchstring
Filter users by search term
wp_get_site_infoGet WordPress site information: name, description, URL, timezone, and available features.1 params

Get WordPress site information: name, description, URL, timezone, and available features.

Parameters* required
_fieldsstring
Comma-separated list of fields to include in the response (e.g. "name,description,url")

Sponsors

Configuration

LOCAL_USERNAME*

WordPress username to assume for capability checks

WP_DB_HOST*

WordPress database host

WP_DB_PORTdefault: 3306

WordPress database port

WP_DB_NAME*

WordPress database name

WP_DB_USER*

WordPress database user

WP_DB_PASSWORD*secret

WordPress database password

LOCAL_MULTISITEdefault: false

Enable WordPress multisite mode

LOCAL_DEFAULT_BLOG_IDdefault: 1

Default blog ID for multisite

LOCAL_DEFAULT_SITE_IDdefault: 1

Default site ID for multisite

LOCAL_SSL_ENABLEDdefault: false

Enable SSL for database connection

LOCAL_SSL_CA_FILEPATH

Path to SSL CA certificate file

LOCAL_SSL_CERT_FILEPATH

Path to SSL certificate file

LOCAL_SSL_KEY_FILEPATH

Path to SSL key file

Readme

wp-mcp

@rnaga/wp-mcp is a Model Context Protocol (MCP) server for WordPress that turns your site into an AI-operable surface. By exposing WordPress CRUD primitives to clients like Claude Desktop, an assistant can draft a post on demand, refine it collaboratively, and publish it straight into your database—no trip through wp-admin required.

Here are a few common scenarios this unlocks:

  • Draft, revise, and publish posts directly from MCP clients such as Claude Desktop.
  • Inspect WordPress users, their roles, and capabilities to audit site permissions or generate access reports.

Built on top of @rnaga/wp-node, the server ships with a curated MCP toolset covering posts, users, comments, terms, revisions, metadata, options, and site settings. The MCP server can manage the following database tables/resources:


View the full README on GitHub

Details

Repository
github.com/rnaga/wp-mcp
Package
@rnaga/wp-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active