Skip to content

Changelog

  • feat(auth): OAuth sign-in for claude.ai web and ChatGPT via the mumcp.com broker — end users connect by signing in instead of pasting an API key. The broker (not the site) hosts Dynamic Client Registration, consent, and token issuance; the site validates tokens via introspection. Tokens are audience-bound and capped at read/write scope — admin actions stay on the API-key path. Claude Desktop, Claude Code, Cursor, and Windsurf are unchanged.
  • feat(setup): Connections UI in WP Admin → MCPWP → Setup — one-time “Connect to mumcp.com” enrollment, plus an instant local “Disconnect” kill-switch
  • See Sign in (OAuth) and Authentication for the full flow
  • fix(seo): SEO-readiness checks no longer report a sitewide robots.txt block for sites that only disallow sub-paths (e.g. /wp-admin/, WooCommerce cart URLs) — robots.txt is now parsed by user-agent group, and a root block is only flagged on an exact Disallow: /
  • fix(seo): readiness checks (H1, word count, headings, image alts) now source from the live rendered page for template pages whose stored content is empty, instead of falsely reporting missing_h1 / thin_content
  • fix(media): wp_screenshot_url now honors an explicit save_to_media=false instead of always creating a media item when inline is off
  • feat(setup): the Setup page now clearly separates the two Claude Desktop connect methods — API key (works today, with a treat-this-link-as-a-secret warning) and OAuth sign-in (more secure, coming soon via mumcp.com)
  • fix(security): closed a content-disclosure gap where a read-scoped API key could read or enumerate non-public (draft, pending, private) content — titles, URLs, bodies, excerpts, and SEO/approval metadata — across the Elementor, blocks, pages, posts, SEO, content-graph, approvals, and signals read endpoints. Non-public content now requires write scope, enforced at a shared chokepoint so no read endpoint can reopen the gap.
  • feat: GET /openapi.json — OpenAPI 3.0 schema generated from the free-tools registry; enables ChatGPT GPT Actions and any OpenAPI consumer. Public endpoint — no API key required to read the schema.
  • fix(ux): Staging tools (wp_get_staging_info, wp_push_to_staging, wp_push_to_live, wp_get_staging_status) now appear in tools/list on all plans — non-Pro calls return a clear upgrade prompt instead of being silently absent
  • fix(ux): MCP server instructions include a Pro-features-not-active section when site is unlicensed
  • feat: Staging environment management — push between WP Engine, Kinsta, Pressable environments via MCP tools
  • feat: Approval gate on staging → live pushes — irreversible operations require human sign-off
  • Security hardening: SSRF allowlist on media import, scheme validation, per-request auth for batch sub-requests
  • wp_rendered_copy endpoint — structured visible text from live rendered pages (headings, paragraphs, buttons, alt text)
  • wp_cache_flush endpoint — flush W3TC, WP Super Cache, LiteSpeed, WP Rocket, Cloudflare cache (Pro)
  • Batch auth: X-SPAI-Batch-Sub-Request header replaced by unforgeable static property — prevents rate-limit bypass
  • require_pro() gate on all Pro REST endpoints
  • Removed hostname routing vulnerability
  • Fixed rate-limit identifier collision
  • wp_bulk_upload_media SSRF allowlist, scheme check, 20-item cap
  • cosmetic rename spai → mcpwp across codebase
  • Dual-emit webhook + MCP aliases for backward compat
  • MCP OAuth 2.1 server — connector sign-in flow
  • Agency Gateway (proxy.mcpwp.net) — one key, multiple sites
  • Security: SSRF protection, token revocation, UUID IDs, per-tenant encryption, tools/list scoping
  • 258 MCP tools across 15 categories
  • Double-gated release (correctness + adversarial review)
  • Last release under site-pilot-ai slug before mcpwp rename
  • Dual-prefix API key auth: accepts both spai_* and mcpwp_* keys during cutover
  • Freemius update hook registration fixed — plugin + update-core screens now clear stale update checks
  • CLI-safe host fallback before Freemius SDK init
  • Shared-host-safe elementor_data_base64 for WAF-protected hosts (HostGator, ModSecurity)
  • Operator admin polish: onboarding, update recovery, Library health
  • Image-based design references — store screenshots/mockups as reusable site assets
  • build_from_design_reference workflow
  • Reusable Elementor parts, page archetypes, WooCommerce product archetypes
  • Figma integration (personal token + OAuth)
  • Guided site character authoring + llms.txt output

Full changelog: CHANGELOG.md on GitHub