shipshots-mcp 0.2.7 → 0.2.9
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/dist/api-client.d.ts +3 -2
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +50 -7
- package/dist/api-client.js.map +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +2 -1
- package/dist/defaults.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/batch.js +44 -44
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/duplicate.js +2 -2
- package/dist/tools/duplicate.js.map +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +60 -17
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/feedback.d.ts +4 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +32 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/layers.d.ts.map +1 -1
- package/dist/tools/layers.js +151 -131
- package/dist/tools/layers.js.map +1 -1
- package/dist/tools/project.js +1 -1
- package/dist/tools/screen.js +11 -11
- package/dist/tools/screen.js.map +1 -1
- package/dist/tools/video.d.ts.map +1 -1
- package/dist/tools/video.js +20 -20
- package/dist/tools/video.js.map +1 -1
- package/dist/types.d.ts +1 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/tools/export.js
CHANGED
|
@@ -1,19 +1,65 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export function registerExportTools(server, api) {
|
|
3
|
-
server.tool("get_screen_preview", `Get a visual preview of a screen as
|
|
3
|
+
server.tool("get_screen_preview", `Get a visual preview of a screen as a full-resolution image (1260×2736). Requires a Pro plan.
|
|
4
|
+
|
|
5
|
+
Connected screens are automatically rendered as a strip so cross-screen layers (e.g. a device bleeding across the boundary) are visible.
|
|
4
6
|
|
|
5
7
|
WORKFLOW: position layers → get_screen_preview → inspect the image → adjust → preview again.
|
|
6
8
|
This is the recommended feedback loop for iterative layout design.
|
|
7
9
|
Rate limit: 60 previews per hour. Use validate_screen (free, no rate limit) for quick layout checks without rendering.`, {
|
|
8
10
|
project_id: z.string().describe("Project ID"),
|
|
9
11
|
screen_id: z.string().describe("Screen ID to preview"),
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
])
|
|
16
|
-
|
|
12
|
+
}, async ({ project_id, screen_id }) => {
|
|
13
|
+
const project = await api.getProject(project_id);
|
|
14
|
+
// Detect if this screen is part of a connected strip
|
|
15
|
+
const screenIndex = project.screens.findIndex((s) => s.id === screen_id);
|
|
16
|
+
let stripStart = screenIndex;
|
|
17
|
+
while (stripStart > 0 && project.screens[stripStart - 1].connectedToNext) {
|
|
18
|
+
stripStart--;
|
|
19
|
+
}
|
|
20
|
+
let stripEnd = screenIndex;
|
|
21
|
+
while (stripEnd < project.screens.length - 1 && project.screens[stripEnd].connectedToNext) {
|
|
22
|
+
stripEnd++;
|
|
23
|
+
}
|
|
24
|
+
const stripScreenIds = project.screens.slice(stripStart, stripEnd + 1).map((s) => s.id);
|
|
25
|
+
const isStrip = stripScreenIds.length > 1;
|
|
26
|
+
if (isStrip) {
|
|
27
|
+
// Render the full connected strip so cross-screen layers are visible
|
|
28
|
+
const result = await api.getStripPreview(project_id, stripScreenIds);
|
|
29
|
+
const offsets = [];
|
|
30
|
+
let cumX = 0;
|
|
31
|
+
for (const sid of stripScreenIds) {
|
|
32
|
+
offsets.push(cumX);
|
|
33
|
+
cumX += project.screens.find((s) => s.id === sid)?.width ?? 0;
|
|
34
|
+
}
|
|
35
|
+
const layers = stripScreenIds.flatMap((sid, i) => {
|
|
36
|
+
const screen = project.screens.find((s) => s.id === sid);
|
|
37
|
+
return (screen?.layers ?? [])
|
|
38
|
+
.filter((l) => l.visible !== false)
|
|
39
|
+
.map((l) => ({ id: l.id, type: l.type, screen_id: sid, x: l.x + offsets[i], y: l.y, width: l.width, height: l.height }));
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
content: [
|
|
43
|
+
{
|
|
44
|
+
type: "image",
|
|
45
|
+
data: result.base64,
|
|
46
|
+
mimeType: result.mimeType,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: "text",
|
|
50
|
+
text: JSON.stringify({
|
|
51
|
+
width: result.width,
|
|
52
|
+
height: result.height,
|
|
53
|
+
screen_ids: stripScreenIds,
|
|
54
|
+
layers,
|
|
55
|
+
message: `Preview of screen "${screen_id}" as connected strip (${stripScreenIds.length} screens, ${result.width}×${result.height})`,
|
|
56
|
+
}, null, 2),
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Standalone screen — render in isolation
|
|
62
|
+
const result = await api.getScreenPreview(project_id, screen_id);
|
|
17
63
|
const screen = project.screens.find((s) => s.id === screen_id);
|
|
18
64
|
const layers = (screen?.layers ?? [])
|
|
19
65
|
.filter((l) => l.visible !== false)
|
|
@@ -30,22 +76,20 @@ Rate limit: 60 previews per hour. Use validate_screen (free, no rate limit) for
|
|
|
30
76
|
text: JSON.stringify({
|
|
31
77
|
width: result.width,
|
|
32
78
|
height: result.height,
|
|
33
|
-
scale: scale ?? 0.5,
|
|
34
79
|
layers,
|
|
35
|
-
message: `Preview of screen "${screen_id}" (${result.width}×${result.height}
|
|
80
|
+
message: `Preview of screen "${screen_id}" (${result.width}×${result.height})`,
|
|
36
81
|
}, null, 2),
|
|
37
82
|
},
|
|
38
83
|
],
|
|
39
84
|
};
|
|
40
85
|
});
|
|
41
|
-
server.tool("get_strip_preview", `Get a panoramic preview of connected screens rendered as a single wide image. Use this after connect_screens to see the cross-screen layout. Requires a Pro plan.
|
|
86
|
+
server.tool("get_strip_preview", `Get a panoramic preview of connected screens rendered as a single wide image at full resolution. Use this after connect_screens to see the cross-screen layout. Requires a Pro plan.
|
|
42
87
|
Rate limit: 60 previews per hour (shared with get_screen_preview).`, {
|
|
43
88
|
project_id: z.string().describe("Project ID"),
|
|
44
89
|
screen_ids: z.array(z.string()).min(2).describe("Ordered screen IDs to render as a strip (must be connected)"),
|
|
45
|
-
|
|
46
|
-
}, async ({ project_id, screen_ids, scale }) => {
|
|
90
|
+
}, async ({ project_id, screen_ids }) => {
|
|
47
91
|
const [result, project] = await Promise.all([
|
|
48
|
-
api.getStripPreview(project_id, screen_ids
|
|
92
|
+
api.getStripPreview(project_id, screen_ids),
|
|
49
93
|
api.getProject(project_id),
|
|
50
94
|
]);
|
|
51
95
|
const offsets = [];
|
|
@@ -75,10 +119,9 @@ Rate limit: 60 previews per hour (shared with get_screen_preview).`, {
|
|
|
75
119
|
text: JSON.stringify({
|
|
76
120
|
width: result.width,
|
|
77
121
|
height: result.height,
|
|
78
|
-
scale: scale ?? 0.5,
|
|
79
122
|
screen_ids,
|
|
80
123
|
layers,
|
|
81
|
-
message: `Strip preview (${result.width}×${result.height}
|
|
124
|
+
message: `Strip preview (${result.width}×${result.height})`,
|
|
82
125
|
}, null, 2),
|
|
83
126
|
},
|
|
84
127
|
],
|
|
@@ -154,7 +197,7 @@ For different export sizes (iPhone 6.5", iPad, etc.), use the web editor's expor
|
|
|
154
197
|
project_id: z.string().describe("Project ID"),
|
|
155
198
|
screen_id: z.string().describe("Screen ID to export"),
|
|
156
199
|
}, async ({ project_id, screen_id }) => {
|
|
157
|
-
const result = await api.getScreenPreview(project_id, screen_id
|
|
200
|
+
const result = await api.getScreenPreview(project_id, screen_id);
|
|
158
201
|
return {
|
|
159
202
|
content: [
|
|
160
203
|
{
|
package/dist/tools/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,GAAc;IACnE,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,QAiCtE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function registerFeedbackTools(server, api) {
|
|
3
|
+
server.tool("submit_feedback", "Submit feedback to the Shipshots developers. Use this to report bugs, request features, or share suggestions about the MCP tools and the Shipshots platform. Your perspective as an AI agent using these tools is especially valuable.", {
|
|
4
|
+
email: z.string().email().describe("Contact email for follow-up"),
|
|
5
|
+
category: z.enum(["bug", "feature", "question", "other"]).describe("Feedback category"),
|
|
6
|
+
message: z.string().min(1).max(5000).describe("The feedback message. Be specific — include tool names, error messages, or workflow details where relevant."),
|
|
7
|
+
}, async ({ email, category, message }) => {
|
|
8
|
+
try {
|
|
9
|
+
await api.submitFeedback(email, category, message);
|
|
10
|
+
return {
|
|
11
|
+
content: [
|
|
12
|
+
{
|
|
13
|
+
type: "text",
|
|
14
|
+
text: "Feedback submitted successfully. Thank you!",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return {
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: "text",
|
|
24
|
+
text: `Failed to submit feedback: ${err instanceof Error ? err.message : String(err)}`,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
isError: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,GAAc;IACrE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,wOAAwO,EACxO;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACjE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACvF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,6GAA6G,CAAC;KAC7J,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,6CAA6C;qBACpD;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACvF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/tools/layers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/tools/layers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CA49B1E"}
|