
MCP Wordpress
io.github.crunchtoolsPublished by GitHub account crunchtoolsv0.4.1Updated Nov 3, 2026
Secure MCP server for WordPress content management
Overview
Local MCP server that lets an assistant manage a WordPress site's posts, pages, media and comments through the REST API.
- What you can do
- Read site info and verify that the configured credentials work
- List, search, read, create, update, edit, schedule and delete posts, plus categories, tags and revisions
- List, read, create, update, edit and delete pages, and list page revisions
- List, read, upload, update and delete media items and get their public URLs
- List, read, create, update, delete and moderate comments
- When to use it
- Useful for developers who publish about their work and want an assistant to draft, schedule, edit or moderate content on their own WordPress site without copying posts back and forth. The edit tools and optional expected_version checks suit careful, targeted changes to existing content.
- Requirements
- Runs locally over stdio as a Python package (uvx or pip) or a container image. Needs the environment variables WORDPRESS_URL, WORDPRESS_USERNAME and WORDPRESS_APP_PASSWORD, plus an application password created in the WordPress user profile. Optional MCP_UPLOAD_DIR sets the upload directory; network access to the site is required.
Installation
In SourceWeft
- Open MCP Wordpress in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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
Features
- 33 Tools for posts, pages, media, and comments
- Security-focused: Credentials protected, input validation, SSRF prevention
- Developer workflow: Scheduled publishing, revisions, search
- Easy integration: Works with Claude Code and other MCP clients
Installation
With uvx (recommended)
With pip
With Container
SELinux note: Use
:z(lowercase, shared) instead of:Z(uppercase, private). MCP servers run as long-lived stdio processes. With:Z, files copied into the directory after container start won't have the container's private MCS label and will be invisible inside the container. The:zflag sets a sharedcontainer_file_tcontext that all containers and the host can read/write.Tip: Use the same shared directory (
~/.local/share/mcp-uploads-downloads/) across multiple MCP container servers (e.g., mcp-wordpress and mcp-gemini) so generated files are immediately available for upload without copying.
From source
Configuration
Set these environment variables:
Creating an Application Password
- Log in to WordPress admin
- Go to Users → Profile
- Scroll to Application Passwords
- Enter a name (e.g., "MCP Server") and click Add New
- Copy the generated password (shown once)
Usage with Claude Code
Using uvx (recommended)
Using pip
Using Container
Available Tools
Site Tools
Editing Model
Reads return the source the editor saved (context=edit), never the rendered page, so what
an agent reads is safe to write back. Changes go through the edit_* tools: the agent sends
the exact text to replace and its replacement, the server applies it to the current source,
and the post never round-trips through the agent. The post and page update and edit tools
take an optional expected_version (the version get_post or get_page returned); when
it is given, the write is refused if the item changed since. update_* refuses content that
is rendered output. edit_draft edits only draft or pending posts, so a gateway can grant
revision rights without the power to change published posts.
Post Tools
Page Tools
Media Tools
Comment Tools
Examples
Create a Draft Post
Schedule a Post
Upload an Image
Find and Moderate Comments
Security
- Credential Protection: All credentials stored as
SecretStr, never logged - SSRF Prevention: REST API path hardcoded, cannot be overridden
- Input Validation: All inputs validated via Pydantic models
- Rate Limiting: Handles WordPress rate limits gracefully
- TLS Enforcement: All requests use HTTPS with certificate validation
- Size Limits: Response size limited to 10MB to prevent memory issues
- Timeout: All requests timeout after 30 seconds
Development
License
AGPL-3.0-or-later
Credits
Built by crunchtools.com
Source: README.md at commit 671b7a2
Tools
0Version history
1- v0.4.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts