{
  "markdown": "# wordpress-mcp\n\n[![npm version](https://img.shields.io/npm/v/@cavort-it-systems/wordpress-mcp.svg)](https://www.npmjs.com/package/@cavort-it-systems/wordpress-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.12.1-blue.svg)](https://modelcontextprotocol.io)\n\nLightweight WordPress MCP server for site management. **158 tools** with **token-optimized responses** — REST API responses automatically slimmed from kilobytes to essentials.\n\n**v2.1**: Now includes Pro modules for ACF and WooCommerce via [wp-pilot-pro](https://github.com/cvrt-gmbh/wp-pilot-pro).\n\n**v2.0**: Extended tools for the [cvrt-mcp-endpoints](https://github.com/cvrt-gmbh/cvrt-mcp-endpoints) plugin — install plugins/themes from WordPress.org, database management, full widget/menu control, and more.\n\n## Why This Server?\n\nWordPress REST API returns extremely verbose JSON (~5-10KB per post). This server strips it down:\n\n| Response | Before | After | Reduction |\n|----------|--------|-------|-----------|\n| `wp_list_posts` (10 posts) | ~50KB | ~2KB | **96%** |\n| `wp_get_post` | ~5KB | ~200 bytes | **96%** |\n| `wp_list_plugins` | ~15KB | ~800 bytes | **95%** |\n\nLess tokens = faster responses, lower costs, more context for your AI.\n\n## Installation\n\n```bash\nnpm install -g @cavort-it-systems/wordpress-mcp\n```\n\nOr run directly:\n\n```bash\nnpx @cavort-it-systems/wordpress-mcp\n```\n\n## Configuration\n\n### Claude Code CLI\n\n```bash\nclaude mcp add wordpress \\\n  -e WORDPRESS_SITE_URL=https://example.com \\\n  -e WORDPRESS_USERNAME=admin \\\n  -e WORDPRESS_PASSWORD=\"xxxx xxxx xxxx xxxx\" \\\n  -- npx @cavort-it-systems/wordpress-mcp\n```\n\n### Claude Desktop / Manual\n\nAdd to your MCP config (`~/.claude.json` or Claude Desktop settings):\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress\": {\n      \"command\": \"npx\",\n      \"args\": [\"@cavort-it-systems/wordpress-mcp\"],\n      \"env\": {\n        \"WORDPRESS_SITE_URL\": \"https://example.com\",\n        \"WORDPRESS_USERNAME\": \"admin\",\n        \"WORDPRESS_PASSWORD\": \"xxxx xxxx xxxx xxxx\"\n      }\n    }\n  }\n}\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/cvrt-jh/wordpress-mcp.git\ncd wordpress-mcp\nnpm install && npm run build\n```\n\n## Authentication\n\nUses **Application Passwords** (WordPress 5.6+):\n\n1. Go to **Users → Profile** in WordPress admin\n2. Scroll to **Application Passwords**\n3. Create new password for \"Claude MCP\"\n4. Use the generated password (keep the spaces)\n\n## Response Slimming\n\nAll responses are automatically trimmed. Example:\n\n**`wp_get_post`** — from ~5KB to ~200 bytes:\n```json\n// Before (WordPress REST API raw)\n{\"id\":123,\"date\":\"2026-01-15T10:30:00\",\"date_gmt\":\"2026-01-15T09:30:00\",\n\"guid\":{\"rendered\":\"https://example.com/?p=123\"},\"modified\":\"2026-01-20T14:00:00\",\n\"modified_gmt\":\"2026-01-20T13:00:00\",\"slug\":\"my-post\",\"status\":\"publish\",\n\"type\":\"post\",\"link\":\"https://example.com/my-post/\",\"title\":{\"rendered\":\"My Post\"},\n\"content\":{\"rendered\":\"<p>Full content...</p>\",\"protected\":false},\n\"excerpt\":{\"rendered\":\"<p>Excerpt...</p>\",\"protected\":false},\n\"author\":1,\"featured_media\":456,\"comment_status\":\"open\",\"ping_status\":\"open\",\n\"sticky\":false,\"template\":\"\",\"format\":\"standard\",\"meta\":{\"footnotes\":\"\"},\n\"categories\":[1,5],\"tags\":[10,20],\"class_list\":[\"post-123\",\"type-post\",...],\n\"_links\":{\"self\":[...],\"collection\":[...],\"about\":[...],...}}\n\n// After (slimmed)\n{\"id\":123,\"title\":\"My Post\",\"slug\":\"my-post\",\"status\":\"publish\",\n\"date\":\"2026-01-15T10:30:00\",\"modified\":\"2026-01-20T14:00:00\",\n\"link\":\"https://example.com/my-post/\",\"excerpt\":\"Excerpt...\",\n\"author\":1,\"categories\":[1,5],\"tags\":[10,20],\"featured_media\":456}\n```\n\n**What gets stripped:**\n\n| Field | Where | Why |\n|-------|-------|-----|\n| `guid`, `_links` | everywhere | Internal WordPress data |\n| `content.rendered` | lists | Only included when explicitly requested |\n| `meta`, `class_list` | posts/pages | Theme/plugin metadata |\n| `ping_status`, `comment_status` | posts | Rarely needed |\n| `template`, `format`, `sticky` | posts | Theme-specific |\n| HTML tags | excerpts | Clean text output |\n| Pretty-print JSON | all | Compact single-line output |\n\n## Tools (158)\n\n### Standard WordPress REST API (42 tools)\n\nThese work with any WordPress site:\n\n### Site (4)\n- `wp_site_info` - Get site name, description, URL\n- `wp_get_settings` - Get site settings\n- `wp_update_settings` - Update site settings\n- `wp_get_namespaces` - List REST API namespaces\n\n### Posts (6)\n- `wp_list_posts` - List posts with filters\n- `wp_get_post` - Get single post\n- `wp_create_post` - Create post\n- `wp_update_post` - Update post\n- `wp_delete_post` - Delete post\n- `wp_search_posts` - Search posts\n\n### Pages (5)\n- `wp_list_pages` - List pages\n- `wp_get_page` - Get single page\n- `wp_create_page` - Create page\n- `wp_update_page` - Update page\n- `wp_delete_page` - Delete page\n\n### Users (6)\n- `wp_list_users` - List users\n- `wp_me` - Get current user\n- `wp_get_user` - Get user by ID\n- `wp_create_user` - Create user\n- `wp_update_user` - Update user\n- `wp_delete_user` - Delete user\n\n### Plugins (5)\n- `wp_list_plugins` - List plugins\n- `wp_get_plugin` - Get plugin details\n- `wp_activate_plugin` - Activate plugin\n- `wp_deactivate_plugin` - Deactivate plugin\n- `wp_delete_plugin` - Delete plugin\n\n### Themes (4)\n- `wp_list_themes` - List themes\n- `wp_get_active_theme` - Get active theme\n- `wp_get_theme` - Get theme details\n- `wp_activate_theme` - Switch themes\n\n### Media (4)\n- `wp_list_media` - List media library\n- `wp_get_media` - Get media item\n- `wp_update_media` - Update media metadata\n- `wp_delete_media` - Delete media\n\n### Categories & Tags (8)\n- `wp_list_categories` - List categories\n- `wp_create_category` - Create category\n- `wp_update_category` - Update category\n- `wp_delete_category` - Delete category\n- `wp_list_tags` - List tags\n- `wp_create_tag` - Create tag\n- `wp_update_tag` - Update tag\n- `wp_delete_tag` - Delete tag\n\n### Comments (6)\n- `wp_list_comments` - List comments\n- `wp_get_comment` - Get comment\n- `wp_create_comment` - Create comment\n- `wp_update_comment` - Update/moderate comment\n- `wp_delete_comment` - Delete comment\n- `wp_moderate_comments` - Batch moderate\n\n---\n\n### Extended Tools (43 tools) — Requires cvrt-mcp-endpoints plugin\n\nThese require the [cvrt-mcp-endpoints](https://github.com/cvrt-gmbh/cvrt-mcp-endpoints) WordPress plugin to be installed and activated.\n\n### Plugin Management (4)\n- `mcp_search_plugins` - Search WordPress.org plugins\n- `mcp_install_plugin` - Install plugin from WordPress.org\n- `mcp_update_plugin` - Update single plugin\n- `mcp_update_all_plugins` - Update all plugins\n\n### Theme Management (5)\n- `mcp_search_themes` - Search WordPress.org themes\n- `mcp_install_theme` - Install theme from WordPress.org\n- `mcp_update_theme` - Update single theme\n- `mcp_update_all_themes` - Update all themes\n- `mcp_delete_theme` - Delete inactive theme\n\n### Core Management (6)\n- `mcp_get_version` - Get WordPress version info\n- `mcp_get_system_info` - Get comprehensive system info\n- `mcp_check_updates` - Check for all updates\n- `mcp_update_core` - Update WordPress core\n- `mcp_flush_rewrite` - Flush rewrite rules\n- `mcp_flush_cache` - Clear all caches\n\n### Database Management (5)\n- `mcp_get_tables` - List tables with sizes\n- `mcp_search_replace` - Search/replace in database\n- `mcp_optimize_tables` - Optimize all tables\n- `mcp_clean_revisions` - Delete old revisions\n- `mcp_clean_comments` - Delete spam/trash comments\n\n### Options Management (5)\n- `mcp_list_options` - List options with prefix filter\n- `mcp_get_option` - Get single option\n- `mcp_set_option` - Create/update option\n- `mcp_delete_option` - Delete option\n- `mcp_bulk_get_options` - Get multiple options\n\n### Menu Management (8)\n- `mcp_list_menus` - List navigation menus\n- `mcp_get_menu_locations` - Get theme locations\n- `mcp_get_menu` - Get menu with items\n- `mcp_create_menu` - Create menu\n- `mcp_delete_menu` - Delete menu\n- `mcp_add_menu_item` - Add menu item\n- `mcp_delete_menu_item` - Delete menu item\n- `mcp_assign_menu_location` - Assign menu to location\n\n### Widget Management (8)\n- `mcp_list_sidebars` - List all sidebars\n- `mcp_get_sidebar_widgets` - Get sidebar widgets\n- `mcp_list_widget_types` - List widget types\n- `mcp_get_widget` - Get widget details\n- `mcp_add_widget` - Add widget to sidebar\n- `mcp_update_widget` - Update widget settings\n- `mcp_delete_widget` - Remove widget\n- `mcp_move_widget` - Move widget to sidebar\n\n### Health & Diagnostics (6)\n- `mcp_get_health` - Site health score\n- `mcp_get_debug_info` - Debug information\n- `mcp_get_php_info` - PHP configuration\n- `mcp_get_plugins_health` - Plugin health/updates\n- `mcp_get_cron_status` - Cron jobs status\n- `mcp_run_cron` - Run cron hook manually\n\n---\n\n### ACF Module (31 tools) — Requires wp-pilot-pro + ACF\n\nRequires [wp-pilot-pro](https://github.com/cvrt-gmbh/wp-pilot-pro) and Advanced Custom Fields.\n\n### Field Groups (4)\n- `acf_list_field_groups` - List all field groups\n- `acf_get_field_group` - Get field group with schema\n- `acf_export_field_groups` - Export as JSON\n- `acf_import_field_groups` - Import from JSON\n\n### Post Fields (4)\n- `acf_get_post_fields` - Get all fields for post\n- `acf_update_post_fields` - Update multiple fields\n- `acf_get_post_field` - Get single field value\n- `acf_update_post_field` - Update single field\n\n### Term & User Fields (4)\n- `acf_get_term_fields` - Get term ACF fields\n- `acf_update_term_fields` - Update term fields\n- `acf_get_user_fields` - Get user ACF fields\n- `acf_update_user_fields` - Update user fields\n\n### Options Pages (3)\n- `acf_list_options_pages` - List options pages\n- `acf_get_options_fields` - Get options page fields\n- `acf_update_options_fields` - Update options fields\n\n### Repeater Fields (5)\n- `acf_get_repeater` - Get repeater rows\n- `acf_add_repeater_row` - Add row\n- `acf_update_repeater_row` - Update row\n- `acf_delete_repeater_row` - Delete row\n- `acf_reorder_repeater` - Reorder rows\n\n### Flexible Content (5)\n- `acf_get_flexible` - Get layouts\n- `acf_add_flexible_layout` - Add layout\n- `acf_update_flexible_layout` - Update layout\n- `acf_delete_flexible_layout` - Delete layout\n- `acf_reorder_flexible` - Reorder layouts\n\n### Relationship Fields (4)\n- `acf_get_relationship` - Get related posts\n- `acf_set_relationship` - Set related posts\n- `acf_add_to_relationship` - Add posts\n- `acf_remove_from_relationship` - Remove posts\n\n### Utility (2)\n- `acf_get_clone_references` - Get clone field refs\n- `acf_get_field_object` - Get field schema\n\n---\n\n### WooCommerce Module (42 tools) — Requires wp-pilot-pro + WooCommerce\n\nRequires [wp-pilot-pro](https://github.com/cvrt-gmbh/wp-pilot-pro) and WooCommerce.\n\n### Products (5)\n- `woo_list_products` - List products with filters\n- `woo_get_product` - Get product details\n- `woo_create_product` - Create product\n- `woo_update_product` - Update product\n- `woo_delete_product` - Delete product\n\n### Variations (4)\n- `woo_list_variations` - List product variations\n- `woo_create_variation` - Create variation\n- `woo_update_variation` - Update variation\n- `woo_delete_variation` - Delete variation\n\n### Attributes (4)\n- `woo_list_attributes` - List attributes\n- `woo_list_attribute_terms` - List attribute terms\n- `woo_create_attribute` - Create attribute\n- `woo_create_attribute_term` - Create term\n\n### Categories & Tags (5)\n- `woo_list_categories` - List product categories\n- `woo_create_category` - Create category\n- `woo_update_category` - Update category\n- `woo_delete_category` - Delete category\n- `woo_list_tags` - List product tags\n\n### Orders (5)\n- `woo_list_orders` - List orders\n- `woo_get_order` - Get order details\n- `woo_update_order_status` - Update status\n- `woo_add_order_note` - Add note\n- `woo_get_order_notes` - Get notes\n\n### Customers (5)\n- `woo_list_customers` - List customers\n- `woo_get_customer` - Get customer\n- `woo_create_customer` - Create customer\n- `woo_update_customer` - Update customer\n- `woo_get_customer_orders` - Get order history\n\n### Coupons (5)\n- `woo_list_coupons` - List coupons\n- `woo_get_coupon` - Get coupon\n- `woo_create_coupon` - Create coupon\n- `woo_update_coupon` - Update coupon\n- `woo_delete_coupon` - Delete coupon\n\n### Reports (3)\n- `woo_sales_report` - Sales report\n- `woo_top_sellers` - Top selling products\n- `woo_stock_report` - Stock status report\n\n### Product Meta & Inventory (3)\n- `woo_get_product_meta` - Get product meta\n- `woo_update_product_meta` - Update product meta\n- `woo_bulk_update_stock` - Bulk stock update\n\n## Architecture\n\n```\nsrc/\n  index.ts          # Entry: McpServer + StdioServerTransport\n  client.ts         # WordPress REST API client (Basic Auth)\n  types.ts          # Shared Zod schemas + jsonResult helper\n  slim.ts           # Response slimming transformers\n  tools/\n    # Standard WP REST API (wp/v2)\n    site.ts         # 4 tools\n    posts.ts        # 6 tools\n    pages.ts        # 5 tools\n    users.ts        # 6 tools\n    plugins.ts      # 5 tools\n    themes.ts       # 4 tools\n    media.ts        # 4 tools\n    taxonomies.ts   # 8 tools (categories + tags)\n    comments.ts     # 6 tools\n    # Extended (mcp/v1) - requires cvrt-mcp-endpoints plugin\n    mcp-plugins.ts  # 4 tools - install from WordPress.org\n    mcp-themes.ts   # 5 tools - install from WordPress.org\n    mcp-core.ts     # 6 tools - updates, cache flush\n    mcp-database.ts # 5 tools - search-replace, optimize\n    mcp-options.ts  # 5 tools - full options CRUD\n    mcp-menus.ts    # 8 tools - navigation menus\n    mcp-widgets.ts  # 8 tools - sidebar widgets\n    mcp-health.ts   # 6 tools - diagnostics, cron\n    # Pro modules (mcp/v1) - requires wp-pilot-pro\n    mcp-acf.ts      # 31 tools - ACF integration\n    mcp-woo.ts      # 42 tools - WooCommerce\n```\n\n## Multi-Site Support\n\nFor managing multiple WordPress sites, run separate MCP instances:\n\n```json\n{\n  \"mcpServers\": {\n    \"wordpress-site1\": {\n      \"command\": \"npx\",\n      \"args\": [\"@cavort-it-systems/wordpress-mcp\"],\n      \"env\": {\n        \"WORDPRESS_SITE_URL\": \"https://site1.com\",\n        \"WORDPRESS_USERNAME\": \"admin\",\n        \"WORDPRESS_PASSWORD\": \"xxxx xxxx xxxx xxxx\"\n      }\n    },\n    \"wordpress-site2\": {\n      \"command\": \"npx\",\n      \"args\": [\"@cavort-it-systems/wordpress-mcp\"],\n      \"env\": {\n        \"WORDPRESS_SITE_URL\": \"https://site2.com\",\n        \"WORDPRESS_USERNAME\": \"admin\",\n        \"WORDPRESS_PASSWORD\": \"yyyy yyyy yyyy yyyy\"\n      }\n    }\n  }\n}\n```\n\n## License\n\nMIT\n",
  "bytes": 14433,
  "sha": "aac009cb225fad90adba833f04606bd4f22a2beeac244646400af308b3097834",
  "repo_slug": "cvrt-jh/wordpress-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_cvrt_jh_wordpress_mcp_12c9055b/readme"
}