@efectoapp/mcp-server 0.1.19 → 0.1.22
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 +18 -5
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +127 -0
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/images.d.ts.map +1 -1
- package/dist/tools/images.js +102 -0
- package/dist/tools/images.js.map +1 -1
- package/dist/tools/output.d.ts +1 -4
- package/dist/tools/output.d.ts.map +1 -1
- package/dist/tools/output.js +51 -64
- package/dist/tools/output.js.map +1 -1
- package/dist/tools/render.d.ts +22 -0
- package/dist/tools/render.d.ts.map +1 -0
- package/dist/tools/render.js +148 -0
- package/dist/tools/render.js.map +1 -0
- package/dist/tools/state.d.ts +91 -2
- package/dist/tools/state.d.ts.map +1 -1
- package/dist/tools/state.js +2013 -73
- package/dist/tools/state.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -53,6 +53,9 @@ claude mcp add efecto -- npx @efectoapp/mcp-server
|
|
|
53
53
|
|
|
54
54
|
8. generate_url()
|
|
55
55
|
→ Returns shareable URL like https://efecto.app/canvas?lm=1&...
|
|
56
|
+
|
|
57
|
+
9. render_image({ format: "png" })
|
|
58
|
+
→ Returns the rendered image inline (base64) so you can see it
|
|
56
59
|
```
|
|
57
60
|
|
|
58
61
|
## Available Tools
|
|
@@ -90,7 +93,7 @@ Create a new poster.
|
|
|
90
93
|
|
|
91
94
|
| Parameter | Type | Default | Description |
|
|
92
95
|
|-----------|------|---------|-------------|
|
|
93
|
-
| `aspectRatio` | string | `"16
|
|
96
|
+
| `aspectRatio` | string | `"9:16"` | `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"full"` |
|
|
94
97
|
| `backgroundColor` | string | `"#1a1a1a"` | Background color (hex) |
|
|
95
98
|
|
|
96
99
|
#### `set_background`
|
|
@@ -99,9 +102,19 @@ Set the background layer (always at index 0).
|
|
|
99
102
|
|
|
100
103
|
| Parameter | Type | Description |
|
|
101
104
|
|-----------|------|-------------|
|
|
102
|
-
| `type` | string | `"solid"` or `"
|
|
103
|
-
| `color` | string | Hex color (for solid type) |
|
|
105
|
+
| `type` | string | `"solid"`, `"gradient"`, `"image"`, or `"video"` |
|
|
106
|
+
| `color` | string | Hex color (for solid type; writes `fill` + legacy `solidColor`) |
|
|
107
|
+
| `gradientStyle` | string | `"linear"` or `"radial"` (for gradient type) |
|
|
108
|
+
| `gradientStartColor` | string | Hex start color for gradient fill |
|
|
109
|
+
| `gradientEndColor` | string | Hex end color for gradient fill |
|
|
110
|
+
| `gradientStops` | array | Optional stop list (`2-8`) with `{ color, opacity, position }`; overrides start/end |
|
|
111
|
+
| `gradientAngle` | number | Linear gradient angle in degrees (linear only) |
|
|
112
|
+
| `gradientCenterX` | number | Radial center X, `0-1` (radial only) |
|
|
113
|
+
| `gradientCenterY` | number | Radial center Y, `0-1` (radial only) |
|
|
114
|
+
| `gradientRadius` | number | Radial radius scale (radial only) |
|
|
104
115
|
| `imageUrl` | string | Image URL (for image type) |
|
|
116
|
+
| `videoUrl` | string | Video URL (for video type) |
|
|
117
|
+
| `objectFit` | string | `"cover"` or `"contain"` for image/video |
|
|
105
118
|
|
|
106
119
|
#### `add_layer`
|
|
107
120
|
|
|
@@ -212,7 +225,7 @@ Returns a URL that opens in any browser with all effects applied.
|
|
|
212
225
|
|
|
213
226
|
#### `render_image`
|
|
214
227
|
|
|
215
|
-
Render the poster to an image (
|
|
228
|
+
Render the current poster to an image. Returns the image inline so the agent can see the rendered design. Uses local Puppeteer (headless Chrome) to capture the poster.
|
|
216
229
|
|
|
217
230
|
| Parameter | Type | Default | Description |
|
|
218
231
|
|-----------|------|---------|-------------|
|
|
@@ -221,7 +234,7 @@ Render the poster to an image (async).
|
|
|
221
234
|
| `height` | number | auto | Output height |
|
|
222
235
|
| `quality` | number | 90 | JPEG/WebP quality |
|
|
223
236
|
|
|
224
|
-
Returns
|
|
237
|
+
Returns the rendered image as base64-encoded inline content, plus a shareable URL.
|
|
225
238
|
|
|
226
239
|
## Development
|
|
227
240
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAoD9D,eAAO,MAAM,cAAc,EAAE,IAAI,EAmFhC,CAAA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoM7D"}
|
package/dist/tools/discovery.js
CHANGED
|
@@ -14,6 +14,50 @@ exports.discoveryTools = void 0;
|
|
|
14
14
|
exports.handleDiscoveryTool = handleDiscoveryTool;
|
|
15
15
|
// Base URL for Efecto API
|
|
16
16
|
const API_BASE = (process.env.EFECTO_API_URL || 'https://efecto.app') + '/api/v1';
|
|
17
|
+
// Curated 3D models - embedded for offline access
|
|
18
|
+
const CURATED_3D_MODELS = [
|
|
19
|
+
// Basic Shapes (procedural)
|
|
20
|
+
{ id: 'shape-torusKnot', name: 'Torus Knot', category: 'Basic', url: 'shape:torusKnot', tags: ['knot', 'twisted', 'geometric'] },
|
|
21
|
+
{ id: 'shape-torus', name: 'Torus', category: 'Basic', url: 'shape:torus', tags: ['donut', 'ring', 'geometric'] },
|
|
22
|
+
{ id: 'shape-sphere', name: 'Sphere', category: 'Basic', url: 'shape:sphere', tags: ['ball', 'round', 'geometric'] },
|
|
23
|
+
{ id: 'shape-box', name: 'Box', category: 'Basic', url: 'shape:box', tags: ['cube', 'square', 'geometric'] },
|
|
24
|
+
{ id: 'shape-cone', name: 'Cone', category: 'Basic', url: 'shape:cone', tags: ['pyramid', 'pointed', 'geometric'] },
|
|
25
|
+
{ id: 'shape-cylinder', name: 'Cylinder', category: 'Basic', url: 'shape:cylinder', tags: ['tube', 'pillar', 'geometric'] },
|
|
26
|
+
{ id: 'shape-icosahedron', name: 'Icosahedron', category: 'Basic', url: 'shape:icosahedron', tags: ['d20', 'polyhedron', 'geometric'] },
|
|
27
|
+
{ id: 'shape-octahedron', name: 'Octahedron', category: 'Basic', url: 'shape:octahedron', tags: ['diamond', 'polyhedron', 'geometric'] },
|
|
28
|
+
{ id: 'shape-tetrahedron', name: 'Tetrahedron', category: 'Basic', url: 'shape:tetrahedron', tags: ['pyramid', 'polyhedron', 'geometric'] },
|
|
29
|
+
{ id: 'shape-dodecahedron', name: 'Dodecahedron', category: 'Basic', url: 'shape:dodecahedron', tags: ['d12', 'polyhedron', 'geometric'] },
|
|
30
|
+
// Characters (GLTF)
|
|
31
|
+
{ id: 'xbot', name: 'X Bot', category: 'Characters', url: '/models/xbot.glb', tags: ['robot', 'character', 'humanoid'] },
|
|
32
|
+
{ id: 'ybot', name: 'Y Bot', category: 'Characters', url: '/models/ybot.glb', tags: ['robot', 'character', 'humanoid'] },
|
|
33
|
+
];
|
|
34
|
+
// Sample videos - embedded for offline access
|
|
35
|
+
const SAMPLE_VIDEOS = [
|
|
36
|
+
{ name: 'Manga', url: '/assets/manga.mp4', category: 'illustration' },
|
|
37
|
+
{ name: 'Motorcycle', url: '/assets/motorcycle.mp4', category: 'scene' },
|
|
38
|
+
{ name: 'Panda', url: '/assets/panda.mp4', category: 'character' },
|
|
39
|
+
{ name: 'Beach Sunset', url: '/assets/beach-sunset.mp4', category: 'nature' },
|
|
40
|
+
{ name: 'Girl on Train', url: '/assets/girl-train.mp4', category: 'portrait' },
|
|
41
|
+
{ name: 'Vintage Car', url: '/assets/vintage-car.mp4', category: 'scene' },
|
|
42
|
+
{ name: 'Orange Cat', url: '/assets/orange-cat.mp4', category: 'character' },
|
|
43
|
+
{ name: 'Cartoon Firefighter', url: '/assets/cartoon-firefighter-in-action.mp4', category: 'character' },
|
|
44
|
+
{ name: 'Cheerful Apple Character', url: '/assets/cheerful-apple-character.mp4', category: 'character' },
|
|
45
|
+
{ name: 'Cheerful Boy', url: '/assets/cheerful-red-haired-boy.mp4', category: 'character' },
|
|
46
|
+
{ name: 'Teddy Bear', url: '/assets/cheerful-teddy-bear.mp4', category: 'character' },
|
|
47
|
+
{ name: 'Mountaineer', url: '/assets/mountaineer-character.mp4', category: 'character' },
|
|
48
|
+
{ name: 'Guitarist', url: '/assets/stylized-character-with-red-electric-guitar.mp4', category: 'character' },
|
|
49
|
+
{ name: 'Cheerful Person', url: '/assets/stylized-illustration-of-a-cheerful-person.mp4', category: 'illustration' },
|
|
50
|
+
{ name: 'Travel Trio', url: '/assets/stylized-travel-trio.mp4', category: 'illustration' },
|
|
51
|
+
{ name: 'Woman with Glasses', url: '/assets/close-up-of-young-woman-with-glasses.mp4', category: 'portrait' },
|
|
52
|
+
{ name: 'Braided Portrait', url: '/assets/serene-braided-portrait.mp4', category: 'portrait' },
|
|
53
|
+
{ name: 'Red Attire', url: '/assets/stylish-red-attire.mp4', category: 'portrait' },
|
|
54
|
+
{ name: 'Vibrant Art', url: '/assets/vibrant-portrait-art.mp4', category: 'portrait' },
|
|
55
|
+
{ name: 'Profile Duo', url: '/assets/vibrant-profile-duo.mp4', category: 'portrait' },
|
|
56
|
+
{ name: 'Beige Jumpsuit', url: '/assets/woman-in-beige-jumpsuit.mp4', category: 'portrait' },
|
|
57
|
+
{ name: 'Thoughtful Portrait', url: '/assets/thoughtful-portrait.mp4', category: 'portrait' },
|
|
58
|
+
{ name: 'Couple Illustration', url: '/assets/intimate-couple-illustration.mp4', category: 'illustration' },
|
|
59
|
+
{ name: 'Stylish Portrait', url: '/assets/stylish-portrait.mp4', category: 'portrait' },
|
|
60
|
+
];
|
|
17
61
|
// Tool definitions for discovery
|
|
18
62
|
exports.discoveryTools = [
|
|
19
63
|
{
|
|
@@ -70,6 +114,34 @@ exports.discoveryTools = [
|
|
|
70
114
|
required: [],
|
|
71
115
|
},
|
|
72
116
|
},
|
|
117
|
+
{
|
|
118
|
+
name: 'list_3d_models',
|
|
119
|
+
description: 'List all available 3D shapes and models. Includes basic shapes (sphere, torus, cube, cone, cylinder) and curated GLTF models (characters, objects). Use these with 3D layers.',
|
|
120
|
+
inputSchema: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
category: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
description: 'Filter by category: "Basic" for shapes, or specific categories like "Characters", "Objects"',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
required: [],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'list_sample_videos',
|
|
133
|
+
description: 'List available sample video clips. High-quality curated videos including portraits, characters, illustrations, and scenes. Use these URLs with set_background (type: "video") or add_layer (type: "video").',
|
|
134
|
+
inputSchema: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
category: {
|
|
138
|
+
type: 'string',
|
|
139
|
+
description: 'Filter by type: "portrait", "character", "illustration", "nature"',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
required: [],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
73
145
|
];
|
|
74
146
|
/**
|
|
75
147
|
* Handle discovery tool calls
|
|
@@ -196,6 +268,61 @@ async function handleDiscoveryTool(name, _args) {
|
|
|
196
268
|
};
|
|
197
269
|
}
|
|
198
270
|
}
|
|
271
|
+
case 'list_3d_models': {
|
|
272
|
+
const args = _args || {};
|
|
273
|
+
const category = args.category;
|
|
274
|
+
// Filter models by category if specified
|
|
275
|
+
let models = CURATED_3D_MODELS;
|
|
276
|
+
if (category) {
|
|
277
|
+
const categoryLower = category.toLowerCase();
|
|
278
|
+
models = models.filter(m => m.category.toLowerCase().includes(categoryLower));
|
|
279
|
+
}
|
|
280
|
+
// Group by category
|
|
281
|
+
const byCategory = {};
|
|
282
|
+
for (const model of models) {
|
|
283
|
+
if (!byCategory[model.category]) {
|
|
284
|
+
byCategory[model.category] = [];
|
|
285
|
+
}
|
|
286
|
+
byCategory[model.category].push(model);
|
|
287
|
+
}
|
|
288
|
+
const formatted = {
|
|
289
|
+
total: models.length,
|
|
290
|
+
categories: Object.keys(byCategory),
|
|
291
|
+
models: byCategory,
|
|
292
|
+
usage: 'For shapes, use the url directly (e.g., "shape:torusKnot"). For GLTF models, use the full path. These can be used with 3D layers.',
|
|
293
|
+
};
|
|
294
|
+
return {
|
|
295
|
+
content: [{ type: 'text', text: JSON.stringify(formatted, null, 2) }],
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
case 'list_sample_videos': {
|
|
299
|
+
const args = _args || {};
|
|
300
|
+
const category = args.category;
|
|
301
|
+
// Filter by category if specified
|
|
302
|
+
let videos = SAMPLE_VIDEOS;
|
|
303
|
+
if (category) {
|
|
304
|
+
const categoryLower = category.toLowerCase();
|
|
305
|
+
videos = videos.filter(v => v.category.toLowerCase().includes(categoryLower) ||
|
|
306
|
+
v.name.toLowerCase().includes(categoryLower));
|
|
307
|
+
}
|
|
308
|
+
// Group by category
|
|
309
|
+
const byCategory = {};
|
|
310
|
+
for (const video of videos) {
|
|
311
|
+
if (!byCategory[video.category]) {
|
|
312
|
+
byCategory[video.category] = [];
|
|
313
|
+
}
|
|
314
|
+
byCategory[video.category].push({ name: video.name, url: video.url });
|
|
315
|
+
}
|
|
316
|
+
const formatted = {
|
|
317
|
+
total: videos.length,
|
|
318
|
+
categories: [...new Set(videos.map(v => v.category))],
|
|
319
|
+
videos: byCategory,
|
|
320
|
+
usage: 'Use these URLs with set_background({ type: "video", videoUrl: "<url>" }) or add_layer({ type: "video", mediaUrl: "<url>" })',
|
|
321
|
+
};
|
|
322
|
+
return {
|
|
323
|
+
content: [{ type: 'text', text: JSON.stringify(formatted, null, 2) }],
|
|
324
|
+
};
|
|
325
|
+
}
|
|
199
326
|
default:
|
|
200
327
|
return {
|
|
201
328
|
content: [{ type: 'text', text: `Unknown discovery tool: ${name}` }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAM9D,eAAO,MAAM,UAAU,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAM9D,eAAO,MAAM,UAAU,EAAE,IAAI,EAoE5B,CAAA;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8N7D"}
|
package/dist/tools/images.js
CHANGED
|
@@ -48,6 +48,34 @@ exports.imageTools = [
|
|
|
48
48
|
required: [],
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
name: 'search_gifs',
|
|
53
|
+
description: 'Search for animated GIFs from GIPHY. Returns GIF/MP4 URLs that can be used with set_background (type: "video") or add_layer (type: "video"). Use mp4Url for better WebGL performance. Great for adding motion and energy to posters.',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
query: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Search query (e.g., "fire", "glitch", "abstract loop", "neon"). Leave empty for trending GIFs.',
|
|
60
|
+
},
|
|
61
|
+
trending: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description: 'Get trending GIFs instead of search results',
|
|
64
|
+
},
|
|
65
|
+
rating: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
enum: ['g', 'pg', 'pg-13'],
|
|
68
|
+
description: 'Content rating filter (default: pg-13)',
|
|
69
|
+
},
|
|
70
|
+
limit: {
|
|
71
|
+
type: 'number',
|
|
72
|
+
description: 'Maximum number of GIFs to return (default: 10, max: 50)',
|
|
73
|
+
default: 10,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
required: [],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
51
79
|
];
|
|
52
80
|
/**
|
|
53
81
|
* Handle image tool calls
|
|
@@ -134,6 +162,80 @@ async function handleImageTool(name, args) {
|
|
|
134
162
|
};
|
|
135
163
|
}
|
|
136
164
|
}
|
|
165
|
+
case 'search_gifs': {
|
|
166
|
+
const query = params.query || '';
|
|
167
|
+
const trending = params.trending;
|
|
168
|
+
const rating = params.rating || 'pg-13';
|
|
169
|
+
const limit = Math.min(50, Math.max(1, params.limit || 10));
|
|
170
|
+
try {
|
|
171
|
+
// Build URL with query parameters
|
|
172
|
+
const url = new URL(`${API_BASE_URL}/api/v1/gifs/search`);
|
|
173
|
+
if (query)
|
|
174
|
+
url.searchParams.set('q', query);
|
|
175
|
+
if (trending)
|
|
176
|
+
url.searchParams.set('trending', 'true');
|
|
177
|
+
url.searchParams.set('rating', rating);
|
|
178
|
+
url.searchParams.set('limit', limit.toString());
|
|
179
|
+
const response = await fetch(url.toString());
|
|
180
|
+
if (!response.ok) {
|
|
181
|
+
const errorText = await response.text();
|
|
182
|
+
return {
|
|
183
|
+
content: [
|
|
184
|
+
{
|
|
185
|
+
type: 'text',
|
|
186
|
+
text: JSON.stringify({
|
|
187
|
+
success: false,
|
|
188
|
+
error: `API error: ${response.status}`,
|
|
189
|
+
details: errorText,
|
|
190
|
+
}, null, 2),
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
const result = (await response.json());
|
|
196
|
+
// Format GIFs for easy consumption
|
|
197
|
+
const gifs = result.gifs.map((gif) => ({
|
|
198
|
+
id: gif.id,
|
|
199
|
+
url: gif.url, // GIF URL
|
|
200
|
+
mp4Url: gif.mp4Url, // MP4 URL (better for WebGL) - use this!
|
|
201
|
+
thumbnail: gif.thumbnail,
|
|
202
|
+
width: gif.width,
|
|
203
|
+
height: gif.height,
|
|
204
|
+
title: gif.title,
|
|
205
|
+
creator: gif.creator,
|
|
206
|
+
}));
|
|
207
|
+
return {
|
|
208
|
+
content: [
|
|
209
|
+
{
|
|
210
|
+
type: 'text',
|
|
211
|
+
text: JSON.stringify({
|
|
212
|
+
success: true,
|
|
213
|
+
query: query || '(trending)',
|
|
214
|
+
count: gifs.length,
|
|
215
|
+
total: result.total,
|
|
216
|
+
hasMore: result.hasMore,
|
|
217
|
+
gifs,
|
|
218
|
+
usage: 'Use the "mp4Url" field (preferred) or "url" field with set_background({ type: "video", videoUrl: "<url>" }) or add_layer({ type: "video", mediaUrl: "<url>" }).',
|
|
219
|
+
}, null, 2),
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
return {
|
|
226
|
+
content: [
|
|
227
|
+
{
|
|
228
|
+
type: 'text',
|
|
229
|
+
text: JSON.stringify({
|
|
230
|
+
success: false,
|
|
231
|
+
error: 'Failed to search GIFs',
|
|
232
|
+
details: error instanceof Error ? error.message : String(error),
|
|
233
|
+
}, null, 2),
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
}
|
|
137
239
|
default:
|
|
138
240
|
return {
|
|
139
241
|
content: [{ type: 'text', text: `Unknown image tool: ${name}` }],
|
package/dist/tools/images.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/output.d.ts
CHANGED
|
@@ -13,9 +13,6 @@ export declare const outputTools: Tool[];
|
|
|
13
13
|
* Handle output tool calls
|
|
14
14
|
*/
|
|
15
15
|
export declare function handleOutputTool(name: string, args: Record<string, unknown> | undefined): Promise<{
|
|
16
|
-
content: Array<
|
|
17
|
-
type: string;
|
|
18
|
-
text: string;
|
|
19
|
-
}>;
|
|
16
|
+
content: Array<Record<string, unknown>>;
|
|
20
17
|
}>;
|
|
21
18
|
//# sourceMappingURL=output.d.ts.map
|
|
@@ -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;AAQ9D,eAAO,MAAM,WAAW,EAAE,IAAI,EA6C7B,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,CAyLtD"}
|
package/dist/tools/output.js
CHANGED
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.outputTools = void 0;
|
|
13
13
|
exports.handleOutputTool = handleOutputTool;
|
|
14
14
|
const state_js_1 = require("./state.js");
|
|
15
|
+
const render_js_1 = require("./render.js");
|
|
15
16
|
// Default API base URL (can be overridden via environment variable)
|
|
16
17
|
const API_BASE_URL = process.env.EFECTO_API_URL || 'https://efecto.app';
|
|
17
18
|
// Tool definitions
|
|
@@ -33,7 +34,7 @@ exports.outputTools = [
|
|
|
33
34
|
},
|
|
34
35
|
{
|
|
35
36
|
name: 'render_image',
|
|
36
|
-
description: 'Render the current poster to an image.
|
|
37
|
+
description: 'Render the current poster to an image. Returns the image inline so the agent can see the rendered design.',
|
|
37
38
|
inputSchema: {
|
|
38
39
|
type: 'object',
|
|
39
40
|
properties: {
|
|
@@ -95,6 +96,8 @@ function getDefaultDimensions(aspectRatio) {
|
|
|
95
96
|
return { width: 1080, height: 1080 };
|
|
96
97
|
case '4:3':
|
|
97
98
|
return { width: 1440, height: 1080 };
|
|
99
|
+
case '3:4':
|
|
100
|
+
return { width: 1080, height: 1440 };
|
|
98
101
|
case 'full':
|
|
99
102
|
default:
|
|
100
103
|
return { width: 1920, height: 1080 };
|
|
@@ -105,12 +108,8 @@ function getDefaultDimensions(aspectRatio) {
|
|
|
105
108
|
*/
|
|
106
109
|
async function handleOutputTool(name, args) {
|
|
107
110
|
const params = args || {};
|
|
111
|
+
(0, state_js_1.ensurePoster)();
|
|
108
112
|
const poster = (0, state_js_1.getCurrentState)();
|
|
109
|
-
if (!poster) {
|
|
110
|
-
return {
|
|
111
|
-
content: [{ type: 'text', text: 'Error: No poster created. Use create_poster first.' }],
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
113
|
switch (name) {
|
|
115
114
|
case 'generate_url': {
|
|
116
115
|
const baseUrl = params.baseUrl || 'https://efecto.app';
|
|
@@ -185,91 +184,79 @@ async function handleOutputTool(name, args) {
|
|
|
185
184
|
const width = params.width || defaultDims.width;
|
|
186
185
|
const height = params.height || defaultDims.height;
|
|
187
186
|
const quality = params.quality || 90;
|
|
188
|
-
const asyncMode = params.async ?? true; // Default to async for MCP
|
|
189
187
|
const state = convertToLayerShareState(poster);
|
|
190
188
|
if (!state) {
|
|
191
189
|
return {
|
|
192
190
|
content: [{ type: 'text', text: 'Error: Failed to convert poster state' }],
|
|
193
191
|
};
|
|
194
192
|
}
|
|
193
|
+
// Step 1: Generate a shareable URL (same as generate_url)
|
|
194
|
+
let posterUrl = null;
|
|
195
|
+
const baseUrl = API_BASE_URL;
|
|
195
196
|
try {
|
|
196
|
-
|
|
197
|
-
// Sync mode returns binary which MCP cannot handle directly
|
|
198
|
-
const response = await fetch(`${API_BASE_URL}/api/v1/render`, {
|
|
197
|
+
const response = await fetch(`${API_BASE_URL}/api/v1/state/encode`, {
|
|
199
198
|
method: 'POST',
|
|
200
|
-
headers: {
|
|
201
|
-
|
|
202
|
-
},
|
|
203
|
-
body: JSON.stringify({
|
|
204
|
-
state,
|
|
205
|
-
format,
|
|
206
|
-
width,
|
|
207
|
-
height,
|
|
208
|
-
quality,
|
|
209
|
-
async: true, // Always use async for MCP to get JSON response
|
|
210
|
-
}),
|
|
199
|
+
headers: { 'Content-Type': 'application/json' },
|
|
200
|
+
body: JSON.stringify({ state, baseUrl }),
|
|
211
201
|
});
|
|
212
|
-
if (
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
let errorDetails;
|
|
216
|
-
if (contentType?.includes('application/json')) {
|
|
217
|
-
const errorJson = await response.json();
|
|
218
|
-
errorDetails = JSON.stringify(errorJson);
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
errorDetails = await response.text();
|
|
222
|
-
}
|
|
223
|
-
return {
|
|
224
|
-
content: [
|
|
225
|
-
{
|
|
226
|
-
type: 'text',
|
|
227
|
-
text: JSON.stringify({
|
|
228
|
-
success: false,
|
|
229
|
-
error: `API error: ${response.status}`,
|
|
230
|
-
details: errorDetails,
|
|
231
|
-
}, null, 2),
|
|
232
|
-
},
|
|
233
|
-
],
|
|
234
|
-
};
|
|
202
|
+
if (response.ok) {
|
|
203
|
+
const result = (await response.json());
|
|
204
|
+
posterUrl = result.url;
|
|
235
205
|
}
|
|
236
|
-
|
|
237
|
-
|
|
206
|
+
}
|
|
207
|
+
catch (encodeError) {
|
|
208
|
+
// URL generation failed, will be handled below
|
|
209
|
+
console.error('URL encode failed:', encodeError);
|
|
210
|
+
}
|
|
211
|
+
if (!posterUrl) {
|
|
212
|
+
return {
|
|
213
|
+
content: [{
|
|
214
|
+
type: 'text',
|
|
215
|
+
text: JSON.stringify({
|
|
216
|
+
success: false,
|
|
217
|
+
error: 'Failed to generate poster URL for rendering',
|
|
218
|
+
details: 'Could not encode poster state to URL. Check that the Efecto API is reachable.',
|
|
219
|
+
}, null, 2),
|
|
220
|
+
}],
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
// Step 2: Render locally via Puppeteer
|
|
224
|
+
// Append _render=1 for clean UI-free rendering
|
|
225
|
+
const renderUrl = posterUrl + (posterUrl.includes('?') ? '&' : '?') + '_render=1';
|
|
226
|
+
try {
|
|
227
|
+
const result = await (0, render_js_1.renderPoster)(renderUrl, { width, height, format, quality });
|
|
238
228
|
return {
|
|
239
229
|
content: [
|
|
230
|
+
{
|
|
231
|
+
type: 'image',
|
|
232
|
+
data: result.base64,
|
|
233
|
+
mimeType: result.mimeType,
|
|
234
|
+
},
|
|
240
235
|
{
|
|
241
236
|
type: 'text',
|
|
242
237
|
text: JSON.stringify({
|
|
243
238
|
success: true,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
statusUrl: `${API_BASE_URL}${result.statusUrl}`,
|
|
247
|
-
downloadUrl: `${API_BASE_URL}${result.downloadUrl}`,
|
|
248
|
-
message: 'Render job started. Poll the status URL to check progress, then download from downloadUrl when complete.',
|
|
239
|
+
url: posterUrl,
|
|
240
|
+
message: 'Poster rendered successfully. The image is shown above. Open the URL in a browser to view interactively.',
|
|
249
241
|
renderConfig: { format, width, height, quality },
|
|
250
242
|
}, null, 2),
|
|
251
243
|
},
|
|
252
244
|
],
|
|
253
245
|
};
|
|
254
246
|
}
|
|
255
|
-
catch (
|
|
247
|
+
catch (renderError) {
|
|
248
|
+
// Graceful degradation: return URL even if rendering fails
|
|
256
249
|
return {
|
|
257
|
-
content: [
|
|
258
|
-
{
|
|
250
|
+
content: [{
|
|
259
251
|
type: 'text',
|
|
260
252
|
text: JSON.stringify({
|
|
261
253
|
success: false,
|
|
262
|
-
error: '
|
|
263
|
-
details:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
note: 'You can manually call the API with this configuration:',
|
|
267
|
-
endpoint: `POST ${API_BASE_URL}/api/v1/render`,
|
|
268
|
-
body: { state, format, width, height, quality, async: asyncMode },
|
|
269
|
-
},
|
|
254
|
+
error: 'Rendering failed, but URL is available',
|
|
255
|
+
details: renderError instanceof Error ? renderError.message : String(renderError),
|
|
256
|
+
url: posterUrl,
|
|
257
|
+
message: 'Could not render image locally. Open the URL in a browser to see the design.',
|
|
270
258
|
}, null, 2),
|
|
271
|
-
},
|
|
272
|
-
],
|
|
259
|
+
}],
|
|
273
260
|
};
|
|
274
261
|
}
|
|
275
262
|
}
|
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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"}
|