Skip to main content
Glama
mdsakib-dr

WordPress Self-Hosted MCP Server

by mdsakib-dr

WordPress Self-Hosted MCP Server

A small FastMCP server that lets an AI client create drafts, publish/update posts, upload media, set featured images, and manage categories/tags on a self-hosted WordPress.org site via the REST API + Application Passwords.

Runs over streamable-HTTP (for Docker / Horizon / remote hosting) or stdio.

Tools

Tool

What it does

whoami

Verify credentials; returns the authed WP user. Call this first.

create_post

Create a post as draft or publish (title, HTML content, slug, excerpt, categories, tags, featured image).

update_post

Update any field of a post by ID (e.g. flip a draft to publish).

get_post

Fetch a post's key fields by ID.

list_posts

List posts, filter by status/search.

delete_post

Trash or permanently delete a post.

upload_media_from_url

Upload an image from a URL to the media library; returns the media ID for featured_media.

list_categories / list_tags

Resolve names to IDs.

create_category

Create a category.

Related MCP server: ItchWPMCP

1. Prerequisites

  • WordPress 5.6+ on HTTPS, REST API enabled (visit https://your-site.com/wp-json/ — you should see JSON).

  • An admin/editor/author user.

  • Some security plugins/hosts strip the HTTP Authorization header or block the REST API — allow Basic Auth / Application Passwords if whoami returns 401/403.

2. Create an Application Password

In wp-admin: Users → Profile → Application Passwords → enter a name (e.g. mcp) → Add New. Copy the generated password (looks like xxxx xxxx xxxx xxxx xxxx xxxx). This is NOT your login password.

3. Configure

Copy .env.example to .env and fill in:

WP_BASE_URL=https://your-site.com     # no trailing slash
WP_USERNAME=your_wp_username          # login name, not email
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx

4. Run with Docker

# build + run via compose (reads .env)
docker compose up -d --build

# OR plain docker
docker build -t wp-selfhosted-mcp .
docker run -d --name wp-mcp -p 8000:8000 --env-file .env wp-selfhosted-mcp

The MCP endpoint is served at: http://<host>:8000/mcp/

Quick health check (container logs should show "Uvicorn running"):

docker logs wp-mcp

5. Run locally without Docker

pip install -r requirements.txt
# HTTP (default):
python server.py
# or stdio (for a desktop client that launches the process):
MCP_TRANSPORT=stdio python server.py

6. Deploy on a FastMCP host (e.g. Horizon)

This is a standard FastMCP app exposing mcp in server.py.

  • Entrypoint / start command: python server.py

  • The app listens on $PORT (defaults to 8000) and $HOST 0.0.0.0.

  • Required env vars: WP_BASE_URL, WP_USERNAME, WP_APP_PASSWORD.

  • Keep MCP_TRANSPORT=http.

  • Public MCP URL will be https://<your-deployment-domain>/mcp/.

FASTMCP_CHECK_FOR_UPDATES=off is set in code so startup never blocks on an outbound PyPI call in locked-down networks.

7. Connect it to Claude

Add it as a custom/remote MCP connector pointing at your deployed URL:

https://<your-deployment-domain>/mcp/

In the Claude desktop/Cowork connector settings, add a custom MCP server with that URL. Once connected, tools like create_post become available and you can say "publish the WooCommerce post as a draft" and it will run create_post with status="draft".

Security notes

  • Never commit .env; it's gitignored/dockerignored.

  • The Application Password can be revoked anytime from the same wp-admin screen.

  • Prefer an Editor/Author account over a full Admin if you only need publishing.

  • Always serve WordPress over HTTPS so the Basic Auth header isn't sent in clear text.

F
license - not found
-
quality - not tested
-
maintenance - not tested

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mdsakib-dr/wordpress-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server