Skip to main content
Glama

WordPress MCP Server

Also Available on glama.ai | Cursor.store

npm version License: MIT WordPress


Video Demo : https://youtu.be/6hwMqXQFKN0

💝 Support This Project

If this project helps you, consider supporting its development:

Cryptocurrency Donation

Select Coin

Select Network

Contract

Deposit Address

🪙 USDT (TetherUS)

🔗 TRX (Tron TRC20)

Ending in jLj6t

TBJBb7fKyRdhqmWETyZoNP4X98mPk2Jxrt

Your support helps maintain and improve this project! 🙏

WPMCP server gives AI agents complete control over WordPress sites. Connect it to Claude, Cline, or any MCP-compatible AI, and manage WordPress through natural language.

Key Capabilities:

  • ✅ Content Management - Posts, pages, media, users, comments

  • ✅ File System Access - Read and write theme/plugin files

  • ✅ Theme Customization - Create child themes, modify styles, customize block themes

  • ✅ Plugin Control - Activate, deactivate, and modify plugins

  • ✅ Menu Management - Create menus, add items, assign to locations

  • ✅ Custom Content Types - Manage post types and taxonomies

  • ✅ Shortcodes & Cron - Execute shortcodes, schedule tasks

  • ✅ Widget System - Manage sidebars and widgets

  • ✅ Database Operations - Execute queries, manage options, inspect tables

  • ✅ WooCommerce Integration - Products, orders, customers, inventory, reports

  • ✅ Gutenberg Blocks - Block types, patterns, reusable blocks, templates

  • ✅ Advanced SEO - Sitemaps, redirects, schema markup, Open Graph, analysis

  • ✅ Security Monitoring - Site health, updates, integrity checks, debug logs

  • ✅ Performance Optimization - Cache management, database optimization, image processing

  • ✅ Backup & Migration - Full/partial backups, restore, export/import, cloning

  • ✅ User Roles - Custom roles, capabilities, permissions, role management

  • ✅ Complete Security - Multi-layer validation and automatic backups

Related MCP server: MCP Site Manager

Quick Start

1. Install

npm i -g wpmcp@3.0.0

2. Configure

Add to your MCP client (Claude Desktop, Cline, etc.):

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "wpmcp@3.0.0"],
      "env": {
        "WORDPRESS_URL": "https://your-site.com",
        "WORDPRESS_USERNAME": "admin",
        "WORDPRESS_PASSWORD": "your-app-password"
      }
    }
  }
}

3. Install WordPress Plugin (Required)

  1. Install wpmcp-plugin/wpmcp.zip to /wp-content/plugins/wpmcp-plugin/

  2. Activate via WordPress Admin → Plugins → "WordPress MCP Server Plugin"

  3. Ensure you have edit_themes and edit_plugins capabilities

What the plugin enables:

  • File system operations (read, write, delete, copy, move)

  • Shortcode execution

  • Cron job management

  • All advanced WordPress features

See wpmcp-plugin/README.md for detailed setup guide.

4. Use

"Create a child theme called 'My Custom Theme'"
"Activate Akismet plugin"
"Read the style.css file from my theme"
"Create a blog post about WordPress and publish it"

Available Tools (130+)

👉 See WPMCP_TOOLS.MD for complete detailed list of all 130 tools.

Category

Tools

What You Can Do

Posts (15)

create, update, delete, search, schedule, publish, duplicate, bulk

Manage all blog content

Pages (4)

create, update, delete, hierarchy

Build site structure

Media (5)

upload, update, delete, featured images

Manage images and files

Users (4)

create, update, delete, roles

User management

Categories (4)

create, update, delete, hierarchy

Organize content

Tags (2)

create, get

Tag content

Comments (4)

create, update, delete, moderate

Manage discussions

Settings (4)

get, update site settings

Configure WordPress

SEO (2)

meta description, focus keywords

Optimize for search

File System (8)

read, write, delete, copy, move

Edit any file

Theme Manager (13)

activate, child themes, theme.json, templates

Complete theme control

Plugin Manager (10)

activate, deactivate, read/write files

Full plugin control

Menu Manager (8)

create, add items, assign locations

Full navigation control

Custom Types (7)

get post types, taxonomies, manage terms

Advanced content types

Shortcodes (3)

list, execute, check existence

Shortcode system

Cron Jobs (5)

list, schedule, unschedule, run manually

Task scheduling

Widgets (6)

get sidebars, widgets, types, update

Widget management

Database (6)

execute queries, manage options, list tables

Database operations

WooCommerce (15)

products, orders, customers, inventory, coupons

E-commerce management

Gutenberg Blocks (12)

block types, patterns, reusable blocks, templates

Modern block editor

Security (7)

site health, updates, integrity, debug logs

Security monitoring

Performance (8)

cache, optimization, cleanup, image processing

Performance tuning

What You Can Do

Content Management

"Create a blog post about AI and publish it"
"Upload an image and set it as featured image for post 5"
"Get all draft posts"
"Create a new page called 'About Us'"

Theme Customization

"Create a child theme of Twenty Twenty-Five"
"Read my theme's functions.php file"
"Add custom CSS to make headers blue"
"Get the theme.json configuration"
"List all files in my theme"

Menu Management Examples

// Create menu
{
  "name": "Main Navigation",
  "description": "Primary site menu"
}

// Add menu item
{
  "title": "Home",
  "url": "https://yoursite.com",
  "menus": 3
}

// Get menu locations
// No parameters needed

// Assign menu to location
{
  "location": "primary",
  "menuId": 3
}

Plugin Management

"Show me all installed plugins"
"Activate the Contact Form 7 plugin"
"Read the main WooCommerce plugin file"
"Deactivate Hello Dolly"
"Check if Yoast SEO is installed"

Menu Management

"Create a new menu called 'Main Navigation'"
"Add a Home link to the menu"
"Get all registered menu locations"
"Assign the Main Navigation menu to primary location"
"Show me all menu items in the Main menu"

Custom Post Types & Taxonomies

"Show me all registered post types"
"Get details for the 'page' post type"
"Get all taxonomies"
"Show me all categories"
"Create a new category called 'Technology'"

Shortcodes

"List all registered shortcodes"
"Execute [gallery ids='1,2,3']"
"Check if 'contact-form' shortcode exists"

Cron Jobs & Scheduled Tasks

"Show me all scheduled cron jobs"
"Schedule a daily backup task"
"Run WordPress cron manually"
"Get available cron schedules"

Widgets

"Get all widget areas"
"Show me all available widget types"
"Get widgets in the sidebar"
"List inactive widgets"

File Operations

"Read style.css from my theme"
"Create a new custom.css file in my theme"
"Copy functions.php to functions-backup.php"
"Delete old-template.php with backup"

Security Features

All operations are secure:

  • ✅ Only allowed directories (themes, plugins, uploads)

  • ✅ Only safe file extensions (.php, .css, .js, etc.)

  • ✅ Malware pattern detection

  • ✅ PHP syntax validation

  • ✅ Automatic backups before changes

  • ✅ WordPress permission system

  • ✅ File size limits (10MB)

WordPress Authentication

Self-Hosted WordPress:

  1. Use your WordPress admin username and password

  2. Basic Authentication is built into the plugin

WordPress.com:

  1. Requires Business plan or higher

  2. Generate Application Password in Settings → Security

Project Structure

src/tools/
├── posts.ts          # 15 post management tools
├── pages.ts          # 4 page tools
├── media.ts          # 5 media tools
├── filesystem.ts     # 8 file system tools
├── themes.ts         # 13 theme management tools
├── plugins.ts        # 10 plugin management tools
├── menus.ts          # 8 menu management tools
└── all-features.ts   # Users, categories, tags, comments, settings, SEO

filesystem-plugin/
└── wpmcp-filesystem.php  # Required for file operations

Development

# Clone repository
git clone https://github.com/RaheesAhmed/wordpress-mcp-server.git
cd wordpress-mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run
npm start

Testing

All features tested on live WordPress:

  • ✅ 21/21 tests passed

  • ✅ File operations working

  • ✅ Theme management verified

  • ✅ Plugin control confirmed

  • ✅ Security validated

API Examples

Create Post

{
  "title": "My Post",
  "content": "<p>Content here</p>",
  "status": "publish"
}

Create Child Theme

{
  "parentTheme": "twentytwentyfive",
  "childName": "My Custom Theme"
}

Activate Plugin

{
  "plugin": "akismet/akismet"
}

Read Theme File

{
  "theme": "mytheme",
  "filePath": "functions.php"
}

Write File

{
  "path": "wp-content/themes/mytheme/custom.css",
  "content": "/* Custom styles */",
  "createBackup": true
}

Contributing

  1. Fork the repository

  2. Create feature branch (git checkout -b feature/name)

  3. Commit changes (git commit -m 'Add feature')

  4. Push to branch (git push origin feature/name)

  5. Open Pull Request

License

MIT License - see LICENSE


💝 Support This Project

If you find this project valuable, consider supporting its continued development:

Cryptocurrency Donation

Coin

Network

Contract Address

Deposit Address

🪙 USDT (TetherUS)

🔗 TRX (Tron TRC20)

Ending in jLj6t

TBJBb7fKyRdhqmWETyZoNP4X98mPk2Jxrt

Copy Address:

TBJBb7fKyRdhqmWETyZoNP4X98mPk2Jxrt

Your contributions help keep this project active and growing! Thank you for your support! 🙏


Built for AI-powered WordPress development 🚀

Available Tools

190 tools
wordpress_activate_pluginwordpress_activate_pluginC

Activate a plugin

Inputs: plugin (required).

wordpress_activate_themewordpress_activate_themeB

Activate a theme (switch to it as the active theme)

Inputs: stylesheet (required).

wordpress_add_capabilitywordpress_add_capabilityB

Add capability to a user role

Inputs: role (required), capability (required).

wordpress_analyze_seowordpress_analyze_seoC

Analyze SEO elements for a post

Inputs: postId (required).

wordpress_assign_menu_to_locationwordpress_assign_menu_to_locationC

Assign a menu to a theme location

Inputs: location (required), menuId (required).

wordpress_assign_rolewordpress_assign_roleC

Assign role to user

Inputs: userId (required), role (required).

wordpress_backup_databasewordpress_backup_databaseA

Export database only

Inputs: no named parameters.

wordpress_backup_fileswordpress_backup_filesB

Backup files only (no database)

Inputs: no named parameters.

wordpress_bulk_create_postswordpress_bulk_create_postsB

Create multiple posts in one operation - efficient for batch content generation

Inputs: posts (required).

wordpress_bulk_delete_mediawordpress_bulk_delete_mediaC

Delete multiple media files

Inputs: mediaIds (required).

wordpress_bulk_delete_postswordpress_bulk_delete_postsC

Delete multiple posts in one operation

Inputs: postIds (required), force (required).

wordpress_bulk_optimize_imageswordpress_bulk_optimize_imagesC

Bulk optimize images (compress all images)

Inputs: no named parameters.

wordpress_bulk_update_postswordpress_bulk_update_postsB

Update multiple posts in one operation - efficient for batch modifications

Inputs: updates (required).

wordpress_check_updateswordpress_check_updatesB

Check for available WordPress, plugin, and theme updates

Inputs: no named parameters.

wordpress_check_user_capabilitywordpress_check_user_capabilityC

Check if user has specific capability

Inputs: userId (required), capability (required).

wordpress_cleanup_databasewordpress_cleanup_databaseB

Clean up database (revisions, auto-drafts, spam, trash)

Inputs: no named parameters.

wordpress_clear_cachewordpress_clear_cacheA

Clear WordPress caches (transients, object cache, page cache)

Inputs: no named parameters.

wordpress_clone_to_stagingwordpress_clone_to_stagingC

Clone WordPress to staging environment

Inputs: stagingUrl (required).

wordpress_convert_to_webpwordpress_convert_to_webpC

Convert image to WebP format

Inputs: mediaId (required).

wordpress_copy_filewordpress_copy_fileC

Copy file to another location within WordPress

Inputs: source (required), destination (required).

wordpress_create_categorywordpress_create_categoryC

Create a new category with hierarchical support

Inputs: name (required).

wordpress_create_child_themewordpress_create_child_themeB

Create a child theme from a parent theme

Inputs: parentTheme (required), childName (required).

wordpress_create_commentwordpress_create_commentB

Create a comment on a post

Inputs: postId (required), content (required).

wordpress_create_menuwordpress_create_menuC

Create a new navigation menu

Inputs: name (required).

wordpress_create_menu_itemwordpress_create_menu_itemC

Add an item to a navigation menu

Inputs: title (required), menus (required).

wordpress_create_pagewordpress_create_pageC

Create a new WordPress page with hierarchy support

Inputs: title (required), content (required).

wordpress_create_postwordpress_create_postC

Create a new WordPress post with full control over all post properties

Inputs: title (required), content (required).

wordpress_create_redirectwordpress_create_redirectC

Create URL redirect (301, 302, 307)

Inputs: source (required), destination (required).

wordpress_create_reusable_blockwordpress_create_reusable_blockC

Create a reusable block

Inputs: title (required), content (required).

wordpress_create_rolewordpress_create_roleB

Create a custom user role

Inputs: role (required), displayName (required).

wordpress_create_tagwordpress_create_tagD

Create a new tag

Inputs: name (required).

wordpress_create_termwordpress_create_termC

Create a new term in a taxonomy

Inputs: taxonomy (required), name (required).

wordpress_create_userwordpress_create_userC

Create a new WordPress user with roles

Inputs: username (required), email (required), password (required).

wordpress_deactivate_pluginwordpress_deactivate_pluginC

Deactivate a plugin

Inputs: plugin (required).

wordpress_delete_backupwordpress_delete_backupC

Delete a backup file

Inputs: backupId (required).

wordpress_delete_categorywordpress_delete_categoryD

Delete a category

Inputs: categoryId (required), force (required).

wordpress_delete_commentwordpress_delete_commentC

Delete a comment

Inputs: commentId (required), force (required).

wordpress_delete_filewordpress_delete_fileC

Delete file with optional backup

Inputs: path (required), createBackup (required).

wordpress_delete_mediawordpress_delete_mediaC

Delete a media file from library

Inputs: mediaId (required), force (required).

wordpress_delete_menuwordpress_delete_menuC

Delete a navigation menu

Inputs: menuId (required), force (required).

wordpress_delete_menu_itemwordpress_delete_menu_itemC

Delete a menu item

Inputs: itemId (required), force (required).

wordpress_delete_pagewordpress_delete_pageC

Delete a page

Inputs: pageId (required), force (required).

wordpress_delete_pluginwordpress_delete_pluginB

Delete a plugin (must be deactivated first)

Inputs: plugin (required).

wordpress_delete_postwordpress_delete_postA

Delete a post. Set force=true to permanently delete, otherwise moves to trash

Inputs: postId (required), force (required).

wordpress_delete_redirectwordpress_delete_redirectC

Delete URL redirect

Inputs: redirectId (required).

wordpress_delete_reusable_blockwordpress_delete_reusable_blockC

Delete a reusable block

Inputs: blockId (required), force (required).

wordpress_delete_rolewordpress_delete_roleC

Delete a custom user role

Inputs: role (required).

wordpress_delete_termwordpress_delete_termC

Delete a term from a taxonomy

Inputs: taxonomy (required), termId (required), force (required).

wordpress_delete_themewordpress_delete_themeB

Delete a theme (cannot delete active theme)

Inputs: stylesheet (required), force (required).

wordpress_delete_userwordpress_delete_userB

Delete a user (reassign their content to another user)

Inputs: userId (required), reassign (required).

wordpress_delete_widgetwordpress_delete_widgetC

Delete a widget from a sidebar

Inputs: widgetId (required), force (required).

wordpress_duplicate_postwordpress_duplicate_postC

Duplicate an existing post with optional new title

Inputs: postId (required), newTitle (required).

wordpress_enable_maintenance_modewordpress_enable_maintenance_modeC

Enable or disable WordPress maintenance mode

Inputs: no named parameters.

wordpress_execute_shortcodewordpress_execute_shortcodeC

Process and execute a shortcode string

Inputs: content (required).

wordpress_execute_sqlwordpress_execute_sqlA

Execute SQL query (SELECT, SHOW, DESCRIBE, EXPLAIN only for safety)

Inputs: query (required).

wordpress_export_contentwordpress_export_contentB

Export posts/pages as WordPress XML

Inputs: no named parameters.

wordpress_file_infowordpress_file_infoB

Get file information (size, modified date, permissions)

Inputs: path (required).

wordpress_flush_rewrite_ruleswordpress_flush_rewrite_rulesA

Flush WordPress rewrite rules (fixes permalink issues)

Inputs: no named parameters.

wordpress_full_backupwordpress_full_backupA

Create complete site backup (files + database)

Inputs: no named parameters.

wordpress_generate_sitemapwordpress_generate_sitemapA

Generate XML sitemap for search engines

Inputs: no named parameters.

wordpress_get_active_pluginswordpress_get_active_pluginsA

Get all currently active plugins

Inputs: no named parameters.

wordpress_get_active_themewordpress_get_active_themeA

Get the currently active theme

Inputs: no named parameters.

wordpress_get_block_categorieswordpress_get_block_categoriesB

Get block pattern categories

Inputs: no named parameters.

wordpress_get_block_editor_settingswordpress_get_block_editor_settingsB

Get block editor configuration

Inputs: no named parameters.

wordpress_get_block_patternswordpress_get_block_patternsA

Get all available block patterns

Inputs: no named parameters.

wordpress_get_block_templatewordpress_get_block_templateC

Get block template by slug

Inputs: slug (required).

wordpress_get_block_typeswordpress_get_block_typesB

Get all registered block types

Inputs: no named parameters.

wordpress_get_capabilitieswordpress_get_capabilitiesC

Get all capabilities for a user role

Inputs: role (required).

wordpress_get_categorieswordpress_get_categoriesA

Get all categories with hierarchy

Inputs: no named parameters.

wordpress_get_commentswordpress_get_commentsC

Get comments with filtering by post and status

Inputs: perPage (required).

wordpress_get_cron_scheduleswordpress_get_cron_schedulesA

Get available cron schedule intervals

Inputs: no named parameters.

wordpress_get_debug_logwordpress_get_debug_logA

Read WordPress debug.log file

Inputs: no named parameters.

wordpress_get_failed_loginswordpress_get_failed_loginsA

Get failed login attempts for security monitoring

Inputs: no named parameters.

wordpress_get_global_styleswordpress_get_global_stylesA

Get theme global styles (Site Editor styles)

Inputs: no named parameters.

wordpress_get_mediawordpress_get_mediaC

Get media library files with filtering by type

Inputs: perPage (required), page (required).

wordpress_get_media_analyticswordpress_get_media_analyticsA

Get media library storage usage statistics

Inputs: no named parameters.

wordpress_get_menu_itemswordpress_get_menu_itemsA

Get menu items from a specific menu or all menus

Inputs: no named parameters.

wordpress_get_menu_locationswordpress_get_menu_locationsA

Get all registered menu locations in the active theme

Inputs: no named parameters.

wordpress_get_menuswordpress_get_menusA

Get all navigation menus

Inputs: no named parameters.

wordpress_get_optionwordpress_get_optionB

Get WordPress option value from wp_options table

Inputs: name (required).

wordpress_get_pageswordpress_get_pagesC

Get pages with hierarchy and ordering

Inputs: perPage (required), page (required).

wordpress_get_performance_metricswordpress_get_performance_metricsB

Get WordPress performance metrics and resource usage

Inputs: no named parameters.

wordpress_get_pluginswordpress_get_pluginsB

Get all installed WordPress plugins

Inputs: no named parameters.

wordpress_get_plugins_detailedwordpress_get_plugins_detailedA

Get detailed information about all installed plugins

Inputs: no named parameters.

wordpress_get_plugin_statuswordpress_get_plugin_statusC

Get status and details of a specific plugin

Inputs: plugin (required).

wordpress_get_postwordpress_get_postA

Get detailed information about a specific post by ID

Inputs: postId (required).

wordpress_get_post_revisionswordpress_get_post_revisionsA

Get all revisions/edit history for a post

Inputs: postId (required).

wordpress_get_postswordpress_get_postsC

Get posts with advanced filtering: search, author, categories, tags, status, ordering

Inputs: perPage (required), page (required), status (required), orderby (required), +1 more.

wordpress_get_post_typewordpress_get_post_typeB

Get details for a specific post type

Inputs: postType (required).

wordpress_get_post_typeswordpress_get_post_typesA

Get all registered post types

Inputs: no named parameters.

wordpress_get_redirectswordpress_get_redirectsA

Get all URL redirects

Inputs: no named parameters.

wordpress_get_reusable_blockswordpress_get_reusable_blocksC

Get reusable blocks (saved blocks)

Inputs: no named parameters.

wordpress_get_robots_txtwordpress_get_robots_txtA

Get robots.txt file content

Inputs: no named parameters.

wordpress_get_roleswordpress_get_rolesA

Get all WordPress user roles

Inputs: no named parameters.

wordpress_get_settingswordpress_get_settingsB

Get WordPress site settings

Inputs: no named parameters.

wordpress_get_sidebarwordpress_get_sidebarC

Get details for a specific sidebar

Inputs: id (required).

wordpress_get_sidebarswordpress_get_sidebarsA

Get all registered sidebar/widget areas

Inputs: no named parameters.

wordpress_get_site_healthwordpress_get_site_healthB

Get WordPress site health and status checks

Inputs: no named parameters.

wordpress_get_site_infowordpress_get_site_infoB

Get complete WordPress site information including available API routes

Inputs: no named parameters.

wordpress_get_style_variationswordpress_get_style_variationsC

Get theme style variations for block themes

Inputs: stylesheet (required).

wordpress_get_system_infowordpress_get_system_infoB

Get complete system information (versions, limits, configuration)

Inputs: no named parameters.

wordpress_get_table_previewwordpress_get_table_previewB

Get preview of table data (first 10 rows by default)

Inputs: table (required).

wordpress_get_table_structurewordpress_get_table_structureB

Get database table structure (columns and types)

Inputs: table (required).

wordpress_get_tagswordpress_get_tagsB

Get all tags

Inputs: no named parameters.

wordpress_get_taxonomieswordpress_get_taxonomiesA

Get all registered taxonomies

Inputs: no named parameters.

wordpress_get_taxonomywordpress_get_taxonomyC

Get details for a specific taxonomy

Inputs: taxonomy (required).

wordpress_get_template_partswordpress_get_template_partsA

Get theme template parts (block theme components like header, footer)

Inputs: no named parameters.

wordpress_get_termswordpress_get_termsA

Get terms from a taxonomy (categories, tags, or custom)

Inputs: taxonomy (required).

wordpress_get_theme_jsonwordpress_get_theme_jsonB

Get theme.json configuration for block themes (FSE)

Inputs: no named parameters.

wordpress_get_theme_modswordpress_get_theme_modsB

Get theme customizer settings (Appearance → Customize data)

Inputs: no named parameters.

wordpress_get_themeswordpress_get_themesA

Get all installed WordPress themes

Inputs: no named parameters.

wordpress_get_themes_detailedwordpress_get_themes_detailedB

Get detailed information about all installed themes

Inputs: no named parameters.

wordpress_get_theme_templateswordpress_get_theme_templatesB

Get theme templates (block theme templates from WordPress API)

Inputs: no named parameters.

wordpress_get_unused_mediawordpress_get_unused_mediaB

Find unused media files in library

Inputs: no named parameters.

wordpress_get_userswordpress_get_usersC

Get WordPress users with role filtering

Inputs: perPage (required), page (required).

wordpress_get_version_infowordpress_get_version_infoA

Get WordPress, PHP, and MySQL version information

Inputs: no named parameters.

wordpress_get_widgetswordpress_get_widgetsC

Get all widgets or widgets in a specific sidebar

Inputs: no named parameters.

wordpress_get_widget_typeswordpress_get_widget_typesA

Get all available widget types

Inputs: no named parameters.

wordpress_import_contentwordpress_import_contentC

Import content from WordPress XML

Inputs: fileUrl (required).

wordpress_list_backupswordpress_list_backupsB

Get all available backups

Inputs: no named parameters.

wordpress_list_cron_jobswordpress_list_cron_jobsA

Get all scheduled WordPress cron jobs

Inputs: no named parameters.

wordpress_list_fileswordpress_list_filesC

List files in a WordPress directory

Inputs: path (required), recursive (required).

wordpress_list_plugin_fileswordpress_list_plugin_filesB

List all files in a plugin directory

Inputs: plugin (required), recursive (required).

wordpress_list_shortcodeswordpress_list_shortcodesA

Get all registered WordPress shortcodes

Inputs: no named parameters.

wordpress_list_tableswordpress_list_tablesA

Get all WordPress database tables with row counts

Inputs: no named parameters.

wordpress_list_theme_fileswordpress_list_theme_filesC

List all files in a theme directory

Inputs: theme (required), recursive (required).

wordpress_move_filewordpress_move_fileB

Move or rename file within WordPress

Inputs: source (required), destination (required).

wordpress_optimize_databasewordpress_optimize_databaseB

Optimize all database tables for better performance

Inputs: no named parameters.

wordpress_parse_blockswordpress_parse_blocksC

Parse block content from HTML

Inputs: content (required).

wordpress_plugin_existswordpress_plugin_existsB

Check if a plugin is installed

Inputs: plugin (required).

wordpress_publish_postwordpress_publish_postB

Publish a draft or pending post immediately

Inputs: postId (required).

wordpress_read_filewordpress_read_fileC

Read file contents from WordPress (themes, plugins, etc.)

Inputs: path (required).

wordpress_read_plugin_filewordpress_read_plugin_fileB

Read a specific file from a plugin

Inputs: plugin (required), filePath (required).

wordpress_read_theme_filewordpress_read_theme_fileB

Read a specific file from a theme

Inputs: theme (required), filePath (required).

wordpress_regenerate_thumbnailswordpress_regenerate_thumbnailsC

Regenerate image thumbnails for all or specific images

Inputs: no named parameters.

wordpress_remove_capabilitywordpress_remove_capabilityB

Remove capability from a user role

Inputs: role (required), capability (required).

wordpress_restore_backupwordpress_restore_backupC

Restore WordPress from backup

Inputs: backupId (required).

wordpress_run_cronwordpress_run_cronA

Manually trigger WordPress cron execution

Inputs: no named parameters.

wordpress_scan_permissionswordpress_scan_permissionsB

Scan file and directory permissions for security issues

Inputs: no named parameters.

wordpress_schedule_backupswordpress_schedule_backupsC

Schedule automatic backups

Inputs: no named parameters.

wordpress_schedule_eventwordpress_schedule_eventC

Schedule a new cron event (one-time or recurring)

Inputs: hook (required).

wordpress_schedule_postwordpress_schedule_postC

Schedule a post for future publication. Date format: YYYY-MM-DDTHH:MM:SS

Inputs: postId (required), datetime (required).

wordpress_search_block_directorywordpress_search_block_directoryC

Search WordPress.org block directory

Inputs: term (required).

wordpress_search_postswordpress_search_postsB

Search posts by keyword - searches title, content, and excerpt

Inputs: query (required), perPage (required).

wordpress_set_canonical_urlwordpress_set_canonical_urlC

Set canonical URL for post

Inputs: postId (required), canonicalUrl (required).

wordpress_set_custom_metawordpress_set_custom_metaC

Set custom post metadata field - useful for custom fields and plugins

Inputs: postId (required), metaKey (required), metaValue (required).

wordpress_set_og_tagswordpress_set_og_tagsC

Set Open Graph meta tags for social sharing

Inputs: postId (required).

wordpress_set_schema_markupwordpress_set_schema_markupC

Add JSON-LD schema markup to post

Inputs: postId (required), schemaType (required), schemaData (required).

wordpress_set_seo_metawordpress_set_seo_metaC

Set SEO metadata (Yoast SEO, Rank Math, All-in-One SEO compatible)

Inputs: postId (required).

wordpress_set_twitter_cardswordpress_set_twitter_cardsC

Set Twitter Card meta tags for social sharing

Inputs: postId (required).

wordpress_shortcode_existswordpress_shortcode_existsB

Check if a shortcode is registered

Inputs: tag (required).

wordpress_test_connectionwordpress_test_connectionB

Test WordPress connection and authentication

Inputs: no named parameters.

wordpress_theme_existswordpress_theme_existsB

Check if a theme is installed

Inputs: theme (required).

wordpress_unschedule_eventwordpress_unschedule_eventC

Remove a scheduled cron event

Inputs: hook (required).

wordpress_update_categorywordpress_update_categoryB

Update category name, description, or parent

Inputs: categoryId (required), updates (required).

wordpress_update_commentwordpress_update_commentB

Update comment (approve, spam, trash, edit content)

Inputs: commentId (required).

wordpress_update_mediawordpress_update_mediaC

Update media file metadata (alt text, caption, title)

Inputs: mediaId (required).

wordpress_update_menu_itemwordpress_update_menu_itemB

Update a menu item (title, URL, order, etc.)

Inputs: itemId (required), updates (required).

wordpress_update_optionwordpress_update_optionC

Update WordPress option value in wp_options table

Inputs: name (required), value (required).

wordpress_update_pagewordpress_update_pageC

Update an existing page

Inputs: pageId (required), updates (required).

wordpress_update_postwordpress_update_postC

Update an existing post - can modify any post property

Inputs: postId (required), updates (required).

wordpress_update_reusable_blockwordpress_update_reusable_blockC

Update a reusable block

Inputs: blockId (required), updates (required).

wordpress_update_robots_txtwordpress_update_robots_txtC

Update robots.txt file content

Inputs: content (required).

wordpress_update_settingswordpress_update_settingsB

Update site settings (title, description, timezone, etc)

Inputs: no named parameters.

wordpress_update_termwordpress_update_termC

Update a term in a taxonomy

Inputs: taxonomy (required), termId (required), updates (required).

wordpress_update_theme_jsonwordpress_update_theme_jsonB

Update theme.json configuration for block themes (FSE)

Inputs: themeJson (required).

wordpress_update_userwordpress_update_userB

Update user information (name, email, roles, password)

Inputs: userId (required), updates (required).

wordpress_update_widgetwordpress_update_widgetC

Update widget configuration

Inputs: widgetId (required), instance (required).

wordpress_upload_mediawordpress_upload_mediaA

Upload image or file to WordPress media library (provide base64 encoded file)

Inputs: fileBase64 (required), filename (required).

wordpress_verify_core_fileswordpress_verify_core_filesA

Verify WordPress core file integrity (checksums)

Inputs: no named parameters.

wordpress_wc_create_couponwordpress_wc_create_couponC

Create WooCommerce discount coupon

Inputs: code (required), amount (required).

wordpress_wc_create_productwordpress_wc_create_productB

Create a new WooCommerce product

Inputs: name (required), regular_price (required).

wordpress_wc_delete_productwordpress_wc_delete_productC

Delete WooCommerce product

Inputs: productId (required), force (required).

wordpress_wc_get_couponswordpress_wc_get_couponsB

Get WooCommerce coupons

Inputs: no named parameters.

wordpress_wc_get_customerswordpress_wc_get_customersB

Get WooCommerce customers

Inputs: no named parameters.

wordpress_wc_get_orderswordpress_wc_get_ordersC

Get WooCommerce orders with filtering

Inputs: no named parameters.

wordpress_wc_get_payment_gatewayswordpress_wc_get_payment_gatewaysB

Get WooCommerce payment gateways

Inputs: no named parameters.

wordpress_wc_get_product_categorieswordpress_wc_get_product_categoriesB

Get WooCommerce product categories

Inputs: no named parameters.

wordpress_wc_get_productswordpress_wc_get_productsB

Get WooCommerce products with filtering

Inputs: no named parameters.

wordpress_wc_get_sales_reportwordpress_wc_get_sales_reportB

Get WooCommerce sales report/analytics

Inputs: no named parameters.

wordpress_wc_get_shipping_zoneswordpress_wc_get_shipping_zonesA

Get WooCommerce shipping zones

Inputs: no named parameters.

wordpress_wc_get_top_sellerswordpress_wc_get_top_sellersC

Get top selling products

Inputs: no named parameters.

wordpress_wc_is_activewordpress_wc_is_activeA

Check if WooCommerce is installed and active

Inputs: no named parameters.

wordpress_wc_update_order_statuswordpress_wc_update_order_statusC

Update WooCommerce order status

Inputs: orderId (required), status (required).

wordpress_wc_update_productwordpress_wc_update_productC

Update WooCommerce product

Inputs: productId (required), updates (required).

wordpress_wc_update_stockwordpress_wc_update_stockC

Update product inventory/stock levels

Inputs: productId (required).

wordpress_write_filewordpress_write_fileB

Write or create file with security validation and optional backup

Inputs: path (required), content (required), createBackup (required).

wordpress_write_plugin_filewordpress_write_plugin_fileA

Write or modify a file in a plugin (automatically creates backup)

Inputs: plugin (required), filePath (required), content (required).

wordpress_write_theme_filewordpress_write_theme_fileA

Write or modify a file in a theme (automatically creates backup)

Inputs: theme (required), filePath (required), content (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 190 tools

    Disambiguation3/5

    Many tools have clear resource-action separation (posts, users, themes, plugins), but there are overlapping pairs like wordpress_get_posts vs wordpress_search_posts, wordpress_get_plugins vs wordpress_get_plugins_detailed, and wordpress_get_site_info vs wordpress_get_site_health that could cause selection ambiguity. With 190 tools, the sheer volume increases the chance of picking a near-duplicate.

    Naming Consistency4/5

    Most tools follow a consistent wordpress_<verb>_<noun> pattern (create_post, get_posts, delete_user). However, there are inconsistencies: wordpress_wc_is_active vs wordpress_get_plugins (non-verb prefix), wordpress_theme_exists vs get_ forms, and wordpress_run_cron vs wordpress_list_cron_jobs. These are minor deviations from an otherwise uniform convention.

    Tool Count2/5

    190 tools is excessive for a single MCP server. The scope spans core content, themes, plugins, files, users, WooCommerce, SEO, performance, security, and database operations, creating a monolithic surface that is difficult to navigate.

    Completeness4/5

    The tool surface is incredibly comprehensive, covering posts, pages, media, users, taxonomies, comments, themes, plugins, menus, widgets, WooCommerce, and system maintenance. Gaps are minor (e.g., no comment spam moderation, no specific user registration tool), but most obvious workflows are represented.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers