wordpress-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORDPRESS_PASSWORD | Yes | WordPress application password (generated from User Profile) | |
| WORDPRESS_SITE_URL | Yes | The URL of the WordPress site (e.g., https://example.com) | |
| WORDPRESS_USERNAME | Yes | WordPress username (must have Application Passwords enabled) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wp_site_infoA | Get WordPress site information (name, description, URL, timezone) |
| wp_get_settingsB | Get WordPress site settings (title, tagline, timezone, date format) |
| wp_update_settingsC | Update WordPress site settings |
| wp_get_namespacesA | List available REST API namespaces (plugins may add custom endpoints) |
| wp_list_postsC | List WordPress posts with optional filters |
| wp_get_postB | Get a single post by ID |
| wp_create_postC | Create a new WordPress post |
| wp_update_postC | Update an existing post |
| wp_delete_postA | Delete a post (moves to trash, or permanently if force=true) |
| wp_search_postsB | Search posts by keyword |
| wp_list_pagesC | List WordPress pages |
| wp_get_pageC | Get a single page by ID |
| wp_create_pageB | Create a new WordPress page |
| wp_update_pageC | Update an existing page |
| wp_delete_pageA | Delete a page (moves to trash, or permanently if force=true) |
| wp_list_usersC | List WordPress users |
| wp_meA | Get the currently authenticated user |
| wp_get_userC | Get a user by ID |
| wp_create_userC | Create a new WordPress user |
| wp_update_userC | Update an existing user |
| wp_delete_userB | Delete a user (requires reassign parameter) |
| wp_list_pluginsB | List all installed plugins |
| wp_get_pluginB | Get plugin details by slug |
| wp_activate_pluginB | Activate a plugin |
| wp_deactivate_pluginB | Deactivate a plugin |
| wp_delete_pluginA | Delete/uninstall a plugin (must be deactivated first) |
| wp_list_themesA | List all installed themes |
| wp_get_active_themeB | Get the currently active theme |
| wp_get_themeB | Get theme details by stylesheet name |
| wp_activate_themeB | Activate a theme (switch themes) |
| wp_list_mediaB | List media library items |
| wp_get_mediaB | Get a media item by ID |
| wp_update_mediaC | Update media item metadata (title, alt text, caption) |
| wp_delete_mediaC | Delete a media item |
| wp_list_categoriesC | List all categories |
| wp_create_categoryB | Create a new category |
| wp_update_categoryC | Update a category |
| wp_delete_categoryC | Delete a category |
| wp_list_tagsC | List all tags |
| wp_create_tagC | Create a new tag |
| wp_update_tagC | Update a tag |
| wp_delete_tagC | Delete a tag |
| wp_list_commentsC | List comments |
| wp_get_commentB | Get a comment by ID |
| wp_create_commentB | Create a comment on a post |
| wp_update_commentB | Update a comment (approve, edit content, etc.) |
| wp_delete_commentC | Delete a comment |
| wp_moderate_commentsC | Batch moderate comments by status |
| mcp_search_pluginsB | Search WordPress.org plugin repository |
| mcp_install_pluginA | Install a plugin from WordPress.org by slug |
| mcp_update_pluginB | Update a single plugin to latest version |
| mcp_update_all_pluginsA | Update all plugins with available updates |
| mcp_install_plugin_zipB | Install a plugin from a ZIP URL (GitHub releases, custom sources) |
| mcp_search_themesB | Search WordPress.org theme repository |
| mcp_install_themeB | Install a theme from WordPress.org by slug |
| mcp_update_themeB | Update a single theme to latest version |
| mcp_update_all_themesA | Update all themes with available updates |
| mcp_delete_themeC | Delete an inactive theme |
| mcp_install_theme_zipB | Install a theme from a ZIP URL (GitHub releases, custom sources) |
| mcp_get_versionB | Get WordPress version and update status |
| mcp_get_system_infoB | Get comprehensive system information |
| mcp_check_updatesB | Check for WordPress core, plugin, and theme updates |
| mcp_update_coreB | Update WordPress to the latest version |
| mcp_flush_rewriteC | Flush permalink rewrite rules |
| mcp_flush_cacheB | Clear all caches and transients |
| mcp_get_tablesA | List all database tables with sizes |
| mcp_search_replaceB | Search and replace strings in database (serialization-safe) |
| mcp_optimize_tablesA | Optimize all database tables |
| mcp_clean_revisionsB | Delete old post revisions |
| mcp_clean_commentsB | Delete spam and trashed comments |
| mcp_list_optionsB | List WordPress options with optional prefix filter |
| mcp_get_optionB | Get a single option value |
| mcp_set_optionB | Create or update an option |
| mcp_delete_optionC | Delete an option |
| mcp_bulk_get_optionsC | Get multiple options at once |
| mcp_list_menusC | List all navigation menus |
| mcp_get_menu_locationsB | Get registered menu locations |
| mcp_get_menuA | Get a menu with all its items |
| mcp_create_menuC | Create a new navigation menu |
| mcp_delete_menuB | Delete a navigation menu |
| mcp_add_menu_itemC | Add an item to a menu |
| mcp_delete_menu_itemB | Delete a menu item |
| mcp_update_menuC | Update a navigation menu (rename) |
| mcp_update_menu_itemB | Update a menu item (title, URL, position, parent) |
| mcp_assign_menu_locationB | Assign a menu to a theme location |
| mcp_list_sidebarsB | List all registered sidebars |
| mcp_get_sidebar_widgetsC | Get all widgets in a sidebar |
| mcp_list_widget_typesA | List all available widget types |
| mcp_get_widgetB | Get a widget's details |
| mcp_add_widgetC | Add a widget to a sidebar |
| mcp_update_widgetC | Update a widget's settings |
| mcp_delete_widgetB | Remove a widget from its sidebar |
| mcp_reorder_widgetsB | Reorder widgets within a sidebar |
| mcp_move_widgetB | Move a widget to a different sidebar |
| mcp_get_healthA | Get site health status and score |
| mcp_get_debug_infoC | Get detailed debug information |
| mcp_get_php_infoB | Get PHP configuration details |
| mcp_get_plugins_healthB | Get plugin health status and available updates |
| mcp_get_cron_statusC | Get WordPress cron jobs status |
| mcp_run_cronB | Manually trigger a cron hook |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 191 tools
Several core resources are duplicated under different prefixes: wp_list_users/mcp_list_users, wp_get_user/mcp_get_user, wp_list_media/mcp_list_media, and wp_get_media/mcp_get_media all target the same resources with only slightly different descriptions. Taxonomy tools also overlap (wp_create_category vs mcp_create_term), making it hard for an agent to reliably choose the intended tool.
Most tools follow a readable verb_noun snake_case pattern, especially within the acf_ and woo_ domains. However, the wp_ and mcp_ prefixes are used inconsistently for the same WordPress core resources, and a few names like wp_me and wp_site_info are noun-only rather than verb-led.
191 tools is an extreme number for an MCP server, far beyond a well-scoped tool surface. The count is inflated by duplicated user/media tools and by bolting together four different domains (core WordPress, Elementor, ACF, WooCommerce), which would be overwhelming for an agent to navigate.
The tool surface is remarkably broad, covering core WordPress CRUD for posts, pages, media, comments, users, taxonomies, options, menus, widgets, plugins, themes, and system maintenance, plus dedicated Elementor, ACF, and WooCommerce modules. Minor gaps exist, such as no generic post-meta CRUD and WooCommerce product tags being list-only, but most workflows can still be completed.