@efectoapp/mcp-server 0.1.22 → 0.1.24
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/README.md +7 -6
- package/dist/tools/output.d.ts.map +1 -1
- package/dist/tools/output.js +45 -8
- package/dist/tools/output.js.map +1 -1
- package/dist/tools/render.js +6 -6
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/state.d.ts +0 -5
- package/dist/tools/state.d.ts.map +1 -1
- package/dist/tools/state.js +115 -252
- package/dist/tools/state.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,8 +54,8 @@ claude mcp add efecto -- npx @efectoapp/mcp-server
|
|
|
54
54
|
8. generate_url()
|
|
55
55
|
→ Returns shareable URL like https://efecto.app/canvas?lm=1&...
|
|
56
56
|
|
|
57
|
-
9. render_image({
|
|
58
|
-
→
|
|
57
|
+
9. render_image({ savePath: "~/Downloads/cyberpunk-poster.png" })
|
|
58
|
+
→ Renders to image, saves to disk, and shows inline preview
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
## Available Tools
|
|
@@ -93,7 +93,7 @@ Create a new poster.
|
|
|
93
93
|
|
|
94
94
|
| Parameter | Type | Default | Description |
|
|
95
95
|
|-----------|------|---------|-------------|
|
|
96
|
-
| `aspectRatio` | string | `"9
|
|
96
|
+
| `aspectRatio` | string | `"16:9"` | `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"full"` |
|
|
97
97
|
| `backgroundColor` | string | `"#1a1a1a"` | Background color (hex) |
|
|
98
98
|
|
|
99
99
|
#### `set_background`
|
|
@@ -225,7 +225,7 @@ Returns a URL that opens in any browser with all effects applied.
|
|
|
225
225
|
|
|
226
226
|
#### `render_image`
|
|
227
227
|
|
|
228
|
-
Render the current poster to an image. Returns the image inline so the agent can see
|
|
228
|
+
Render the current poster to an image using local Puppeteer (free, no API key needed). Returns the image inline so the agent can see it. Optionally saves to disk.
|
|
229
229
|
|
|
230
230
|
| Parameter | Type | Default | Description |
|
|
231
231
|
|-----------|------|---------|-------------|
|
|
@@ -233,8 +233,9 @@ Render the current poster to an image. Returns the image inline so the agent can
|
|
|
233
233
|
| `width` | number | auto | Output width |
|
|
234
234
|
| `height` | number | auto | Output height |
|
|
235
235
|
| `quality` | number | 90 | JPEG/WebP quality |
|
|
236
|
+
| `savePath` | string | — | File path to save the image (e.g. `"~/Downloads/poster.png"`). If omitted, image is only returned inline. |
|
|
236
237
|
|
|
237
|
-
Returns the
|
|
238
|
+
Returns the image inline via MCP image content. If `savePath` is provided, also writes the file to disk and returns the resolved path.
|
|
238
239
|
|
|
239
240
|
## Development
|
|
240
241
|
|
|
@@ -255,7 +256,7 @@ The MCP server calls these Efecto API endpoints:
|
|
|
255
256
|
| `/api/v1/state/encode` | POST | Encode state to URL |
|
|
256
257
|
| `/api/v1/state/decode` | POST | Decode URL to state |
|
|
257
258
|
| `/api/v1/state/validate` | POST | Validate state |
|
|
258
|
-
| `/api/v1/render` | POST | Render to image |
|
|
259
|
+
| `/api/v1/render` | POST | Render to image (deprecated — use `render_image` tool instead) |
|
|
259
260
|
|
|
260
261
|
## License
|
|
261
262
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAW9D,eAAO,MAAM,WAAW,EAAE,IAAI,EAiD7B,CAAA;AAgDD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAC,CA6NtD"}
|
package/dist/tools/output.js
CHANGED
|
@@ -13,6 +13,9 @@ exports.outputTools = void 0;
|
|
|
13
13
|
exports.handleOutputTool = handleOutputTool;
|
|
14
14
|
const state_js_1 = require("./state.js");
|
|
15
15
|
const render_js_1 = require("./render.js");
|
|
16
|
+
const node_fs_1 = require("node:fs");
|
|
17
|
+
const node_path_1 = require("node:path");
|
|
18
|
+
const node_os_1 = require("node:os");
|
|
16
19
|
// Default API base URL (can be overridden via environment variable)
|
|
17
20
|
const API_BASE_URL = process.env.EFECTO_API_URL || 'https://efecto.app';
|
|
18
21
|
// Tool definitions
|
|
@@ -34,7 +37,7 @@ exports.outputTools = [
|
|
|
34
37
|
},
|
|
35
38
|
{
|
|
36
39
|
name: 'render_image',
|
|
37
|
-
description: 'Render the current poster to an image. Returns the image inline so the agent can see the rendered design.',
|
|
40
|
+
description: 'Render the current poster to an image. Returns the image inline so the agent can see the rendered design. Optionally saves to disk.',
|
|
38
41
|
inputSchema: {
|
|
39
42
|
type: 'object',
|
|
40
43
|
properties: {
|
|
@@ -57,6 +60,10 @@ exports.outputTools = [
|
|
|
57
60
|
description: 'JPEG/WebP quality (1-100)',
|
|
58
61
|
default: 90,
|
|
59
62
|
},
|
|
63
|
+
savePath: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'File path to save the rendered image (e.g. "~/Downloads/poster.png"). If omitted, image is only returned inline.',
|
|
66
|
+
},
|
|
60
67
|
},
|
|
61
68
|
required: [],
|
|
62
69
|
},
|
|
@@ -108,8 +115,12 @@ function getDefaultDimensions(aspectRatio) {
|
|
|
108
115
|
*/
|
|
109
116
|
async function handleOutputTool(name, args) {
|
|
110
117
|
const params = args || {};
|
|
111
|
-
(0, state_js_1.ensurePoster)();
|
|
112
118
|
const poster = (0, state_js_1.getCurrentState)();
|
|
119
|
+
if (!poster) {
|
|
120
|
+
return {
|
|
121
|
+
content: [{ type: 'text', text: 'Error: No poster created. Use create_poster first.' }],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
113
124
|
switch (name) {
|
|
114
125
|
case 'generate_url': {
|
|
115
126
|
const baseUrl = params.baseUrl || 'https://efecto.app';
|
|
@@ -184,6 +195,7 @@ async function handleOutputTool(name, args) {
|
|
|
184
195
|
const width = params.width || defaultDims.width;
|
|
185
196
|
const height = params.height || defaultDims.height;
|
|
186
197
|
const quality = params.quality || 90;
|
|
198
|
+
const savePath = params.savePath;
|
|
187
199
|
const state = convertToLayerShareState(poster);
|
|
188
200
|
if (!state) {
|
|
189
201
|
return {
|
|
@@ -225,6 +237,36 @@ async function handleOutputTool(name, args) {
|
|
|
225
237
|
const renderUrl = posterUrl + (posterUrl.includes('?') ? '&' : '?') + '_render=1';
|
|
226
238
|
try {
|
|
227
239
|
const result = await (0, render_js_1.renderPoster)(renderUrl, { width, height, format, quality });
|
|
240
|
+
// Step 3: Optionally save to disk
|
|
241
|
+
let filePath;
|
|
242
|
+
if (savePath) {
|
|
243
|
+
// Resolve ~ to home directory
|
|
244
|
+
let resolved = savePath.startsWith('~')
|
|
245
|
+
? (0, node_path_1.resolve)((0, node_os_1.homedir)(), savePath.slice(2))
|
|
246
|
+
: (0, node_path_1.resolve)(savePath);
|
|
247
|
+
// Auto-append extension if missing
|
|
248
|
+
const ext = (0, node_path_1.extname)(resolved).toLowerCase();
|
|
249
|
+
const expectedExt = format === 'jpeg' ? '.jpeg' : `.${format}`;
|
|
250
|
+
if (!ext || !['.png', '.jpeg', '.jpg', '.webp'].includes(ext)) {
|
|
251
|
+
resolved += expectedExt;
|
|
252
|
+
}
|
|
253
|
+
// Ensure parent directory exists
|
|
254
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(resolved), { recursive: true });
|
|
255
|
+
// Write the image
|
|
256
|
+
(0, node_fs_1.writeFileSync)(resolved, Buffer.from(result.base64, 'base64'));
|
|
257
|
+
filePath = resolved;
|
|
258
|
+
}
|
|
259
|
+
const responseInfo = {
|
|
260
|
+
success: true,
|
|
261
|
+
url: posterUrl,
|
|
262
|
+
message: filePath
|
|
263
|
+
? `Poster rendered and saved to ${filePath}. The image is also shown above.`
|
|
264
|
+
: 'Poster rendered successfully. The image is shown above. Open the URL in a browser to view interactively.',
|
|
265
|
+
renderConfig: { format, width, height, quality },
|
|
266
|
+
};
|
|
267
|
+
if (filePath) {
|
|
268
|
+
responseInfo.filePath = filePath;
|
|
269
|
+
}
|
|
228
270
|
return {
|
|
229
271
|
content: [
|
|
230
272
|
{
|
|
@@ -234,12 +276,7 @@ async function handleOutputTool(name, args) {
|
|
|
234
276
|
},
|
|
235
277
|
{
|
|
236
278
|
type: 'text',
|
|
237
|
-
text: JSON.stringify(
|
|
238
|
-
success: true,
|
|
239
|
-
url: posterUrl,
|
|
240
|
-
message: 'Poster rendered successfully. The image is shown above. Open the URL in a browser to view interactively.',
|
|
241
|
-
renderConfig: { format, width, height, quality },
|
|
242
|
-
}, null, 2),
|
|
279
|
+
text: JSON.stringify(responseInfo, null, 2),
|
|
243
280
|
},
|
|
244
281
|
],
|
|
245
282
|
};
|
package/dist/tools/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/render.js
CHANGED
|
@@ -65,9 +65,9 @@ async function getBrowser() {
|
|
|
65
65
|
'--no-sandbox',
|
|
66
66
|
'--disable-setuid-sandbox',
|
|
67
67
|
'--disable-dev-shm-usage',
|
|
68
|
-
'--disable-gpu',
|
|
69
68
|
'--disable-extensions',
|
|
70
69
|
'--no-first-run',
|
|
70
|
+
'--enable-webgl',
|
|
71
71
|
],
|
|
72
72
|
}).then(browser => {
|
|
73
73
|
browserInstance = browser;
|
|
@@ -115,24 +115,24 @@ async function renderPoster(url, options = {}) {
|
|
|
115
115
|
}
|
|
116
116
|
// Extra wait for fonts/images to settle
|
|
117
117
|
await new Promise(r => setTimeout(r, 1500));
|
|
118
|
-
//
|
|
119
|
-
// Uses string evaluation because this runs in browser context (no DOM types in Node tsconfig)
|
|
118
|
+
// Try extracting the WebGL canvas via toDataURL first (best quality for effects).
|
|
120
119
|
// Select the LAST canvas: when dither effects are active, a WebGPU overlay canvas is
|
|
121
120
|
// appended after the Three.js canvas and contains the final composited output.
|
|
121
|
+
// Uses string evaluation because this runs in browser context (no DOM types in Node tsconfig).
|
|
122
122
|
const evalScript = `(() => {
|
|
123
123
|
const canvases = document.querySelectorAll('canvas');
|
|
124
124
|
const c = canvases[canvases.length - 1];
|
|
125
125
|
if (!c) return null;
|
|
126
|
+
// Skip default-sized canvases (300x150) — they haven't been initialized
|
|
127
|
+
if (c.width <= 300 && c.height <= 150) return null;
|
|
126
128
|
try { return c.toDataURL(${JSON.stringify(mimeType)}); } catch { return null; }
|
|
127
129
|
})()`;
|
|
128
130
|
const dataUrl = await page.evaluate(evalScript);
|
|
129
131
|
if (dataUrl) {
|
|
130
|
-
// Strip the data URL prefix to get raw base64
|
|
131
132
|
const base64 = dataUrl.replace(/^data:image\/[^;]+;base64,/, '');
|
|
132
133
|
return { base64, mimeType };
|
|
133
134
|
}
|
|
134
|
-
// Fallback:
|
|
135
|
-
console.error('Canvas toDataURL failed, falling back to screenshot');
|
|
135
|
+
// Fallback: full page screenshot (captures HTML layers, text overlays, etc.)
|
|
136
136
|
const screenshotBuffer = await page.screenshot({
|
|
137
137
|
type: format === 'jpeg' ? 'jpeg' : format === 'webp' ? 'webp' : 'png',
|
|
138
138
|
...(format !== 'png' ? { quality } : {}),
|
package/dist/tools/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/tools/render.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AA6GH,oCA8DC;AAzKD,0DAAmD;AACnD,2BAA+B;AAE/B,2CAA2C;AAC3C,MAAM,YAAY,GAA6B;IAC7C,MAAM,EAAE;QACN,8DAA8D;QAC9D,4EAA4E;QAC5E,oDAAoD;KACrD;IACD,KAAK,EAAE;QACL,wBAAwB;QACxB,+BAA+B;QAC/B,2BAA2B;QAC3B,mBAAmB;KACpB;IACD,KAAK,EAAE;QACL,4DAA4D;QAC5D,kEAAkE;KACnE;CACF,CAAA;AAED;;;GAGG;AACH,SAAS,UAAU;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAE1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,OAAO,SAAS,CAAA,CAAC,yCAAyC;AAC5D,CAAC;AAED,6EAA6E;AAC7E,IAAI,eAAe,GAAmB,IAAI,CAAA;AAC1C,IAAI,aAAa,GAA4B,IAAI,CAAA;AAEjD,KAAK,UAAU,UAAU;IACvB,IAAI,eAAe,EAAE,SAAS,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,wDAAwD;IACxD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,EAAE,CAAA;IAEnC,aAAa,GAAG,mBAAS,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,IAAI;QACd,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,8EAA8E;QAC9E,IAAI,EAAE;YACJ,cAAc;YACd,0BAA0B;YAC1B,yBAAyB;YACzB,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/tools/render.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/state.d.ts
CHANGED
|
@@ -207,11 +207,6 @@ interface PosterState {
|
|
|
207
207
|
};
|
|
208
208
|
postProcesses: PostProcessInstance[];
|
|
209
209
|
}
|
|
210
|
-
/**
|
|
211
|
-
* Ensure a poster exists. Restores from persisted file if needed,
|
|
212
|
-
* or auto-creates a default poster as a last resort.
|
|
213
|
-
*/
|
|
214
|
-
export declare function ensurePoster(): PosterState;
|
|
215
210
|
export declare function resetState(): void;
|
|
216
211
|
export declare function getCurrentState(): PosterState | null;
|
|
217
212
|
export declare const stateTools: Tool[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tools/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tools/state.ts"],"names":[],"mappings":"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"}
|