muse-app-preview-mcp 1.0.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/README.md +58 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +464 -0
- package/dist/index.js.map +1 -0
- package/package.json +42 -0
package/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# MUSE App Preview MCP
|
|
2
|
+
|
|
3
|
+
MCP server for managing app store preview screenshots with MUSE Preview Maker.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **add_preview** - Add screenshot + title + subtitle as a preview set
|
|
8
|
+
- **list_previews** - List all saved preview sets
|
|
9
|
+
- **remove_preview** - Remove a specific preview
|
|
10
|
+
- **update_preview** - Update an existing preview
|
|
11
|
+
- **clear_all** - Clear all previews
|
|
12
|
+
- **open_app** - Open MUSE Preview Maker app
|
|
13
|
+
- **generate_previews** - Generate all preview images
|
|
14
|
+
- **get_settings** / **update_settings** - Manage default settings
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Using Claude Code
|
|
20
|
+
claude mcp add muse-app-preview-mcp npx muse-app-preview-mcp
|
|
21
|
+
|
|
22
|
+
# Or install globally
|
|
23
|
+
npm install -g muse-app-preview-mcp
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
### Add Preview Sets
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Use add_preview tool:
|
|
32
|
+
- screenshotPath: "/path/to/screenshot.png"
|
|
33
|
+
- title: "Amazing Feature"
|
|
34
|
+
- subtitle: "Discover new possibilities"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Generate Previews
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Use generate_previews tool to create all preview images.
|
|
41
|
+
The MUSE Preview Maker app will open and process all saved sets.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
1. While developing an app, capture screenshots
|
|
47
|
+
2. Use `add_preview` to save each screenshot with title/subtitle
|
|
48
|
+
3. Repeat for all preview screens
|
|
49
|
+
4. Use `generate_previews` to create all App Store preview images
|
|
50
|
+
|
|
51
|
+
## Requirements
|
|
52
|
+
|
|
53
|
+
- Node.js 18+
|
|
54
|
+
- MUSE Preview Maker app (macOS/iOS)
|
|
55
|
+
|
|
56
|
+
## License
|
|
57
|
+
|
|
58
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
+
import * as fs from "fs";
|
|
6
|
+
import * as path from "path";
|
|
7
|
+
import { exec } from "child_process";
|
|
8
|
+
import { promisify } from "util";
|
|
9
|
+
const execAsync = promisify(exec);
|
|
10
|
+
// Storage path
|
|
11
|
+
const STORE_PATH = path.join(process.env.HOME || "~", ".muse-app-preview", "previews.json");
|
|
12
|
+
const APP_BUNDLE_ID = "musepreviewmaker.loro";
|
|
13
|
+
// Ensure storage directory exists
|
|
14
|
+
function ensureStorageDir() {
|
|
15
|
+
const dir = path.dirname(STORE_PATH);
|
|
16
|
+
if (!fs.existsSync(dir)) {
|
|
17
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Load preview store
|
|
21
|
+
function loadStore() {
|
|
22
|
+
ensureStorageDir();
|
|
23
|
+
if (fs.existsSync(STORE_PATH)) {
|
|
24
|
+
const data = fs.readFileSync(STORE_PATH, "utf-8");
|
|
25
|
+
return JSON.parse(data);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
previews: [],
|
|
29
|
+
settings: {
|
|
30
|
+
defaultDeviceType: "iphone_6_7",
|
|
31
|
+
defaultPaletteId: "ocean",
|
|
32
|
+
outputDirectory: path.join(process.env.HOME || "~", "Desktop", "Previews"),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Save preview store
|
|
37
|
+
function saveStore(store) {
|
|
38
|
+
ensureStorageDir();
|
|
39
|
+
fs.writeFileSync(STORE_PATH, JSON.stringify(store, null, 2));
|
|
40
|
+
}
|
|
41
|
+
// Generate unique ID
|
|
42
|
+
function generateId() {
|
|
43
|
+
return `preview_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
44
|
+
}
|
|
45
|
+
// Tool definitions
|
|
46
|
+
const tools = [
|
|
47
|
+
{
|
|
48
|
+
name: "add_preview",
|
|
49
|
+
description: "Add a new preview set with screenshot, title, and subtitle. The screenshot will be used to generate an app store preview image.",
|
|
50
|
+
inputSchema: {
|
|
51
|
+
type: "object",
|
|
52
|
+
properties: {
|
|
53
|
+
screenshotPath: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Absolute path to the screenshot image file",
|
|
56
|
+
},
|
|
57
|
+
title: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Main title text for the preview (e.g., 'Amazing Feature')",
|
|
60
|
+
},
|
|
61
|
+
subtitle: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "Subtitle text for the preview (e.g., 'Discover new possibilities')",
|
|
64
|
+
},
|
|
65
|
+
deviceType: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "Device type (iphone_6_7, iphone_6_5, ipad_12_9, etc.). Optional.",
|
|
68
|
+
},
|
|
69
|
+
paletteId: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "Color palette ID (ocean, sunset, forest, etc.). Optional.",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
required: ["screenshotPath", "title", "subtitle"],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "list_previews",
|
|
79
|
+
description: "List all saved preview sets with their details.",
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: "object",
|
|
82
|
+
properties: {},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: "remove_preview",
|
|
87
|
+
description: "Remove a specific preview set by its ID.",
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: "object",
|
|
90
|
+
properties: {
|
|
91
|
+
id: {
|
|
92
|
+
type: "string",
|
|
93
|
+
description: "The ID of the preview to remove",
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
required: ["id"],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "update_preview",
|
|
101
|
+
description: "Update an existing preview set.",
|
|
102
|
+
inputSchema: {
|
|
103
|
+
type: "object",
|
|
104
|
+
properties: {
|
|
105
|
+
id: {
|
|
106
|
+
type: "string",
|
|
107
|
+
description: "The ID of the preview to update",
|
|
108
|
+
},
|
|
109
|
+
title: {
|
|
110
|
+
type: "string",
|
|
111
|
+
description: "New title (optional)",
|
|
112
|
+
},
|
|
113
|
+
subtitle: {
|
|
114
|
+
type: "string",
|
|
115
|
+
description: "New subtitle (optional)",
|
|
116
|
+
},
|
|
117
|
+
screenshotPath: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "New screenshot path (optional)",
|
|
120
|
+
},
|
|
121
|
+
deviceType: {
|
|
122
|
+
type: "string",
|
|
123
|
+
description: "New device type (optional)",
|
|
124
|
+
},
|
|
125
|
+
paletteId: {
|
|
126
|
+
type: "string",
|
|
127
|
+
description: "New palette ID (optional)",
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
required: ["id"],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "clear_all",
|
|
135
|
+
description: "Clear all saved preview sets.",
|
|
136
|
+
inputSchema: {
|
|
137
|
+
type: "object",
|
|
138
|
+
properties: {
|
|
139
|
+
confirm: {
|
|
140
|
+
type: "boolean",
|
|
141
|
+
description: "Must be true to confirm clearing all previews",
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
required: ["confirm"],
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: "open_app",
|
|
149
|
+
description: "Open MUSE Preview Maker app. If previews are saved, they will be loaded automatically.",
|
|
150
|
+
inputSchema: {
|
|
151
|
+
type: "object",
|
|
152
|
+
properties: {},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "generate_previews",
|
|
157
|
+
description: "Generate all preview images using MUSE Preview Maker. The app will process all saved preview sets and export them.",
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: "object",
|
|
160
|
+
properties: {
|
|
161
|
+
outputDirectory: {
|
|
162
|
+
type: "string",
|
|
163
|
+
description: "Directory to save generated previews. Optional.",
|
|
164
|
+
},
|
|
165
|
+
exportAllSizes: {
|
|
166
|
+
type: "boolean",
|
|
167
|
+
description: "Export all device sizes for each preview. Default: false.",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: "get_settings",
|
|
174
|
+
description: "Get current settings (default device type, palette, output directory).",
|
|
175
|
+
inputSchema: {
|
|
176
|
+
type: "object",
|
|
177
|
+
properties: {},
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: "update_settings",
|
|
182
|
+
description: "Update default settings.",
|
|
183
|
+
inputSchema: {
|
|
184
|
+
type: "object",
|
|
185
|
+
properties: {
|
|
186
|
+
defaultDeviceType: {
|
|
187
|
+
type: "string",
|
|
188
|
+
description: "Default device type for new previews",
|
|
189
|
+
},
|
|
190
|
+
defaultPaletteId: {
|
|
191
|
+
type: "string",
|
|
192
|
+
description: "Default color palette for new previews",
|
|
193
|
+
},
|
|
194
|
+
outputDirectory: {
|
|
195
|
+
type: "string",
|
|
196
|
+
description: "Default output directory for generated previews",
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
// Tool handlers
|
|
203
|
+
async function handleAddPreview(args) {
|
|
204
|
+
// Validate screenshot exists
|
|
205
|
+
if (!fs.existsSync(args.screenshotPath)) {
|
|
206
|
+
return JSON.stringify({
|
|
207
|
+
success: false,
|
|
208
|
+
error: `Screenshot not found: ${args.screenshotPath}`,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
const store = loadStore();
|
|
212
|
+
const preview = {
|
|
213
|
+
id: generateId(),
|
|
214
|
+
screenshotPath: args.screenshotPath,
|
|
215
|
+
title: args.title,
|
|
216
|
+
subtitle: args.subtitle,
|
|
217
|
+
deviceType: args.deviceType || store.settings.defaultDeviceType,
|
|
218
|
+
paletteId: args.paletteId || store.settings.defaultPaletteId,
|
|
219
|
+
createdAt: new Date().toISOString(),
|
|
220
|
+
};
|
|
221
|
+
store.previews.push(preview);
|
|
222
|
+
saveStore(store);
|
|
223
|
+
return JSON.stringify({
|
|
224
|
+
success: true,
|
|
225
|
+
message: `Preview added successfully`,
|
|
226
|
+
preview: preview,
|
|
227
|
+
totalPreviews: store.previews.length,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
async function handleListPreviews() {
|
|
231
|
+
const store = loadStore();
|
|
232
|
+
return JSON.stringify({
|
|
233
|
+
success: true,
|
|
234
|
+
count: store.previews.length,
|
|
235
|
+
previews: store.previews.map((p, index) => ({
|
|
236
|
+
index: index + 1,
|
|
237
|
+
id: p.id,
|
|
238
|
+
title: p.title,
|
|
239
|
+
subtitle: p.subtitle,
|
|
240
|
+
screenshotPath: p.screenshotPath,
|
|
241
|
+
deviceType: p.deviceType,
|
|
242
|
+
paletteId: p.paletteId,
|
|
243
|
+
createdAt: p.createdAt,
|
|
244
|
+
})),
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
async function handleRemovePreview(args) {
|
|
248
|
+
const store = loadStore();
|
|
249
|
+
const index = store.previews.findIndex((p) => p.id === args.id);
|
|
250
|
+
if (index === -1) {
|
|
251
|
+
return JSON.stringify({
|
|
252
|
+
success: false,
|
|
253
|
+
error: `Preview not found: ${args.id}`,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
const removed = store.previews.splice(index, 1)[0];
|
|
257
|
+
saveStore(store);
|
|
258
|
+
return JSON.stringify({
|
|
259
|
+
success: true,
|
|
260
|
+
message: `Preview removed`,
|
|
261
|
+
removed: removed,
|
|
262
|
+
remainingPreviews: store.previews.length,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
async function handleUpdatePreview(args) {
|
|
266
|
+
const store = loadStore();
|
|
267
|
+
const preview = store.previews.find((p) => p.id === args.id);
|
|
268
|
+
if (!preview) {
|
|
269
|
+
return JSON.stringify({
|
|
270
|
+
success: false,
|
|
271
|
+
error: `Preview not found: ${args.id}`,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
if (args.title)
|
|
275
|
+
preview.title = args.title;
|
|
276
|
+
if (args.subtitle)
|
|
277
|
+
preview.subtitle = args.subtitle;
|
|
278
|
+
if (args.screenshotPath) {
|
|
279
|
+
if (!fs.existsSync(args.screenshotPath)) {
|
|
280
|
+
return JSON.stringify({
|
|
281
|
+
success: false,
|
|
282
|
+
error: `Screenshot not found: ${args.screenshotPath}`,
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
preview.screenshotPath = args.screenshotPath;
|
|
286
|
+
}
|
|
287
|
+
if (args.deviceType)
|
|
288
|
+
preview.deviceType = args.deviceType;
|
|
289
|
+
if (args.paletteId)
|
|
290
|
+
preview.paletteId = args.paletteId;
|
|
291
|
+
saveStore(store);
|
|
292
|
+
return JSON.stringify({
|
|
293
|
+
success: true,
|
|
294
|
+
message: `Preview updated`,
|
|
295
|
+
preview: preview,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
async function handleClearAll(args) {
|
|
299
|
+
if (!args.confirm) {
|
|
300
|
+
return JSON.stringify({
|
|
301
|
+
success: false,
|
|
302
|
+
error: "Please set confirm: true to clear all previews",
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
const store = loadStore();
|
|
306
|
+
const count = store.previews.length;
|
|
307
|
+
store.previews = [];
|
|
308
|
+
saveStore(store);
|
|
309
|
+
return JSON.stringify({
|
|
310
|
+
success: true,
|
|
311
|
+
message: `Cleared ${count} preview(s)`,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
async function handleOpenApp() {
|
|
315
|
+
try {
|
|
316
|
+
// Export previews for the app to load
|
|
317
|
+
const store = loadStore();
|
|
318
|
+
const exportPath = path.join(process.env.HOME || "~", ".muse-app-preview", "pending-previews.json");
|
|
319
|
+
fs.writeFileSync(exportPath, JSON.stringify(store.previews, null, 2));
|
|
320
|
+
// Try to open the app
|
|
321
|
+
await execAsync(`open -b ${APP_BUNDLE_ID}`);
|
|
322
|
+
return JSON.stringify({
|
|
323
|
+
success: true,
|
|
324
|
+
message: "MUSE Preview Maker opened",
|
|
325
|
+
previewsLoaded: store.previews.length,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
return JSON.stringify({
|
|
330
|
+
success: false,
|
|
331
|
+
error: `Failed to open app: ${error}`,
|
|
332
|
+
hint: "Make sure MUSE Preview Maker is installed",
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
async function handleGeneratePreviews(args) {
|
|
337
|
+
const store = loadStore();
|
|
338
|
+
if (store.previews.length === 0) {
|
|
339
|
+
return JSON.stringify({
|
|
340
|
+
success: false,
|
|
341
|
+
error: "No previews to generate. Add some previews first.",
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
const outputDir = args.outputDirectory || store.settings.outputDirectory;
|
|
345
|
+
// Ensure output directory exists
|
|
346
|
+
if (!fs.existsSync(outputDir)) {
|
|
347
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
348
|
+
}
|
|
349
|
+
// Export previews for the app
|
|
350
|
+
const exportPath = path.join(process.env.HOME || "~", ".muse-app-preview", "pending-previews.json");
|
|
351
|
+
const exportData = {
|
|
352
|
+
previews: store.previews,
|
|
353
|
+
options: {
|
|
354
|
+
outputDirectory: outputDir,
|
|
355
|
+
exportAllSizes: args.exportAllSizes || false,
|
|
356
|
+
autoGenerate: true,
|
|
357
|
+
},
|
|
358
|
+
};
|
|
359
|
+
fs.writeFileSync(exportPath, JSON.stringify(exportData, null, 2));
|
|
360
|
+
try {
|
|
361
|
+
// Open the app with generate flag
|
|
362
|
+
await execAsync(`open -b ${APP_BUNDLE_ID} --args --generate`);
|
|
363
|
+
return JSON.stringify({
|
|
364
|
+
success: true,
|
|
365
|
+
message: `Generation started for ${store.previews.length} preview(s)`,
|
|
366
|
+
outputDirectory: outputDir,
|
|
367
|
+
previews: store.previews.map((p) => ({
|
|
368
|
+
title: p.title,
|
|
369
|
+
subtitle: p.subtitle,
|
|
370
|
+
})),
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
return JSON.stringify({
|
|
375
|
+
success: false,
|
|
376
|
+
error: `Failed to start generation: ${error}`,
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
async function handleGetSettings() {
|
|
381
|
+
const store = loadStore();
|
|
382
|
+
return JSON.stringify({
|
|
383
|
+
success: true,
|
|
384
|
+
settings: store.settings,
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
async function handleUpdateSettings(args) {
|
|
388
|
+
const store = loadStore();
|
|
389
|
+
if (args.defaultDeviceType) {
|
|
390
|
+
store.settings.defaultDeviceType = args.defaultDeviceType;
|
|
391
|
+
}
|
|
392
|
+
if (args.defaultPaletteId) {
|
|
393
|
+
store.settings.defaultPaletteId = args.defaultPaletteId;
|
|
394
|
+
}
|
|
395
|
+
if (args.outputDirectory) {
|
|
396
|
+
store.settings.outputDirectory = args.outputDirectory;
|
|
397
|
+
}
|
|
398
|
+
saveStore(store);
|
|
399
|
+
return JSON.stringify({
|
|
400
|
+
success: true,
|
|
401
|
+
message: "Settings updated",
|
|
402
|
+
settings: store.settings,
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
// Main server setup
|
|
406
|
+
const server = new Server({
|
|
407
|
+
name: "muse-app-preview-mcp",
|
|
408
|
+
version: "1.0.0",
|
|
409
|
+
}, {
|
|
410
|
+
capabilities: {
|
|
411
|
+
tools: {},
|
|
412
|
+
},
|
|
413
|
+
});
|
|
414
|
+
// Register tool list handler
|
|
415
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
416
|
+
tools,
|
|
417
|
+
}));
|
|
418
|
+
// Register tool call handler
|
|
419
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
420
|
+
const { name, arguments: args } = request.params;
|
|
421
|
+
let result;
|
|
422
|
+
switch (name) {
|
|
423
|
+
case "add_preview":
|
|
424
|
+
result = await handleAddPreview(args);
|
|
425
|
+
break;
|
|
426
|
+
case "list_previews":
|
|
427
|
+
result = await handleListPreviews();
|
|
428
|
+
break;
|
|
429
|
+
case "remove_preview":
|
|
430
|
+
result = await handleRemovePreview(args);
|
|
431
|
+
break;
|
|
432
|
+
case "update_preview":
|
|
433
|
+
result = await handleUpdatePreview(args);
|
|
434
|
+
break;
|
|
435
|
+
case "clear_all":
|
|
436
|
+
result = await handleClearAll(args);
|
|
437
|
+
break;
|
|
438
|
+
case "open_app":
|
|
439
|
+
result = await handleOpenApp();
|
|
440
|
+
break;
|
|
441
|
+
case "generate_previews":
|
|
442
|
+
result = await handleGeneratePreviews(args);
|
|
443
|
+
break;
|
|
444
|
+
case "get_settings":
|
|
445
|
+
result = await handleGetSettings();
|
|
446
|
+
break;
|
|
447
|
+
case "update_settings":
|
|
448
|
+
result = await handleUpdateSettings(args);
|
|
449
|
+
break;
|
|
450
|
+
default:
|
|
451
|
+
result = JSON.stringify({ error: `Unknown tool: ${name}` });
|
|
452
|
+
}
|
|
453
|
+
return {
|
|
454
|
+
content: [{ type: "text", text: result }],
|
|
455
|
+
};
|
|
456
|
+
});
|
|
457
|
+
// Start server
|
|
458
|
+
async function main() {
|
|
459
|
+
const transport = new StdioServerTransport();
|
|
460
|
+
await server.connect(transport);
|
|
461
|
+
console.error("MUSE App Preview MCP server started");
|
|
462
|
+
}
|
|
463
|
+
main().catch(console.error);
|
|
464
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "muse-app-preview-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server for managing app store preview screenshots with MUSE Preview Maker",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"muse-app-preview-mcp": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"start": "node dist/index.js",
|
|
12
|
+
"dev": "ts-node src/index.ts",
|
|
13
|
+
"prepare": "npm run build"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"preview",
|
|
18
|
+
"app-store",
|
|
19
|
+
"screenshot",
|
|
20
|
+
"claude"
|
|
21
|
+
],
|
|
22
|
+
"author": "MUSE",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"type": "module",
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/node": "^20.10.0",
|
|
33
|
+
"typescript": "^5.3.0"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18.0.0"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "https://github.com/MUSE-CODE-SPACE/muse-app-preview-mcp.git"
|
|
41
|
+
}
|
|
42
|
+
}
|