@noleemits/vision-builder-control-mcp 4.32.1 → 4.33.0
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.
- package/index.js +56 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Noleemits Vision Builder Control MCP Server
|
|
4
4
|
*
|
|
5
5
|
* Provides 65 tools for building and managing WordPress/Elementor sites.
|
|
6
|
+
* v4.33.0: Elementor kit layout settings (get_kit_settings, set_kit_settings) — read/write container_width, viewports, gutter.
|
|
6
7
|
* v4.15.0: Injection engine v2 — icon-list injection, unfilled slot clearing.
|
|
7
8
|
* v4.14.0: Pipeline quality fixes — smart counter parsing, post-processing, quality scores in browse, injection completeness.
|
|
8
9
|
* v4.13.0: Phase 3 DX — display_conditions, null filter fix, garbage HTML cleanup, icon key docs, auto-inject convenience docs.
|
|
@@ -104,7 +105,7 @@ process.on('SIGINT', () => {
|
|
|
104
105
|
// CONFIG
|
|
105
106
|
// ================================================================
|
|
106
107
|
|
|
107
|
-
const VERSION = '4.
|
|
108
|
+
const VERSION = '4.33.0';
|
|
108
109
|
const MIN_PLUGIN_VERSION = '4.13.0'; // Minimum WP plugin version required by this MCP server
|
|
109
110
|
|
|
110
111
|
// ================================================================
|
|
@@ -3050,6 +3051,23 @@ function getToolDefinitions() {
|
|
|
3050
3051
|
}
|
|
3051
3052
|
}
|
|
3052
3053
|
},
|
|
3054
|
+
{
|
|
3055
|
+
name: 'get_kit_settings',
|
|
3056
|
+
description: 'Read Elementor kit layout settings (container_width, viewport_md, viewport_lg, space_between_widgets, etc.) from the active kit. Slider values come back as {unit, size, sizes} objects.',
|
|
3057
|
+
inputSchema: { type: 'object', properties: {} }
|
|
3058
|
+
},
|
|
3059
|
+
{
|
|
3060
|
+
name: 'set_kit_settings',
|
|
3061
|
+
description: 'Update Elementor kit layout settings on the active kit. Pass a settings object with any whitelisted keys: container_width (px), container_width_tablet, container_width_mobile, space_between_widgets, viewport_md, viewport_lg, viewport_mobile, viewport_tablet. Slider values accept either a plain number (treated as px) or {size, unit, sizes?}. Clears Elementor CSS cache after applying. Always dry_run=true first.',
|
|
3062
|
+
inputSchema: {
|
|
3063
|
+
type: 'object',
|
|
3064
|
+
properties: {
|
|
3065
|
+
settings: { type: 'object', description: 'Map of kit setting keys to values. Numbers auto-wrap into {unit:"px", size:N} for slider keys. Example: {"container_width": 1280}' },
|
|
3066
|
+
dry_run: { type: 'boolean', description: 'Preview without saving (default: true).' }
|
|
3067
|
+
},
|
|
3068
|
+
required: ['settings']
|
|
3069
|
+
}
|
|
3070
|
+
},
|
|
3053
3071
|
{
|
|
3054
3072
|
name: 'audit_broken_images',
|
|
3055
3073
|
description: 'Scan all published posts and Elementor pages for broken images (non-200 HTTP responses). Checks <img> tags in post_content and image/image-box widgets + background images in Elementor data. Returns broken URLs with HTTP status, error details, and which posts are affected.',
|
|
@@ -5178,6 +5196,43 @@ async function handleToolCall(name, args) {
|
|
|
5178
5196
|
return ok(out);
|
|
5179
5197
|
}
|
|
5180
5198
|
|
|
5199
|
+
case 'get_kit_settings': {
|
|
5200
|
+
const r = await apiCall('/kit-settings');
|
|
5201
|
+
if (r.code || r.error) return ok(`Failed: ${r.message || r.error}`);
|
|
5202
|
+
let out = `=== ELEMENTOR KIT SETTINGS ===\nKit ID: ${r.kit_id}\n\n`;
|
|
5203
|
+
for (const [k, v] of Object.entries(r.settings || {})) {
|
|
5204
|
+
if (v === null) { out += ` ${k}: (unset)\n`; continue; }
|
|
5205
|
+
if (typeof v === 'object' && 'size' in v) {
|
|
5206
|
+
out += ` ${k}: ${v.size}${v.unit || ''}\n`;
|
|
5207
|
+
} else {
|
|
5208
|
+
out += ` ${k}: ${v}\n`;
|
|
5209
|
+
}
|
|
5210
|
+
}
|
|
5211
|
+
return ok(out);
|
|
5212
|
+
}
|
|
5213
|
+
|
|
5214
|
+
case 'set_kit_settings': {
|
|
5215
|
+
const body = { settings: args.settings || {} };
|
|
5216
|
+
if (args.dry_run !== undefined) body.dry_run = args.dry_run;
|
|
5217
|
+
const r = await apiCall('/kit-settings', 'POST', body);
|
|
5218
|
+
if (r.code || r.error) return ok(`Failed: ${r.message || r.error}`);
|
|
5219
|
+
let out = r.dry_run ? `=== SET KIT SETTINGS (DRY RUN) ===\n` : `=== SET KIT SETTINGS ===\n`;
|
|
5220
|
+
out += `Kit ID: ${r.kit_id}\n`;
|
|
5221
|
+
if (r.changes?.length) {
|
|
5222
|
+
r.changes.forEach(c => { out += ` • ${c}\n`; });
|
|
5223
|
+
} else {
|
|
5224
|
+
out += ' No changes detected.\n';
|
|
5225
|
+
}
|
|
5226
|
+
if (r.rejected && Object.keys(r.rejected).length) {
|
|
5227
|
+
out += `\nRejected:\n`;
|
|
5228
|
+
for (const [k, why] of Object.entries(r.rejected)) {
|
|
5229
|
+
out += ` ✗ ${k}: ${why}\n`;
|
|
5230
|
+
}
|
|
5231
|
+
}
|
|
5232
|
+
out += `\n${r.note}`;
|
|
5233
|
+
return ok(out);
|
|
5234
|
+
}
|
|
5235
|
+
|
|
5181
5236
|
case 'audit_broken_images': {
|
|
5182
5237
|
const params = new URLSearchParams();
|
|
5183
5238
|
if (args.page_id) params.set('page_id', args.page_id);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noleemits/vision-builder-control-mcp",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.33.0",
|
|
4
4
|
"description": "Vision Builder Control MCP server - design token-driven page builder tools for WordPress/Elementor websites",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|