@wootsup/yt-builder-mcp 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +16 -15
  2. package/bin/node-floor.js +50 -23
  3. package/dist/auth.js +4 -4
  4. package/dist/auth.js.map +1 -1
  5. package/dist/cli/invocation-decision.js +1 -1
  6. package/dist/cli/invocation-decision.js.map +1 -1
  7. package/dist/clients/claude-code.js +1 -1
  8. package/dist/clients/claude-code.js.map +1 -1
  9. package/dist/clients/claude-desktop.js +1 -1
  10. package/dist/clients/claude-desktop.js.map +1 -1
  11. package/dist/clients/cline.js +1 -1
  12. package/dist/clients/cline.js.map +1 -1
  13. package/dist/clients/codex-cli.d.ts.map +1 -1
  14. package/dist/clients/codex-cli.js +12 -10
  15. package/dist/clients/codex-cli.js.map +1 -1
  16. package/dist/clients/config-file.d.ts +15 -0
  17. package/dist/clients/config-file.d.ts.map +1 -0
  18. package/dist/clients/config-file.js +86 -0
  19. package/dist/clients/config-file.js.map +1 -0
  20. package/dist/clients/continue.d.ts.map +1 -1
  21. package/dist/clients/continue.js +3 -4
  22. package/dist/clients/continue.js.map +1 -1
  23. package/dist/clients/cursor.js +1 -1
  24. package/dist/clients/cursor.js.map +1 -1
  25. package/dist/clients/gemini-cli.js +1 -1
  26. package/dist/clients/gemini-cli.js.map +1 -1
  27. package/dist/clients/index.d.ts +2 -3
  28. package/dist/clients/index.d.ts.map +1 -1
  29. package/dist/clients/index.js +3 -41
  30. package/dist/clients/index.js.map +1 -1
  31. package/dist/clients/roo-code.js +1 -1
  32. package/dist/clients/roo-code.js.map +1 -1
  33. package/dist/clients/zed.js +1 -1
  34. package/dist/clients/zed.js.map +1 -1
  35. package/dist/compat-floor.js +4 -4
  36. package/dist/compat-floor.js.map +1 -1
  37. package/dist/diagnostics/diagnose-network-error.js +1 -1
  38. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  39. package/dist/diagnostics/doctor.d.ts.map +1 -1
  40. package/dist/diagnostics/doctor.js +3 -3
  41. package/dist/diagnostics/doctor.js.map +1 -1
  42. package/dist/errors/hints.js +1 -1
  43. package/dist/errors/hints.js.map +1 -1
  44. package/dist/install-skill.d.ts.map +1 -1
  45. package/dist/install-skill.js +4 -3
  46. package/dist/install-skill.js.map +1 -1
  47. package/dist/product-name.d.ts +2 -0
  48. package/dist/product-name.d.ts.map +1 -0
  49. package/dist/product-name.js +2 -0
  50. package/dist/product-name.js.map +1 -0
  51. package/dist/server.d.ts.map +1 -1
  52. package/dist/server.js +2 -1
  53. package/dist/server.js.map +1 -1
  54. package/dist/setup/banner.d.ts.map +1 -1
  55. package/dist/setup/banner.js +2 -1
  56. package/dist/setup/banner.js.map +1 -1
  57. package/dist/setup/install-configs.d.ts.map +1 -1
  58. package/dist/setup/install-configs.js +26 -1
  59. package/dist/setup/install-configs.js.map +1 -1
  60. package/dist/setup/phases.js +3 -3
  61. package/dist/setup/phases.js.map +1 -1
  62. package/dist/setup-cli.js +4 -4
  63. package/dist/setup-prompts.js +1 -1
  64. package/dist/setup-prompts.js.map +1 -1
  65. package/dist/setup-wizard-defaults.d.ts +2 -1
  66. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  67. package/dist/setup-wizard-defaults.js +28 -18
  68. package/dist/setup-wizard-defaults.js.map +1 -1
  69. package/dist/setup-wizard-types.d.ts +2 -8
  70. package/dist/setup-wizard-types.d.ts.map +1 -1
  71. package/dist/setup-wizard-write-types.d.ts +19 -0
  72. package/dist/setup-wizard-write-types.d.ts.map +1 -0
  73. package/dist/setup-wizard-write-types.js +2 -0
  74. package/dist/setup-wizard-write-types.js.map +1 -0
  75. package/dist/sites/tools/sites-test.d.ts.map +1 -1
  76. package/dist/sites/tools/sites-test.js +2 -1
  77. package/dist/sites/tools/sites-test.js.map +1 -1
  78. package/dist/sites/tools/use-site.d.ts.map +1 -1
  79. package/dist/sites/tools/use-site.js +2 -1
  80. package/dist/sites/tools/use-site.js.map +1 -1
  81. package/dist/skill-instructions.d.ts.map +1 -1
  82. package/dist/skill-instructions.js +3 -2
  83. package/dist/skill-instructions.js.map +1 -1
  84. package/dist/skill-loader.d.ts +1 -1
  85. package/dist/skill-loader.d.ts.map +1 -1
  86. package/dist/skill-loader.js +2 -1
  87. package/dist/skill-loader.js.map +1 -1
  88. package/dist/tools/format/health-format.d.ts.map +1 -1
  89. package/dist/tools/format/health-format.js +4 -3
  90. package/dist/tools/format/health-format.js.map +1 -1
  91. package/dist/tools/health-output-schemas.d.ts +2 -0
  92. package/dist/tools/health-output-schemas.d.ts.map +1 -1
  93. package/dist/tools/health-output-schemas.js +2 -0
  94. package/dist/tools/health-output-schemas.js.map +1 -1
  95. package/dist/tools/health.js +1 -1
  96. package/dist/tools/health.js.map +1 -1
  97. package/dist/tools/library.js +1 -1
  98. package/dist/tools/library.js.map +1 -1
  99. package/dist/tools/pool-resolve-helper.js +2 -2
  100. package/dist/tools/pool-resolve-helper.js.map +1 -1
  101. package/dist/uninstall-skill.d.ts.map +1 -1
  102. package/dist/uninstall-skill.js +3 -1
  103. package/dist/uninstall-skill.js.map +1 -1
  104. package/manifest.json +5 -9
  105. package/package.json +5 -10
  106. package/skills/yt-builder-mcp/SKILL.md +20 -20
package/package.json CHANGED
@@ -1,17 +1,12 @@
1
1
  {
2
2
  "name": "@wootsup/yt-builder-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
4
  "type": "module",
5
- "description": "YT Builder MCP — drive your page builder from Claude, Cursor, Codex, Gemini and 5 other MCP-capable AI assistants. Built for YOOtheme Pro 4.0+. Independent third-party project, not affiliated with YOOtheme GmbH.",
5
+ "description": "MCP for YOOtheme Pro — drive your page builder from Claude, Cursor, Codex, Gemini and 5 other MCP-capable AI assistants. Built for YOOtheme Pro 4.0+. Independent third-party project, not affiliated with YOOtheme GmbH.",
6
6
  "license": "MIT",
7
7
  "author": "WootsUp <hello@wootsup.com>",
8
8
  "homepage": "https://wootsup.com",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/wootsup/yt-builder-mcp.git",
12
- "directory": "packages/mcp"
13
- },
14
- "bugs": "https://github.com/wootsup/yt-builder-mcp/issues",
9
+ "bugs": "https://wootsup.com/contact/",
15
10
  "keywords": [
16
11
  "mcp",
17
12
  "model-context-protocol",
@@ -45,10 +40,10 @@
45
40
  "access": "public"
46
41
  },
47
42
  "engines": {
48
- "node": ">=20.13.0"
43
+ "node": ">=22.15.0"
49
44
  },
50
45
  "scripts": {
51
- "prepublishOnly": "node -e \"if (process.env.RELEASE_PHP_PUBLISH !== '1') { console.error('Manual npm publish is no longer supported. Use: php scripts/release.php release yt-builder-mcp <bump> followed by php scripts/release.php push-tag yt-builder-mcp <version>, which triggers the GitHub Actions publish workflow (.github/workflows/yt-builder-mcp-publish.yml). Set RELEASE_PHP_PUBLISH=1 only if you know you are running from that workflow.'); process.exit(1); }\" && node ./scripts/prepublish-floor-check.mjs",
46
+ "prepublishOnly": "node -e \"if (process.env.RELEASE_PHP_PUBLISH !== '1') { console.error('Manual npm publish is no longer supported. Use: php scripts/release.php release yt-builder-mcp <bump> followed by php scripts/release.php push-tag yt-builder-mcp <version>, which triggers the automated publish workflow. Set RELEASE_PHP_PUBLISH=1 only if you know you are running from that workflow.'); process.exit(1); }\" && node ./scripts/prepublish-floor-check.mjs",
52
47
  "build": "tsc",
53
48
  "dev": "tsc --watch",
54
49
  "test": "vitest run",
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: yt-builder-mcp
3
- description: Drive the YOOtheme Pro Page Builder on WordPress or Joomla 5/6. Discover pages, inspect layouts, add/move/clone/delete elements, bind dynamic sources, diagnose 401/403 auth failures. Use when the user works with a YOOtheme Pro site via the YT Builder MCP server.
3
+ description: Drive the YOOtheme Pro Page Builder on WordPress or Joomla 5/6. Discover pages, inspect layouts, add/move/clone/delete elements, bind dynamic sources, diagnose 401/403 auth failures. Use when the user works with a YOOtheme Pro site via the MCP for YOOtheme Pro server.
4
4
  ---
5
5
 
6
- # YT Builder MCP for YOOtheme Pro (unofficial). Skill
6
+ # MCP for YOOtheme Pro. Skill
7
7
 
8
8
  > Independent third-party project. YOOtheme® is a registered trademark of YOOtheme GmbH
9
- > ([yootheme.com](https://yootheme.com)). YT Builder MCP is built by WootsUp (getimo
9
+ > ([yootheme.com](https://yootheme.com)). MCP for YOOtheme Pro is built by WootsUp (getimo
10
10
  > productions) and is not affiliated with, endorsed by, or sponsored by YOOtheme.
11
11
  > The integration uses YOOtheme Pro's public extension points and works on both
12
12
  > WordPress and Joomla 5/6.
@@ -22,10 +22,10 @@ tools reachable through the gateways. The write-capable
22
22
  (inspect_sublayout, layout_query, local_content_types,
23
23
  local_content_read, pages_audit, heading_outline, navigation) and is itself
24
24
  read-only-annotated, so MCP hosts can auto-allow pure inspection without a
25
- per-call write-approval prompt. This 3-lane split exists because Cursor (and
26
- similar hosts) cap a server at roughly 40 first-class `tools/list` entries
27
- it keeps the advertised surface small while every catalogued tool stays
28
- fully reachable through the gateways.
25
+ per-call write-approval prompt. The 3-lane split keeps the advertised
26
+ surface smaller than the reachable one, which matters for AI clients that
27
+ handle long tool lists poorly; every catalogued tool stays fully reachable
28
+ through the gateways either way.
29
29
 
30
30
  ## How to use this MCP server
31
31
 
@@ -37,10 +37,10 @@ Joomla 5/6 host plugin:
37
37
  1. The user installs the host plugin for their CMS:
38
38
  - **WordPress**. Install the `yt-builder-mcp` plugin (download + install guide
39
39
  at [wootsup.com/docs](https://wootsup.com/docs/mcp/yootheme-wordpress/installation))
40
- and generate a Bearer key in **wp-admin → Tools → "YT Builder MCP" → Bearer Keys**.
40
+ and generate a Bearer key in **wp-admin → Tools → "MCP for YOOtheme Pro" → Bearer Keys**.
41
41
  - **Joomla 5/6**. Install the `yt-builder-mcp` package (download + install guide
42
42
  at [wootsup.com/docs](https://wootsup.com/docs/mcp/yootheme-joomla/installation))
43
- and generate a Bearer key in **Components → YT Builder MCP → Bearer Keys**. The package
43
+ and generate a Bearer key in **Components → MCP for YOOtheme Pro → Bearer Keys**. The package
44
44
  installs three sub-extensions (system plugin, webservices plugin, component).
45
45
  2. The user runs `npx -y @wootsup/yt-builder-mcp setup` once; the wizard probes
46
46
  the host plugin, validates the key, and writes the MCP server entry into every
@@ -53,14 +53,14 @@ Joomla 5/6 host plugin:
53
53
  ### Two picker entries (activate both)
54
54
 
55
55
  Some clients (notably Claude Desktop with the `.mcpb` bundle) expose **two**
56
- entries when the user types "YT Builder MCP" into the picker:
56
+ entries when the user types "MCP for YOOtheme Pro" into the picker:
57
57
 
58
- - **`YT Builder MCP for YOOtheme Pro (unofficial)`**: the MCP **server**.
58
+ - **`MCP for YOOtheme Pro`**: the MCP **server**.
59
59
  Provides the 49 first-class tools (45 essential, 2 direct, 2 gateways).
60
60
  The `yootheme_builder_advanced` gateway routes all 13 advanced tools; the
61
61
  read-only `yootheme_builder_advanced_read` gateway routes the read-only
62
62
  subset without a write-approval prompt.
63
- - **`Von YT Builder MCP for YOOtheme Pro`**: the bundled **skill** (this
63
+ - **`Von MCP for YOOtheme Pro`**: the bundled **skill** (this
64
64
  document). Gives the agent the workflow knowledge needed to drive those
65
65
  tools correctly on first try.
66
66
 
@@ -637,7 +637,7 @@ Do not loop on auth errors.
637
637
 
638
638
  > **Joomla note.** On the Joomla API surface (`com_api`), the Bearer token's
639
639
  > scope is the **sole** authority. The L2 article-write `core.edit` ACL gate
640
- > was intentionally removed (see ADR at https://github.com/wootsup/yt-builder-mcp/blob/main/docs/adr/2026-05-24-l2-bearer-as-authority.md).
640
+ > was intentionally removed.
641
641
  > Joomla ACL still governs the admin component (`com_ytbmcp`). On WordPress,
642
642
  > capabilities like `manage_options` gate the admin settings page only; the
643
643
  > REST API surface is Bearer-gated.
@@ -2497,9 +2497,9 @@ guessing, and without rotating the user's key unnecessarily.
2497
2497
  2. **Interpret the result:**
2498
2498
  - **The call itself failed** (a transport error, not a payload) → the
2499
2499
  WordPress / Joomla install is down OR the host plugin is deactivated.
2500
- Send the user to **wp-admin → Plugins → activate "YT Builder MCP"**
2500
+ Send the user to **wp-admin → Plugins → activate "MCP for YOOtheme Pro"**
2501
2501
  (WordPress) or **Joomla administrator → Extensions → Plugins → enable
2502
- "System - YT Builder MCP" and the matching webservices + component
2502
+ "System - MCP for YOOtheme Pro" and the matching webservices + component
2503
2503
  entries** (Joomla). Do not retry until they confirm.
2504
2504
  - `auth_bound: false` → the Bearer key is wrong (typo, revoked, or wrong
2505
2505
  key for this install). Check `site_url` first: a key that is valid
@@ -2508,10 +2508,10 @@ guessing, and without rotating the user's key unnecessarily.
2508
2508
  probes `/etag` itself and answers `bearer_valid` + `summary`; diagnose
2509
2509
  names no status of its own, because the request it is answering already
2510
2510
  got through. Then send the user to:
2511
- - **WordPress:** wp-admin → Tools → "YT Builder MCP" → Bearer Keys
2511
+ - **WordPress:** wp-admin → Tools → "MCP for YOOtheme Pro" → Bearer Keys
2512
2512
  → copy the existing key into their MCP client config, or
2513
2513
  generate a new one.
2514
- - **Joomla:** Components → YT Builder MCP → Bearer Keys → same.
2514
+ - **Joomla:** Components → MCP for YOOtheme Pro → Bearer Keys → same.
2515
2515
  - `auth_bound: true, etag_ok: true` but the original
2516
2516
  tool returned a 403 → the key works but the scope is too low for
2517
2517
  the tool's required scope (`write` for mutations, `admin` for
@@ -2526,8 +2526,8 @@ guessing, and without rotating the user's key unnecessarily.
2526
2526
  rights, or grant that user the capability. A write-scoped token
2527
2527
  alone is not enough.
2528
2528
  3. **Walk the user through key rotation if needed:**
2529
- - WordPress: "wp-admin → Tools → YT Builder MCP → Bearer Keys."
2530
- Joomla: "Components → YT Builder MCP → Bearer Keys."
2529
+ - WordPress: "wp-admin → Tools → MCP for YOOtheme Pro → Bearer Keys."
2530
+ Joomla: "Components → MCP for YOOtheme Pro → Bearer Keys."
2531
2531
  - "Click 'Generate New Key', pick the scope (admin for full access)."
2532
2532
  - "Copy the key. It's shown ONCE; you cannot recover it later."
2533
2533
  - "Update your AI client config: replace `YTB_MCP_BEARER_TOKEN`
@@ -2574,7 +2574,7 @@ yootheme_builder_diagnose({})
2574
2574
  // site_url: "https://example.com", // ← check this FIRST: right key, wrong install?
2575
2575
  // active_site: { site_id: "default", via: "registry_default", process_scoped: true }
2576
2576
  // }
2577
- // → diagnosis: rotate the key. Send user to Tools/Components → YT Builder MCP.
2577
+ // → diagnosis: rotate the key. Send user to Tools/Components → MCP for YOOtheme Pro.
2578
2578
  // → for the upstream HTTP status: yootheme_builder_sites_test({ site_id: "default" }).
2579
2579
  ```
2580
2580