crunchtools avatar

MCP Wordpress

crunchtools/mcp-wordpress

This connects Claude directly to your WordPress site via the REST API, exposing 30 tools across posts, pages, media, and comments. You can create drafts, schedule publishing, upload images, moderate comments, and search content without leaving your editor. It runs locally over stdio with credential validation, SSRF protection, and input sanitization baked in. Available as a Python package or container, with automated CVE monitoring through GitHub Actions. Useful if you're publishing technical articles or managing WordPress content programmatically and want Claude to handle the REST API calls instead of writing curl commands or switching to wp-admin.

GitHub stars
1
tools
20
transport
STDIO
last updated
Mar 2, 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

Readme

MCP WordPress CrunchTools

A secure MCP (Model Context Protocol) server for WordPress content management. Designed for developers publishing about their work.

Overview

This MCP server is designed to be:

  • Secure by default - Input validation, credential protection, and SSRF prevention
  • No third-party services - Runs locally via stdio, your credentials never leave your machine
  • Cross-platform - Works on Linux, macOS, and Windows
  • Automatically updated - GitHub Actions monitor for CVEs and update dependencies
  • Containerized - Available at quay.io/crunchtools/mcp-wordpress

Naming Convention

ComponentName
GitHub repocrunchtools/mcp-wordpress
Containerquay.io/crunchtools/mcp-wordpress
Python package (PyPI)mcp-wordpress-crunchtools
CLI commandmcp-wordpress-crunchtools
Module importmcp_wordpress_crunchtools

Features


View the full README on GitHub

Details

Repository
github.com/crunchtools/mcp-wordpress
Package
mcp-wordpress-crunchtools
Transport
STDIO
Registry
MCP registry, active

More from crunchtools