Skip to content
Conduit

mcp server

wordpress-poke-mcp

An MCP Server to manage your WordPress website using Poke.com's AI assistant.

suyogyashukla/wordpress-poke-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 23, 2026

WordPress MCP Server for Poke.com's AI Assistant.

An MCP (Model Context Protocol) server that connects AI agents to your WordPress site, enabling natural language management of posts, pages, comments, media, and settings.

Built for use with Poke.com and other MCP-compatible AI clients.

Features

34 tools for complete WordPress management:

  • Posts - Create, read, update, delete, and search blog posts
  • Pages - Manage static pages with hierarchy support
  • Comments - View, moderate (approve/spam/trash), reply, and bulk actions
  • Media - Browse library, upload from URL, update metadata, delete
  • Settings - Site configuration, categories, tags, and user management

Prerequisites

  • Node.js 20+
  • A self-hosted WordPress site or a WordPress.com site on Business/eCommerce plan. (WordPress 5.6+ for Application Passwords)
  • Admin or Editor access to your WordPress site

Quick Start

1. Create a WordPress Application Password

  1. Log in to your WordPress admin dashboard
  2. Go to Users → Profile
  3. Scroll to Application Passwords
  4. Enter a name (e.g., MCP Server) and click Add New Application Password
  5. Copy the password immediately - it won't be shown again
    • Format: xxxx xxxx xxxx xxxx xxxx xxxx

2. Configure Environment Variables

Copy .env.example to .env and set your values:

cp .env.example .env
VariableDescriptionExample
WORDPRESS_SITE_URLYour WordPress site URLhttps://example.com
WORDPRESS_USERNAMEYour WordPress usernameadmin
WORDPRESS_APP_PASSWORDApplication password (with spaces)xxxx xxxx xxxx xxxx xxxx xxxx
API_KEYSecret key to protect MCP endpointsyour-secret-key

Generate a secure API key:

openssl rand -hex 32

3. Install and Run

# Install dependencies
npm install

# Development
npm run dev

# Production
npm run build && npm start

4. Verify

Visit http://localhost:3000/health to confirm the server is running:

{"status":"ok","server":"wordpress-mcp","version":"1.0.0","hasCredentials":true,"apiKeyProtected":true}

Deployment

This server can be deployed to any Node.js hosting platform. Below are instructions for common options.

Environment Variables (All Platforms)

Set these environment variables in your hosting platform's dashboard:

VariableRequiredDescription
WORDPRESS_SITE_URLYesYour WordPress site URL
WORDPRESS_USERNAMEYesWordPress username
WORDPRESS_APP_PASSWORDYesWordPress application password
API_KEYYesSecret key to protect endpoints
PORTNoServer port (default: 3000)
NODE_ENVNoSet to production for production

Render

  1. Push code to a Git repository (GitHub, GitLab, etc.)
  2. Create a new Web Service on Render
  3. Connect your repository
  4. Configure build settings:
    • Build Command: npm install && npm run build
    • Start Command: npm start
  5. Add environment variables in the dashboard
  6. Deploy

Railway

  1. Connect your repository to Railway
  2. Railway auto-detects Node.js and sets build/start commands
  3. Add environment variables in the dashboard
  4. Deploy

Fly.io

  1. Install the Fly CLI
  2. Run fly launch and follow prompts
  3. Set secrets:
    fly secrets set WORDPRESS_SITE_URL=https://example.com
    fly secrets set WORDPRESS_USERNAME=admin
    fly secrets set WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx xxxx xxxx"
    fly secrets set API_KEY=your-secret-key
    
  4. Deploy with fly deploy

Heroku

  1. Create a new app on Heroku
  2. Connect your repository or use Heroku CLI
  3. Add environment variables in Settings → Config Vars
  4. Deploy

Self-Hosted / VPS

  1. Clone the repository to your server
  2. Install dependencies: npm install
  3. Build: npm run build
  4. Set environment variables
  5. Run with a process manager like PM2:
    pm2 start dist/index.js --name wordpress-mcp
    
  6. Configure a reverse proxy (nginx/caddy) with HTTPS

Connecting to Poke.com

  1. Go to Settings → Connections in Poke.com
  2. Click New Integration
  3. Configure:
    • Name: WordPress (or any name)
    • Server URL: https://your-server.com/sse
    • API Key: Your API_KEY value
  4. Click Create Integration

Test by asking Poke: "Get my WordPress site info"

Available Tools

Posts (6 tools)

ToolDescription
list_postsList posts with filters (status, category, search)
get_postGet post by ID
get_post_by_slugGet post by URL slug
create_postCreate new post
update_postUpdate existing post
delete_postDelete or trash post

Pages (5 tools)

ToolDescription
list_pagesList pages with hierarchy
get_pageGet page by ID
create_pageCreate new page
update_pageUpdate existing page
delete_pageDelete or trash page

Comments (6 tools)

ToolDescription
list_commentsList comments with filters
get_commentGet comment by ID
moderate_commentApprove, spam, or trash comment
create_commentReply to post or comment
delete_commentDelete comment
bulk_moderate_commentsModerate multiple comments

Media (6 tools)

ToolDescription
list_mediaList media library items
list_imagesList only images
get_mediaGet media item details
upload_media_from_urlUpload file from URL
update_mediaUpdate title, caption, alt text
delete_mediaDelete media item

Settings & Taxonomies (11 tools)

ToolDescription
get_site_infoGet basic site information
get_site_settingsGet detailed site settings
update_site_settingsUpdate site title, tagline, timezone, etc.
list_categoriesList all categories
create_categoryCreate new category
delete_categoryDelete category
list_tagsList all tags
create_tagCreate new tag
delete_tagDelete tag
get_current_userGet authenticated user info
list_usersList all users

API Endpoints

EndpointMethodDescription
/GETServer information
/healthGETHealth check
/sseGETMCP SSE endpoint
/messagesPOSTSSE message handler

Security

  • API Key Protection: All MCP endpoints require authentication via the API_KEY environment variable
  • Application Passwords: Uses WordPress application passwords instead of your main password
  • HTTPS Required: Always use HTTPS in production for both your WordPress site and MCP server
  • Environment Variables: All secrets are stored as environment variables, never in code
  • Revocation: Revoke WordPress app passwords from your profile anytime; rotate API_KEY if compromised

Authentication Methods

The server accepts API keys via:

  • X-API-Key header
  • Authorization: Bearer <token> header
  • Authorization header (without Bearer prefix)

Troubleshooting

"rest_cannot_create" errors

  • Ensure your WordPress user has Editor or Admin role
  • Verify the REST API is enabled on your site

"rest_forbidden" errors

  • Check the Application Password is correct (include spaces)
  • Verify the username is correct

Connection refused

  • Confirm WORDPRESS_SITE_URL is correct and publicly accessible
  • Ensure your site has HTTPS enabled

MCP client can't connect

  • Verify the server is running and accessible
  • Check that API_KEY matches between server and client
  • Confirm you're using the /sse endpoint

License

GPL 3.0

↑↓ navigate openesc close