{
  "version": "2.8.56",
  "download_url": "https://mumega.com/mcp-updates/mcpwp-2.8.56.zip",
  "requires": "5.0",
  "requires_php": "7.4",
  "tested": "6.9",
  "name": "MCPWP",
  "homepage": "https://mcpwp.net/",
  "author": "Mumega",
  "author_homepage": "https://mumega.com/",
  "changelog": "<h4>2.8.56</h4><ul><li>Fix: front-end fatal error (\"Class Spai_Elementor_Chat_Widget not found\") when Elementor initialized widgets before the chat-widget class was defined under certain plugin load orders. Widget registration is now guarded and skips safely instead of crashing the site.</li><li>Fix: capability detection now refreshes immediately when a plugin is activated or deactivated. The capabilities response (woocommerce, learnpress, etc.) was cached up to an hour, so a newly-enabled integration could report as unavailable \u2014 making connected AI agents blind to tools that were actually ready. The cache is now cleared on plugin activate/deactivate.</li></ul><h4>2.8.55</h4><ul><li>Improvement: Admin JavaScript consolidated into a single enqueued, cacheable asset \u2014 inline scripts removed from Setup, Tools, Chat, and Integrations pages; data passed via wp_localize_script.</li><li>Fix: PostHog analytics now initializes exactly once (was double-initialized on Tools and Integrations pages).</li><li>Fix: admin script now loads on every MCPWP page (Control Room and Chat previously missing it).</li><li>Security: chat history JSON data element is now tag-escaped, preventing a stored message containing markup from breaking out of the script element.</li><li>Design system: added surface/border/text and status color tokens plus a radius scale; consolidated two badge styles into one; replaced hardcoded values with tokens and status classes.</li></ul><h4>2.8.54</h4><ul><li>Improvement: Control Room \u2014 empty-state guidance, in-page section navigation, change summaries on pending approvals, and a confirm before applying changes.</li><li>Improvement: Library \u2014 design-reference form split into Required/Optional groups, consistent cards, clearer empty states.</li><li>Improvement: Integrations \u2014 upgrade link always shown on Pro cards with per-provider unlock descriptions; version pill; translatable status messages.</li><li>Accessibility: input label associations, a 1024px responsive breakpoint, fluid chat height.</li></ul><h4>2.8.53</h4><ul><li>New: Setup onboarding checklist \u2014 3-step guide (generate key \u2192 connect \u2192 first tool call) so new users always know the next step.</li><li>Improvement: Chat shows a \"connect OpenAI or Gemini\" notice when no AI provider is configured, instead of silently degrading.</li><li>Accessibility: tool toggles now show a visible keyboard focus ring (WCAG 2.1 AA).</li><li>Polish: clearer \"Update channel\" labeling; removed a stale admin template; design-system cleanups.</li></ul><h4>2.8.52</h4><ul><li>New: wp_keyword_research \u2014 keyless keyword research via Google Suggest. Expands a seed phrase into related keywords and grouped questions (long-tail terms, content ideas, SEO topic discovery). No API key required.</li></ul><h4>2.8.51</h4><ul><li>Fix: wp_bulk_find_replace no longer returns \"not found\" for searches containing HTML tags or URL slashes \u2014 the pre-check ran on raw JSON (where &lt; is stored as \\u003c and / as \\/); it now matches on the decoded element tree.</li><li>Fix: wp_bulk_find_replace no longer corrupts page structure when a search term overlaps Elementor vocabulary \u2014 structural keys (elType, widgetType, id, isInner, structure) are excluded from replacement.</li><li>Hardening: find-replace search term now requires a minimum length of 1.</li><li>Tests: added Elementor find/replace regression suite.</li></ul><h4>2.8.50</h4><ul><li>New: spai_register_tools filter \u2014 third-party plugins register MCP tools with a simple array, no PHP class required. Full dispatch, category, scope, and destructive/open_world hints supported.</li><li>Improvement: 56 tool descriptions rewritten for BM25 search accuracy \u2014 more specific verbs, synonyms, and use-case context.</li><li>Docs: openapi-chatgpt.yaml updated to v2.8.50 \u2014 adds /onboard, menus, approvals, full Elementor edit suite, /batch, and 24 other missing endpoints. 49 operations total.</li></ul><h4>2.8.49</h4><ul><li>New: Blueprint Library \u2014 wp_list_site_blueprints/wp_deploy_site_blueprint/wp_extract_site_blueprint. Deploy 5 starter site structures (law firm, restaurant, SaaS, real estate, portfolio) or save custom blueprints from your existing site.</li><li>New: Chat Excellence \u2014 multi-model routing (OpenAI GPT-4o mini, Gemini 2.5 Flash, Workers AI), SSE streaming, persistent history per user, Clear button, model indicator.</li><li>New: Destructive tool confirmation in chat \u2014 delete/rollback tools require explicit OK before executing.</li><li>New: Chat model picker in Settings.</li></ul><h4>2.8.48</h4><ul><li>New: Dynamic site memory \u2014 wp_remember/wp_recall/wp_forget/wp_list_memories. AI decisions and brand rules persist across sessions in structured namespaces.</li><li>New: Proactive site signals \u2014 wp_get_signals surfaces stale content, broken Elementor data, missing featured images, draft accumulation, plugin updates, and SEO issues without being asked.</li><li>New: Site Signals panel in Control Room with severity indicators and direct edit links.</li></ul><h4>2.8.47</h4><ul><li>New: White-label mode \u2014 agency name, logo, primary color, and chat greeting configurable in WP Admin > Settings.</li><li>New: [mcpwp_chat] shortcode renders branded floating chat widget on any page or post.</li><li>New: Elementor chat widget wrapping the shortcode (available in Elementor widget panel).</li><li>New: Agency custom hostname routing in proxy worker (CNAME ai.agency.com \u2192 proxy.mcpwp.net via KV).</li></ul><h4>2.8.46</h4><ul><li>New: AI action audit log \u2014 every write-tool call logged to DB with before/after state snapshots (EU AI Act compliance).</li><li>New: One-click rollback for post/page updates and Elementor writes in Control Room.</li><li>New: CSV export of action log for compliance reporting.</li><li>New: Configurable log retention (default 90 days, daily auto-prune).</li></ul><h4>2.8.45</h4><ul><li>New: Server-side MCP tool analytics \u2014 anonymous tool call data (tool name, success/failure, duration) sent to PostHog when enabled. Opt-in for free tier, opt-out for paid. No site content or PII collected.</li><li>New: Site support UUID in Settings page.</li><li>New: PostHog token and host configurable via WP Admin > Integrations.</li><li>Docs: Privacy section added to readme.txt per WP.org guidelines.</li></ul><h4>2.8.44</h4><ul><li>New: PostHog analytics integration \u2014 configure token via WP Admin > Integrations. Tracks 10 key admin actions (API key copy, connection test, upgrade click, key create/revoke, integration save/remove, tool toggle, client tab switch).</li><li>Fix: PostHog token no longer hardcoded \u2014 removed default public token, must be configured per-site.</li></ul><h4>2.8.43</h4><ul><li>Fix: wp_set_template_conditions accepts positional array form [\"include\",\"singular\",\"product\"] \u2014 was flattening to include>general.</li><li>Fix: wp_get_elementor_globals returns both system_typography/custom_typography and system_colors/custom_colors.</li><li>Fix: wp_upload_media_from_url now exposes filename, title, alt params in tools/list.</li><li>Fix: Elementor v4 atomic elements skip settings key validation (they use props/styles).</li><li>Fix: Form widget schema includes button color keys \u2014 removes false-positive validator warnings.</li></ul><h4>2.8.42</h4><ul><li>Fix: Theme handler corrupted entries removed \u2014 only Astra, GeneratePress, Kadence remain with accurate settings_type.</li><li>Fix: Integrations admin page JS handlers now implemented (save/remove/test connection).</li><li>Fix: version.json download_url corrected (was 404).</li><li>Polish: Admin UI inline styles extracted to CSS classes.</li></ul><h4>2.8.41</h4><ul><li>Fix: Scoped API key scope enforcement \u2014 submitted scopes now respected with role-based ceiling; non-admin roles capped at read+write.</li><li>Fix: SEO MCP tool contract \u2014 normalized title/description/canonical_url fields, bulk items alias, Google Indexing tools fixed.</li><li>New: wp_create/get/update_elementor_custom_code \u2014 Elementor Pro custom code snippets with location, conditions, and dry_run.</li></ul><h4>2.8.40</h4><ul><li>Fix: wp_validate_seo_readiness transport deserialize error on large sites \u2014 graph query reduced from 500 to 100 posts.</li><li>Fix: MCP tools/call handles json_encode failure gracefully.</li><li>Polish: MCPWP admin shell with CSS design tokens, dark product headers, shared card/badge/toggle components; admin assets load by page slug (#342, #344).</li><li>Assets: Refreshed WordPress.org banner, icon, and screenshots to MCPWP branding (#341).</li></ul><h4>2.8.38</h4><ul><li>New: wp_update_media \u2014 update alt text, title, caption, or description on existing attachments without re-uploading.</li></ul><h4>2.8.37</h4><ul><li>Fix: PHP fatal in wp_seo_audit_site and wp_validate_seo_readiness \u2014 extract_internal_links_from_content() moved to base class.</li><li>Fix: Disabled tool categories now enforced at execution time, not just discovery.</li><li>Fix: Elementor custom-code tools hidden from tools/list when Elementor Pro is not installed.</li></ul><h4>2.8.36</h4><ul><li>Fix: wp_bulk_find_replace operates on decoded element tree to prevent JSON corruption.</li><li>New: wp_get_kit_css and wp_set_kit_css for Elementor kit global CSS.</li></ul>"
}