CHANGELOG-PROPOSAL.txt
2 days ago
QA-LOOP.md
2 days ago
STUDY-CONSOLIDATION.md
2 days ago
STUDY-MCP.md
2 days ago
STUDY-WORKSPACE.md
2 days ago
STUDY-WPAI-LEARNINGS.md
2 days ago
STUDY-MCP.md
130 lines
| 1 | # STUDY-MCP.md — AI Engine MCP: state, strategy, and improvement backlog |
| 2 | |
| 3 | > **Living planning doc.** MCP + chatbot/agentic is AI Engine's core focus, so this is refined |
| 4 | > incrementally: target **at least one shipped (or proposed) MCP improvement every 3–4 days, surfaced via `/pulse`**. |
| 5 | > Each pulse: pick the highest-value unchecked item that fits the available time, ship it production-safe, |
| 6 | > and append a dated line to the Progress Log. Read `STRATEGY.md` first for the broader posture. |
| 7 | |
| 8 | ## Why this matters |
| 9 | |
| 10 | WordPress is standardizing on the **Abilities API** (in core since 6.9, Feb 2026) plus the official |
| 11 | **MCP Adapter** (`wordpress/mcp-adapter`, now canonical), and **WP 7.0 ships an AI Client**. AI Engine's job |
| 12 | is to be the **safe, production-ready, extensible home for MCP on WordPress**, and to stay interoperable |
| 13 | with that core direction. |
| 14 | |
| 15 | ## Positioning (frame from strength — we are NOT a limited toolset) |
| 16 | |
| 17 | - **~90 tools** across: posts, terms, media, users, comments, options, counts, plugin management, |
| 18 | theme management (incl. file read/write/alter), Polylang, 27 WooCommerce tools, and a guarded `wp_db_query`. |
| 19 | - **Modern server**: OAuth 2.1 (PKCE + Dynamic Client Registration), bearer token, streamable HTTP, |
| 20 | `.well-known` discovery, and a WAF-aware self-test diagnostic. |
| 21 | - **Production-safe by design**: curated, capability-gated tools. No arbitrary PHP eval / arbitrary filesystem. |
| 22 | That dangerous "do anything" model is the dev-only competitor lane (e.g. Novamira), not ours. |
| 23 | |
| 24 | ## Strategic context |
| 25 | |
| 26 | - Abilities API in core (WP 6.9); `wordpress/mcp-adapter` is the canonical package (typed DTOs). WP 7.0 ships the AI Client. |
| 27 | - Competitor watch: **Novamira** — dev-only RCE MCP server, built on the Abilities API, NOT in the wp.org repo. |
| 28 | Their only real lead is Gutenberg page authoring. (See memory `reference_novamira_mcp_competitor`.) |
| 29 | - Competitor watch: **WPVibe / `vibe-ai`** — Awesome Motive (SeedProd). Cloud-RELAY MCP server: their plugin |
| 30 | ships the site's Application Password to their Cloudflare infra and all AI traffic flows through them. |
| 31 | 2k installs vs our 100k (2026-07), but the WPBeginner/SEJ/YouTuber machine plus an eventual in-admin |
| 32 | cross-promo push across the Awesome Motive family is the real threat. Their leads: near-zero-friction |
| 33 | onboarding (magic link, ~60s, works with ChatGPT), user-VISIBLE safety UX (dry-run previews, approval |
| 34 | gates, audit log), and a theme-builder demo that films well. Our counters: self-hosted (credentials never |
| 35 | leave the site, no middleman reading content), free with no monthly caps, ~90 tools vs 27, full platform. |
| 36 | (See memory `reference_wpvibe_competitor`.) |
| 37 | |
| 38 | ## Improvement backlog (pick from here each /pulse) |
| 39 | |
| 40 | ### A. Product capability — user-demanded, safe, on-brand |
| 41 | - [~] **Gutenberg block authoring** — `wp_write_blocks` IMPLEMENTED (2026-07-02) in `labs/mcp-core.php` |
| 42 | (free tier). 12 core block types (paragraph, heading, list, quote, image, buttons, group, |
| 43 | columns, separator, spacer, code, html), replace/append/prepend modes, no partial writes. |
| 44 | Design doc removed once shipped (see commit history). VALIDATED against the live WP editor on ai.nekod.net: |
| 45 | 24/24 blocks valid across all 15 core types (one fix: image figcaption class is |
| 46 | `wp-element-caption`, not `wp-block-image__caption`). Remaining: a live end-to-end MCP call to |
| 47 | confirm the write path. The #1 forum ask and Novamira's only real lead. Biggest single product win. |
| 48 | Layered plan (Novamira source read 2026-07-02, see memory `reference_novamira_mcp_competitor` for their |
| 49 | queue + hidden-editor-iframe finalizer mechanism): |
| 50 | 1. **Server-side curated core blocks** — deterministic PHP renderers for ~15 stable core blocks |
| 51 | (paragraph, heading, list, image, columns, group, buttons, cover, quote, media-text, separator, |
| 52 | spacer, table, embed, gallery). We control the exact save-output HTML per block version, so output |
| 53 | validates. Headless, production-safe, no browser step. Covers 90% of "write me a page". |
| 54 | 2. **Block patterns tools** — `wp_list_block_patterns` (registry + theme patterns) and insert-pattern |
| 55 | with text/image slot replacement. Patterns are pre-validated theme markup: instant on-brand pages, |
| 56 | zero validation risk, and it makes the THEME do the design work. Nobody ships this; cheap win. |
| 57 | 3. *(optional, later)* **Browser finalizer** for arbitrary third-party blocks, only if demand shows: |
| 58 | serialize-on-demand via an admin tab running `wp.blocks` (we already have an admin React app to |
| 59 | host it). Novamira needed this as their PRIMARY path because they refuse to curate; for us it is |
| 60 | an edge-case add-on. |
| 61 | - [ ] **MCP Skills / playbooks** — let the site owner write short markdown playbooks (stored on-site, |
| 62 | managed in settings) exposed to agents via MCP prompts/resources and auto-suggested by description. |
| 63 | Production-safe, teaches agents site conventions ("posts use this category structure", "products |
| 64 | are formatted like X"). Concept validated by Novamira's Skills; clean-room design. |
| 65 | - [x] **Block patterns tools** — DONE 2026-07-02 (free tier). `wp_list_block_patterns` (read: search/ |
| 66 | category filter, compact metadata, optional content) + `wp_insert_block_pattern` (write: |
| 67 | append/replace/prepend a registered pattern into a post). Pre-validated theme/core markup, so |
| 68 | inserting is on-brand and always editor-valid; compose a page from several patterns, then swap |
| 69 | text with `wp_alter_post`. Verified on ai.nekod.net (214 patterns; 5 sampled across categories |
| 70 | parse with 0 invalid blocks). |
| 71 | - [ ] **Global Styles / theme colors** — read/write the `wp_global_styles` entry (palette, typography, spacing) |
| 72 | without touching theme files. Answers the recurring "change my theme colors" question. |
| 73 | - [ ] **Navigation menus** — list/create/edit menus and assign to locations. |
| 74 | - [ ] **Widgets / block areas / template parts** — for "build my homepage" workflows. |
| 75 | |
| 76 | ### B. Query power — reduce risky raw-SQL fallback |
| 77 | - [ ] **Structured filters on `wp_get_posts`** — `meta_query`, `tax_query`, real `orderby`, so agents stop |
| 78 | dropping to `wp_db_query` for "products over $50, published, newest first". |
| 79 | |
| 80 | ### C. Reliability / polish — "rock-solid, well updated" |
| 81 | - [ ] **Read caps** — clamp `limit` on `wp_get_posts` / `wp_get_media` / `wp_get_users` / `wp_get_comments` |
| 82 | (Polylang already clamps to 100; core tools accept `limit: 10000`). |
| 83 | - [ ] **Token-bloat controls** — meta exclude / cap on `wp_get_post_snapshot` (the gallery problem, for meta). |
| 84 | - [ ] **Ignored-param sweep** — audit every read tool for accepted-but-silently-ignored or |
| 85 | expected-but-missing params; wire them up or document them. (This session fixed 3 such bugs.) |
| 86 | - [ ] **Bulk writes** — batch post / meta / term update (only WooCommerce has batch today). |
| 87 | - [ ] **SSE fail-fast** — when no API key is configured, SSE should error clearly instead of hanging. |
| 88 | (Largely moot once legacy SSE is removed; see memory `project_mcp_sse_removal`, ~2026-07-01.) |
| 89 | |
| 90 | ### D. Onboarding / framing |
| 91 | - [ ] **One-click `.mcpb` bundle** for Claude Desktop (removes the copy-paste step; Novamira ships this). |
| 92 | - [ ] **Auto health-check on enable** — run the self-test proactively, surface WAF / `.well-known` issues |
| 93 | before the user hits a failed connect. |
| 94 | - [ ] **Simplify auth paths** and finish the legacy SSE removal (scheduled ~2026-07-01). |
| 95 | - [ ] **Connection wizard** — a "Connect your AI" flow in the MCP settings: pick your client (Claude, |
| 96 | Claude Code, ChatGPT, Cursor), get the exact steps/URL/token for that client, run the self-test |
| 97 | inline. WPVibe's magic-link onboarding is their #1 lead; this closes most of the gap without |
| 98 | becoming a cloud middleman. |
| 99 | - [ ] **Visible safety UX** — productize what we already enforce: an opt-in "approval mode" that holds |
| 100 | destructive tool calls (delete, option writes, user changes) for one-click confirmation, and an |
| 101 | "Agent Activity" view over the existing event logs (who connected, which tools ran, what changed). |
| 102 | We ARE the production-safe option; today the user can't SEE that. WPVibe markets exactly this. |
| 103 | |
| 104 | ### E. Strategic — future-proofing |
| 105 | - [ ] **Abilities bridge** — register AI Engine's tools as core Abilities so they're discoverable by the |
| 106 | official MCP Adapter and WP 7's AI Client, while keeping our own server for curation / OAuth / WP 6.0+ |
| 107 | back-compat. This is the `/labs/wp7-integration/ |
| 108 | |
| 109 | ## Caveats |
| 110 | |
| 111 | - The tool inventory and gap list were partly sourced from exploration agents — **verify the specific |
| 112 | file/line before implementing any item**. |
| 113 | - Every change stays production-safe and backward-compatible (REST / shortcode / DB schemas are sacred). |
| 114 | |
| 115 | ## Progress log |
| 116 | |
| 117 | - **2026-06-21** — Initial study written. This session also shipped MCP fixes: `author` / `author_name` / |
| 118 | `author__not_in` filters (posts, media, comments), `content_format=prose` reads, `wp_update_option` |
| 119 | JSON-array decode, `wp_get_option` `raw` flag, and the generic `mwai_mcp_mutate` write hook. |
| 120 | - **2026-07-02** — Shipped Gutenberg authoring (`wp_write_blocks`, 12 block types, editor-validated |
| 121 | 24/24) and block patterns (`wp_list_block_patterns` + `wp_insert_block_pattern`), both free tier in |
| 122 | `labs/mcp-core.php`. This closes Novamira's one real product lead, headless and production-safe. Next: |
| 123 | live end-to-end MCP smoke test, then Global Styles / theme colors. |
| 124 | - **2026-07-02** — Competitive deep-dive (Novamira + WPVibe). Added WPVibe to the watch list and two new |
| 125 | backlog items derived from their leads: Connection wizard and Visible safety UX. Confirmed: Novamira |
| 126 | still not on wp.org (480 stars, tiny release downloads); WPVibe at 2k installs / 86 dl-day baseline vs |
| 127 | our 100k / ~2,192, but backed by Awesome Motive's marketing machine. Verdict: the fight right now is |
| 128 | narrative (share of "WordPress MCP" content), not installs. Gutenberg block authoring remains the top |
| 129 | product item — it is what both competitors' demos are made of. |
| 130 |