Get your 145-tool WordPress powerhouse running in minutes! 🔥
- Quick Start (Inspector UI)
- Claude Desktop Setup
- WordPress Configuration
- Multi-Site Setup
- Environment Variables
- Testing & Verification
- Advanced Configuration
- Troubleshooting
Best for: Testing, development, and exploring all 145 tools
Create wp-sites.json in the project root:
{
"default_test": {
"URL": "https://your-wordpress-site.com",
"USER": "admin",
"PASS": "your-application-password",
"authType": "basic"
}
}- Log into WordPress Admin
- Navigate to Users → Profile
- Scroll to "Application Passwords" section
- Enter name:
"Claude MCP" - Click "Add New"
- Copy the generated password
- Format:
xxxx xxxx xxxx xxxx xxxx xxxx - Use as-is with spaces
- Format:
# From project root
pnpm inspector
# Inspector opens at http://localhost:5173What happens automatically:
- ✅ Project builds
- ✅ Inspector UI launches
- ✅
WP_SITES_PATHpre-filled - ✅ Ready to connect!
- Click "Connect" in Inspector
- Go to "Tools" tab
- You should see all 145 tools listed
- Try:
claudeus_wp_discover_endpoints{ "site": "default_test" } - Success! You'll see available WordPress endpoints
Best for: Production use with AI-powered workflows
- ✅ Node.js ≥ 22.0.0
- ✅ Claude Desktop installed (Mac | Windows)
- ✅ WordPress site with REST API enabled
- ✅ Application password generated
# Install globally
npm install -g claudeus-wp-mcp
# Or use npx (no installation needed)
# Configure in claude_desktop_config.json with npx commandCreate your sites configuration file:
# Create directory for config
mkdir -p ~/.claudeus-mcp
# Create wp-sites.json
cat > ~/.claudeus-mcp/wp-sites.json << 'EOF'
{
"default_test": {
"URL": "https://your-site.com",
"USER": "admin",
"PASS": "xxxx xxxx xxxx xxxx xxxx xxxx",
"authType": "basic"
}
}
EOF
# Secure the file
chmod 600 ~/.claudeus-mcp/wp-sites.jsonFind config file:
| OS | Location |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Or open via Claude Desktop:
- Claude menu → Settings → Developer → Edit Config
Add configuration:
{
"mcpServers": {
"claudeus-wp-mcp": {
"command": "npx",
"args": [
"-y",
"claudeus-wp-mcp"
],
"env": {
"WP_SITES_PATH": "/Users/YOUR_USERNAME/.claudeus-mcp/wp-sites.json"
}
}
}
}- Replace
/Users/YOUR_USERNAME/with your actual home directory - Use absolute paths (not
~or relative paths) - On Windows, use forward slashes:
C:/Users/...or escape backslashes:C:\\Users\\...
# Clone repository
git clone https://github.com/deus-h/claudeus-wp-mcp
cd claudeus-wp-mcp
# Install dependencies
pnpm install
# Build project
pnpm build# Copy example
cp wp-sites.json.example wp-sites.json
# Edit with your credentials
nano wp-sites.json
# Secure the file
chmod 600 wp-sites.json{
"mcpServers": {
"claudeus-wordpress": {
"command": "node",
"args": [
"/absolute/path/to/claudeus-wp-mcp/dist/index.js"
],
"env": {
"WP_SITES_PATH": "/absolute/path/to/claudeus-wp-mcp/wp-sites.json"
}
}
}
}-
Completely quit Claude Desktop
- macOS:
Cmd + Q - Windows: Right-click taskbar → Quit
- macOS:
-
Restart Claude Desktop
-
Look for hammer icon (🔨) in chat input
-
Test with Claude:
"Can you show me what WordPress tools are available?" -
Success indicators:
- Hammer icon appears
- Claude lists tools
- Can execute WordPress operations
WordPress REST API is enabled by default since version 4.7. Verify it's working:
# Test REST API (replace with your URL)
curl https://your-site.com/wp-json/
# Should return JSON with routesRequirements:
- WordPress 5.6+
- HTTPS enabled (required for application passwords)
- User with appropriate capabilities
Creating Application Password:
- Log into WordPress Admin
- Users → Profile
- Scroll to "Application Passwords"
- Enter name:
Claude MCP(or any identifier) - Click "Add New"
- Copy password: Includes spaces - use as-is!
Security Best Practices:
- ✅ One password per application
- ✅ Use descriptive names
- ✅ Revoke when not needed
- ✅ Never commit to version control
- ✅ Use different passwords per environment
Ensure your WordPress user has required capabilities:
| Operation | Required Capability |
|---|---|
| Manage Posts | edit_posts, publish_posts, delete_posts |
| Manage Pages | edit_pages, publish_pages, delete_pages |
| Manage Media | upload_files, delete_files |
| Manage Users | edit_users, create_users, delete_users |
| Manage Plugins | install_plugins, activate_plugins, delete_plugins |
| Manage Themes | switch_themes, edit_themes |
| Site Settings | manage_options |
Administrator role has all capabilities - recommended for full access.
Manage multiple WordPress sites with a single configuration:
{
"production": {
"URL": "https://live-site.com",
"USER": "admin",
"PASS": "prod-password-here",
"authType": "basic"
},
"staging": {
"URL": "https://staging-site.com",
"USER": "admin",
"PASS": "stage-password-here",
"authType": "basic"
},
"development": {
"URL": "https://dev-site.local",
"USER": "admin",
"PASS": "dev-password-here",
"authType": "basic"
}
}{
"client1_prod": {
"URL": "https://client1-live.com",
"USER": "admin",
"PASS": "xxxx xxxx xxxx xxxx",
"authType": "basic"
},
"client1_stage": {
"URL": "https://client1-staging.com",
"USER": "admin",
"PASS": "yyyy yyyy yyyy yyyy",
"authType": "basic"
},
"client2_prod": {
"URL": "https://client2-live.com",
"USER": "admin",
"PASS": "zzzz zzzz zzzz zzzz",
"authType": "basic"
}
}In Inspector UI:
{
"site": "production" // or "staging", "client1_prod", etc.
}With Claude:
"Create a blog post on the staging site about..."
"List all posts from client1_prod"
"Check health status for production"
| Variable | Description | Example |
|---|---|---|
WP_SITES_PATH |
Path to wp-sites.json | /path/to/wp-sites.json |
| Variable | Description | Default |
|---|---|---|
NODE_ENV |
Environment mode | production |
LOG_LEVEL |
Logging verbosity | info |
DEBUG |
Enable debug mode | false |
macOS/Linux:
# Temporary (current session)
export WP_SITES_PATH="/path/to/wp-sites.json"
# Permanent (add to ~/.zshrc or ~/.bashrc)
echo 'export WP_SITES_PATH="/path/to/wp-sites.json"' >> ~/.zshrc
source ~/.zshrcWindows (PowerShell):
# Temporary (current session)
$env:WP_SITES_PATH = "C:\path\to\wp-sites.json"
# Permanent (System Environment Variables)
[System.Environment]::SetEnvironmentVariable("WP_SITES_PATH", "C:\path\to\wp-sites.json", "User")# Test with Inspector
pnpm inspector
# Or test REST API directly
curl https://your-site.com/wp-json/wp/v2/In Inspector, run:
Tool: claudeus_wp_health__test_auth
Arguments: { "site": "default_test" }Expected response:
{
"status": "good",
"label": "Authorization header test",
"description": "The REST API can use the Authorization header..."
}Run:
Tool: claudeus_wp_discover_endpoints
Arguments: { "site": "default_test" }Expected: JSON with all available WordPress endpoints
Run:
Tool: claudeus_wp_content__get_posts
Arguments: {
"site": "default_test",
"filters": {
"per_page": 5
}
}Expected: List of posts with pagination metadata
Run:
Tool: claudeus_wp_health__run_all_tests
Arguments: { "site": "default_test" }Expected: Comprehensive health report
Create test-connection.sh:
#!/bin/bash
echo "🧪 Testing Claudeus WordPress MCP..."
# Test 1: REST API Availability
echo "1️⃣ Testing REST API..."
curl -s https://your-site.com/wp-json/ > /dev/null && echo "✅ REST API accessible" || echo "❌ REST API unreachable"
# Test 2: Inspector Launch
echo "2️⃣ Testing Inspector..."
pnpm inspector &
sleep 5
curl -s http://localhost:5173 > /dev/null && echo "✅ Inspector running" || echo "❌ Inspector failed"
# Test 3: Build Status
echo "3️⃣ Testing Build..."
[ -f "dist/index.js" ] && echo "✅ Build complete" || echo "❌ Build missing"
echo "✅ Tests complete!"Restrict dangerous operations per site:
{
"production": {
"URL": "https://live-site.com",
"USER": "admin",
"PASS": "xxxx xxxx xxxx xxxx",
"authType": "basic",
"capabilities": {
"content": {
"claudeus_wp_content__delete_post": false,
"claudeus_wp_content__delete_page": false,
"claudeus_wp_content__delete_block": false
},
"media": {
"claudeus_wp_media__delete": false
},
"users": {
"claudeus_wp_users__delete_user": false
},
"plugins": {
"claudeus_wp_plugins__delete": false
},
"themes": {
"claudeus_wp_theme__activate": false
}
}
}
}Effect: Production site becomes read/write only - no destructive operations.
For sites using JWT authentication:
{
"jwt_site": {
"URL": "https://jwt-site.com",
"USER": "admin",
"PASS": "your-jwt-token",
"authType": "jwt"
}
}JWT Token Setup:
- Install JWT Authentication plugin
- Configure plugin
- Generate token
- Use token as
PASSvalue
Add custom headers for specific sites:
{
"custom_site": {
"URL": "https://custom-site.com",
"USER": "admin",
"PASS": "xxxx xxxx xxxx xxxx",
"authType": "basic",
"headers": {
"X-Custom-Header": "custom-value",
"X-API-Version": "v2"
}
}
}Symptoms:
- Inspector won't connect
- Claude Desktop shows no tools
Solutions:
-
Verify wp-sites.json path is absolute
# Check file exists ls -la /absolute/path/to/wp-sites.json -
Test WordPress REST API
curl https://your-site.com/wp-json/
-
Verify Application Password
- Check for typos
- Ensure spaces are included
- Try generating new password
-
Check HTTPS
- Application Passwords require HTTPS
- Test: Visit site with https://
Symptoms:
401 Unauthorizederrors- "Authorization header test failed"
Solutions:
-
Regenerate Application Password
- WordPress Admin → Users → Profile
- Delete old password
- Create new one
-
Check User Capabilities
- Ensure user has required permissions
- Try with Administrator role
-
Verify REST API Authentication
curl -u admin:xxxx-xxxx-xxxx-xxxx \ https://your-site.com/wp-json/wp/v2/users/me
Symptoms:
- No hammer icon
- Tools list empty
Solutions:
-
Verify Config Syntax
# Validate JSON cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python -m json.tool
-
Check Paths Are Absolute
// ❌ Wrong "WP_SITES_PATH": "~/wp-sites.json" // ✅ Correct "WP_SITES_PATH": "/Users/yourname/wp-sites.json"
-
Completely Restart Claude
- Not just reload - full quit and restart
- macOS:
Cmd + Qthen relaunch
-
Check Claude Logs
# macOS tail -f ~/Library/Logs/Claude/mcp*.log # Look for errors or connection issues
Symptoms:
- Some tools return errors
- Others work fine
Solutions:
-
Check Tool-Specific Requirements
- FSE tools require WordPress 5.9+
- Astra tools require Astra theme installed
- WooCommerce tools require WooCommerce plugin
-
Verify Plugin/Theme Active
Tool: claudeus_wp_plugins__list Tool: claudeus_wp_theme__list
-
Check User Capabilities
- Different tools require different permissions
- Administrator role recommended
Symptoms:
- Slow responses
- Timeout errors
- Bulk operations fail
Solutions:
-
Use Pagination
{ "filters": { "per_page": 10, // Smaller batches "page": 1 } } -
Check WordPress Performance
Tool: claudeus_wp_health__run_all_tests -
Verify Server Resources
- Check WordPress hosting limits
- Monitor PHP memory limit
- Check WordPress debug log
Enable debug logging:
# Set environment variable
export DEBUG=claudeus:*
# Run with debug enabled
WP_SITES_PATH=/path/to/wp-sites.json \
DEBUG=claudeus:* \
node dist/index.jsBefore Reporting Issues:
- ✅ Check this guide
- ✅ Review SECURITY.md
- ✅ Test with Inspector UI
- ✅ Check Claude Desktop logs
- ✅ Verify WordPress REST API works
Team Members:
- 📧 Email: deus.h@outlook.com
- 🔧 Internal: Slack #claudeus-mcp channel
# Install
npm install -g claudeus-wp-mcp
# Launch Inspector
pnpm inspector
# Build project
pnpm build
# Run tests
pnpm test
# Watch mode
pnpm watch| OS | Config Location |
|---|---|
| macOS | ~/Library/Application Support/Claude/ |
| Windows | %APPDATA%\Claude\ |
| File | Purpose |
|---|---|
wp-sites.json |
Site configuration |
claude_desktop_config.json |
Claude Desktop config |
dist/index.js |
Built MCP server |
After successful setup:
- 📖 Explore Tools - Try all 145 tools in Inspector
- 🔒 Review Security - Read SECURITY.md
- 🎸 Start Creating - Use with Claude for AI-powered workflows
- 📊 Monitor Health - Run regular health checks
- 🚀 Automate - Build custom workflows
🤘 Setup complete! You now have 145 WordPress tools at your command!
Made with 🤘🔥 by Deusware AB