AiondaDotCom/mcp-wordpress
If you are the rightful owner of mcp-wordpress and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP WordPress Server is a comprehensive tool for managing WordPress sites using the Model Context Protocol, leveraging the WordPress REST API v2 and written entirely in TypeScript.
MCP WordPress Server
A comprehensive Model Context Protocol (MCP) server for WordPress management through the WordPress REST API v2. Completely written in TypeScript for maximum type safety and better developer experience.
๐ Features
- 54 WordPress Management Tools across 8 categories
- 100% TypeScript - Complete type safety and IntelliSense
- Modern ES Modules - Optimized for performance
- Interactive Setup Wizard - Easy configuration
- Comprehensive Testing - Complete test suite
- Flexible Authentication - Supports App Passwords, JWT, Basic Auth
- Debug & Monitoring - Structured logging and error tracking
โก Quick Start
Option 1: NPX (Recommended)
The easiest way to get started - no installation required:
# Run directly with NPX
npx @aiondadotcom/mcp-wordpress
# Or install globally
npm install -g @aiondadotcom/mcp-wordpress
mcp-wordpress
Option 2: Local Development
git clone https://github.com/AiondaDotCom/mcp-wordpress.git
cd mcp-wordpress
npm install
npm run setup
npm start
Setup Wizard
# For NPX users
npx @aiondadotcom/mcp-wordpress setup
# For local installation
npm run setup
The setup wizard guides you through:
- WordPress site configuration
- Authentication method selection
- Connection testing
- Claude Desktop configuration
๐ Lazy Setup via Claude Desktop
Super Easy NPX Setup
If you want the absolute easiest setup, just paste this prompt into Claude Desktop:
Set up the MCP WordPress server using NPX for my Claude Desktop.
My WordPress details:
- Site URL: [YOUR_WORDPRESS_URL]
- Username: [YOUR_USERNAME]
Please:
1. Help me create a WordPress Application Password
2. Configure my Claude Desktop mcp.json file with the NPX command
3. Test the connection to make sure everything works
4. Show me how to use the WordPress tools
I want to use the NPX version (@aiondadotcom/mcp-wordpress) so I don't need to install anything locally.
Full Local Development Setup
For local development and customization:
Build and configure the MCP WordPress server project from https://github.com/AiondaDotCom/mcp-wordpress locally on my computer.
Please:
1. Clone the repository to an appropriate directory
2. Install all dependencies
3. Run the setup wizard and help me configure my WordPress connection
4. Test the connection to make sure everything works
5. Set up the Claude Desktop MCP configuration
6. Run a quick test to verify all tools are working
My WordPress site URL is: [YOUR_WORDPRESS_URL]
My WordPress username is: [YOUR_USERNAME]
Guide me through any steps that require manual input, and let me know if you need any additional information from me.
Just replace [YOUR_WORDPRESS_URL]
and [YOUR_USERNAME]
with your actual WordPress site details, and Claude will handle the rest!
๐ง Configuration
Environment Variables (.env)
WORDPRESS_SITE_URL=https://your-wordpress-site.com
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
WORDPRESS_AUTH_METHOD=app-password
DEBUG=false
Claude Desktop Integration
Configure MCP WordPress Server in your Claude Desktop mcp.json
configuration file:
Option 1: NPX (Recommended)
{
"mcpServers": {
"mcp-wordpress": {
"command": "npx",
"args": ["@aiondadotcom/mcp-wordpress"],
"env": {
"WORDPRESS_SITE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"WORDPRESS_AUTH_METHOD": "app-password"
}
}
}
}
Option 2: Global Installation
{
"mcpServers": {
"mcp-wordpress": {
"command": "mcp-wordpress",
"env": {
"WORDPRESS_SITE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"WORDPRESS_AUTH_METHOD": "app-password"
}
}
}
}
Option 3: Local Development
{
"mcpServers": {
"mcp-wordpress": {
"command": "node",
"args": ["/path/to/mcp-wordpress/dist/index.js"],
"env": {
"WORDPRESS_SITE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"WORDPRESS_AUTH_METHOD": "app-password"
}
}
}
}
Using .env File (Any Option)
If you prefer to use a .env
file instead of environment variables in the config:
{
"mcpServers": {
"mcp-wordpress": {
"command": "npx",
"args": ["@aiondadotcom/mcp-wordpress"],
"env": {
"NODE_ENV": "production"
}
}
}
}
Claude Desktop Configuration File Locations
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
Quick Configuration Steps
- Create or locate your Claude Desktop config file at the path above
- Add the MCP server configuration using one of the options above
- Restart Claude Desktop for changes to take effect
- Verify the connection - you should see WordPress tools available in Claude Desktop
Example Complete Configuration
Here's a complete claude_desktop_config.json
file with MCP WordPress:
{
"mcpServers": {
"mcp-wordpress": {
"command": "npx",
"args": ["@aiondadotcom/mcp-wordpress"],
"env": {
"WORDPRESS_SITE_URL": "https://your-site.com",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"WORDPRESS_AUTH_METHOD": "app-password"
}
}
}
}
๐ Build System
TypeScript Build
# Compile
npm run build
# Watch mode
npm run build:watch
# Type checking
npm run typecheck
Development
# Development mode with debug output
npm run dev
# Check status
npm run status
# Re-run setup
npm run setup
๐ Authentication
WordPress Application Passwords (Recommended)
- WordPress Admin โ Users โ Profile
- Scroll to Application Passwords
- Enter name (e.g., "MCP WordPress Server")
- Click Add New Application Password
- Copy generated password (format:
xxxx xxxx xxxx xxxx xxxx xxxx
)
Alternative Authentication Methods
# JWT Authentication (requires JWT plugin)
WORDPRESS_AUTH_METHOD=jwt
WORDPRESS_JWT_SECRET=your-jwt-secret
# Basic Authentication (not recommended for production)
WORDPRESS_AUTH_METHOD=basic
WORDPRESS_PASSWORD=your-actual-password
# API Key Authentication (requires API Key plugin)
WORDPRESS_AUTH_METHOD=api-key
WORDPRESS_API_KEY=your-api-key
๐ Available Tools (54 Tools)
๐ Posts (6 Tools)
wp_list_posts
- List and filter blog postswp_get_post
- Get specific postwp_create_post
- Create new postswp_update_post
- Edit postswp_delete_post
- Delete postswp_get_post_revisions
- Get post revisions
๐ Pages (6 Tools)
wp_list_pages
- List pageswp_get_page
- Get specific pagewp_create_page
- Create new pageswp_update_page
- Edit pageswp_delete_page
- Delete pageswp_get_page_revisions
- Get page revisions
๐ผ๏ธ Media (6 Tools)
wp_list_media
- Browse media librarywp_get_media
- Get media detailswp_upload_media
- Upload fileswp_update_media
- Edit media metadatawp_delete_media
- Delete mediawp_get_media_sizes
- Get available image sizes
๐ฅ Users (6 Tools)
wp_list_users
- List userswp_get_user
- Get user detailswp_create_user
- Create new userswp_update_user
- Edit user profileswp_delete_user
- Delete userswp_get_current_user
- Get current user
๐ฌ Comments (7 Tools)
wp_list_comments
- List commentswp_get_comment
- Get comment detailswp_create_comment
- Create new commentswp_update_comment
- Edit commentswp_delete_comment
- Delete commentswp_approve_comment
- Approve commentswp_spam_comment
- Mark comments as spam
๐ท๏ธ Taxonomies (10 Tools)
wp_list_categories
- List categorieswp_get_category
- Get category detailswp_create_category
- Create new categorieswp_update_category
- Edit categorieswp_delete_category
- Delete categorieswp_list_tags
- List tagswp_get_tag
- Get tag detailswp_create_tag
- Create new tagswp_update_tag
- Edit tagswp_delete_tag
- Delete tags
โ๏ธ Site Management (7 Tools)
wp_get_site_settings
- Get site settingswp_update_site_settings
- Update site settingswp_get_site_stats
- Get site statisticswp_search_site
- Site-wide searchwp_get_application_passwords
- List app passwordswp_create_application_password
- Create new app passwordswp_delete_application_password
- Delete app passwords
๐ Authentication (6 Tools)
wp_test_auth
- Test authenticationwp_get_auth_status
- Get authentication statuswp_start_oauth_flow
- Start OAuth flowwp_complete_oauth_flow
- Complete OAuth flowwp_refresh_oauth_token
- Refresh OAuth tokenwp_switch_auth_method
- Switch authentication method
๐งช Testing
# Run all tests
npm test
# Tests with coverage
npm run test:coverage
# Quick tests
npm run test:fast
# MCP integration tests
npm run test:mcp
# Tool integration tests
npm run test:tools
# Tests in watch mode
npm run test:watch
๐ Status & Monitoring
# Check connection status
npm run status
# Debug mode
DEBUG=true npm run dev
# Lint code
npm run lint
# Auto-fix linting errors
npm run lint:fix
๐ Project Structure
mcp-wordpress/
โโโ src/ # TypeScript source code
โ โโโ index.ts # Main MCP server
โ โโโ server.ts # Server compatibility
โ โโโ types/ # TypeScript definitions
โ โ โโโ wordpress.ts # WordPress API types
โ โ โโโ mcp.ts # MCP protocol types
โ โ โโโ client.ts # Client interface types
โ โ โโโ index.ts # Type exports
โ โโโ client/ # WordPress API client
โ โ โโโ api.ts # HTTP client
โ โ โโโ auth.ts # Authentication
โ โโโ tools/ # MCP tool implementations
โ โ โโโ posts.ts # Post management
โ โ โโโ pages.ts # Page management
โ โ โโโ media.ts # Media management
โ โ โโโ users.ts # User management
โ โ โโโ comments.ts # Comment management
โ โ โโโ taxonomies.ts # Categories/Tags
โ โ โโโ site.ts # Site settings
โ โ โโโ auth.ts # Authentication
โ โโโ utils/ # Utility functions
โ โโโ debug.ts # Debug logger
โโโ dist/ # Compiled JavaScript files
โโโ bin/ # Utility scripts
โ โโโ setup.js # Setup wizard
โ โโโ status.js # Status checker
โโโ tests/ # Test suite
โโโ scripts/ # Build and test scripts
โโโ tsconfig.json # TypeScript configuration
โโโ jest.config.json # Jest test configuration
โโโ package.json # Node.js project configuration
๐ก TypeScript Features
- Complete Type Safety - Compile-time validation
- IntelliSense Support - Better IDE integration
- Type-safe API Client - Typed HTTP methods
- Comprehensive WordPress Types - 400+ lines of precise definitions
- MCP Protocol Types - Tool definitions and handlers
- Enhanced Error Handling - Typed exceptions
- Source Maps - Debugging support
๐ง WordPress Requirements
- WordPress 5.0+ with REST API enabled
- HTTPS (recommended for production)
- User with appropriate permissions
- Application Passwords enabled (WordPress 5.6+)
WordPress User Roles
Role | Access |
---|---|
Administrator | Full access to all functions |
Editor | Posts, pages, comments, media |
Author | Own posts and media |
Contributor | Own posts (drafts only) |
Subscriber | Read only |
๐ Troubleshooting
Common Issues
-
"Cannot connect to WordPress"
- Check WORDPRESS_SITE_URL
- Ensure REST API is accessible
- Test:
curl https://your-site.com/wp-json/wp/v2/
-
"Authentication failed"
- Verify username and app password
- Ensure Application Passwords are enabled
- Try running
npm run setup
again
-
"TypeScript compilation errors"
- Run
npm run typecheck
- Ensure all dependencies are installed
- Run
Debug Logs
DEBUG=true npm run dev
๐ API Documentation
๐ค Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/new-feature
- Commit changes:
git commit -m 'Add new feature'
- Push branch:
git push origin feature/new-feature
- Create pull request
๐ License
MIT License - see LICENSE file for details
๐ Powered by TypeScript for better development experience and type safety!