mcp-stitch 0.1.2 → 0.1.3

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 CHANGED
@@ -12,6 +12,9 @@ MCP server for Google Stitch. It exposes Stitch project, screen, design-system,
12
12
  - [VS Code Setup](#vs-code-setup)
13
13
  - [Cursor Setup](#cursor-setup)
14
14
  - [Continue Setup](#continue-setup)
15
+ - [Claude Desktop Setup](#claude-desktop-setup)
16
+ - [Claude Code CLI Setup](#claude-code-cli-setup)
17
+ - [Gemini CLI Setup](#gemini-cli-setup)
15
18
  - [Codex Setup](#codex-setup)
16
19
  - [Tools](#tools)
17
20
  - [Safety](#safety)
@@ -62,7 +65,7 @@ Optional:
62
65
 
63
66
  - `STITCH_API_BASE_URL`: defaults to `https://stitch.googleapis.com/mcp`
64
67
  - `STITCH_OUTPUT_DIR`: fallback output root when `PROJECT_ROOT` is not set
65
- - `STITCH_TIMEOUT_MS`: defaults to `30000`
68
+ - `STITCH_TIMEOUT_MS`: defaults to `180000`
66
69
  - `STITCH_MAX_RETRIES`: defaults to `2`
67
70
 
68
71
  ## VS Code Setup
@@ -195,6 +198,121 @@ mcpServers:
195
198
 
196
199
  Use Continue's secrets or your local environment for `GOOGLE_API_KEY`; do not commit a literal key.
197
200
 
201
+ ## Claude Desktop Setup
202
+
203
+ Claude Desktop loads MCP servers from its desktop configuration file. On macOS, create or edit:
204
+
205
+ ```text
206
+ ~/Library/Application Support/Claude/claude_desktop_config.json
207
+ ```
208
+
209
+ Add `mcp-stitch` under `mcpServers`:
210
+
211
+ ```json
212
+ {
213
+ "mcpServers": {
214
+ "stitch": {
215
+ "command": "npx",
216
+ "args": ["-y", "mcp-stitch"],
217
+ "env": {
218
+ "GOOGLE_API_KEY": "your-key-here",
219
+ "PROJECT_ROOT": "/absolute/path/to/your/project"
220
+ }
221
+ }
222
+ }
223
+ }
224
+ ```
225
+
226
+ If Claude Desktop cannot find `npx`, use the absolute path from `which npx` instead, for example:
227
+
228
+ ```json
229
+ {
230
+ "mcpServers": {
231
+ "stitch": {
232
+ "command": "/opt/homebrew/bin/npx",
233
+ "args": ["-y", "mcp-stitch"],
234
+ "env": {
235
+ "GOOGLE_API_KEY": "your-key-here",
236
+ "PROJECT_ROOT": "/absolute/path/to/your/project"
237
+ }
238
+ }
239
+ }
240
+ }
241
+ ```
242
+
243
+ After saving the config, fully quit and reopen Claude Desktop. Then ask Claude to call `stitch_status` to confirm the setup.
244
+
245
+ ## Claude Code CLI Setup
246
+
247
+ Claude Code can add stdio MCP servers from the terminal:
248
+
249
+ ```bash
250
+ claude mcp add \
251
+ -e GOOGLE_API_KEY=your-key-here \
252
+ -e PROJECT_ROOT=/absolute/path/to/your/project \
253
+ stitch -- npx -y mcp-stitch
254
+ ```
255
+
256
+ Then run:
257
+
258
+ ```bash
259
+ claude mcp list
260
+ ```
261
+
262
+ Start or restart Claude Code in your project and ask it to call `stitch_status`.
263
+
264
+ ## Gemini CLI Setup
265
+
266
+ Gemini CLI can load MCP servers from user or workspace settings.
267
+
268
+ For all Gemini CLI projects, create or edit:
269
+
270
+ ```text
271
+ ~/.gemini/settings.json
272
+ ```
273
+
274
+ For just one workspace, create or edit:
275
+
276
+ ```text
277
+ .gemini/settings.json
278
+ ```
279
+
280
+ Add `mcp-stitch` under `mcpServers`:
281
+
282
+ ```json
283
+ {
284
+ "mcpServers": {
285
+ "stitch": {
286
+ "command": "npx",
287
+ "args": ["-y", "mcp-stitch"],
288
+ "env": {
289
+ "GOOGLE_API_KEY": "your-key-here",
290
+ "PROJECT_ROOT": "/absolute/path/to/your/project"
291
+ }
292
+ }
293
+ }
294
+ }
295
+ ```
296
+
297
+ If Gemini CLI cannot find `npx`, use the absolute path from `which npx` instead:
298
+
299
+ ```json
300
+ {
301
+ "mcpServers": {
302
+ "stitch": {
303
+ "command": "/opt/homebrew/bin/npx",
304
+ "args": ["-y", "mcp-stitch"],
305
+ "env": {
306
+ "GOOGLE_API_KEY": "your-key-here",
307
+ "PROJECT_ROOT": "/absolute/path/to/your/project"
308
+ }
309
+ }
310
+ }
311
+ }
312
+ ```
313
+
314
+ Restart Gemini CLI after saving the settings. Inside Gemini CLI, run `/mcp` to list configured MCP servers and tools, then ask it to call `stitch_status`.
315
+
198
316
  ## Codex Setup
199
317
 
200
318
  In the Codex app, add a new MCP server with the `+` button:
@@ -219,7 +337,24 @@ Codex may not expand VS Code variables like `${workspaceFolder}`, so use a real
219
337
 
220
338
  After adding the server, restart or reconnect it and ask Codex to call `stitch_status`.
221
339
 
222
- For Codex CLI or manual setup, add a stdio MCP server to your Codex config, usually:
340
+ For Codex CLI, add the server from the terminal:
341
+
342
+ ```bash
343
+ codex mcp add stitch \
344
+ --env GOOGLE_API_KEY=your-key-here \
345
+ --env PROJECT_ROOT=/absolute/path/to/your/project \
346
+ -- npx -y mcp-stitch
347
+ ```
348
+
349
+ Then run:
350
+
351
+ ```bash
352
+ codex mcp list
353
+ ```
354
+
355
+ Start or restart Codex in your project and ask it to call `stitch_status`.
356
+
357
+ For manual Codex CLI setup, add a stdio MCP server to your Codex config, usually:
223
358
 
224
359
  ```text
225
360
  ~/.codex/config.toml
@@ -14,7 +14,7 @@ function getProjectRoot() {
14
14
  export function getStitchConfig() {
15
15
  const apiKey = process.env.GOOGLE_API_KEY?.trim() ?? "";
16
16
  const baseUrl = process.env.STITCH_API_BASE_URL?.trim() || DEFAULT_STITCH_API_BASE_URL;
17
- const timeoutMs = parsePositiveInt(process.env.STITCH_TIMEOUT_MS, 30000);
17
+ const timeoutMs = parsePositiveInt(process.env.STITCH_TIMEOUT_MS, 180000);
18
18
  const maxRetries = parsePositiveInt(process.env.STITCH_MAX_RETRIES, 2);
19
19
  const rawOutputDir = process.env.STITCH_OUTPUT_DIR?.trim();
20
20
  const outputDir = rawOutputDir
@@ -1 +1 @@
1
- {"version":3,"file":"stitch.js","sourceRoot":"","sources":["../../src/config/stitch.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAU/E,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAgB;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,2BAA2B,CAAC;IAEvF,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;IAEpD,OAAO;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAoB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"stitch.js","sourceRoot":"","sources":["../../src/config/stitch.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAU/E,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAgB;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,2BAA2B,CAAC;IAEvF,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;IAEpD,OAAO;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAoB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stitchScreens.d.ts","sourceRoot":"","sources":["../../src/tools/stitchScreens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsDpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QAgV1D"}
1
+ {"version":3,"file":"stitchScreens.d.ts","sourceRoot":"","sources":["../../src/tools/stitchScreens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0SpE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QAiU1D"}
@@ -4,7 +4,7 @@ import { getStitchConfig } from "../config/stitch.js";
4
4
  import { StitchClient } from "../services/stitchClient.js";
5
5
  import { toBareProjectId, toBareScreenId, toScreenIdentifier } from "../utils/stitchIds.js";
6
6
  import { resolveScreenInput } from "../utils/stitchScreenResolver.js";
7
- import { formatStitchSummary } from "../utils/stitchResponse.js";
7
+ import { formatStitchSummary, safeJsonPreview } from "../utils/stitchResponse.js";
8
8
  import { compactStitchResult, requireConfirmation } from "../utils/stitchToolHelpers.js";
9
9
  function toErrorText(prefix, message) {
10
10
  return `${prefix}\n\n${message}`;
@@ -45,6 +45,210 @@ const variantOptionsSchema = z
45
45
  variantCount: z.number().int().min(1).max(5).optional(),
46
46
  })
47
47
  .passthrough();
48
+ function asRecord(value) {
49
+ return value && typeof value === "object" && !Array.isArray(value)
50
+ ? value
51
+ : null;
52
+ }
53
+ function getString(obj, key) {
54
+ const value = obj?.[key];
55
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
56
+ }
57
+ function getProjectIdFromName(name) {
58
+ if (!name || !name.startsWith("projects/"))
59
+ return undefined;
60
+ return name.split("/")[1];
61
+ }
62
+ function getScreenIdFromName(name) {
63
+ if (!name)
64
+ return undefined;
65
+ const marker = "/screens/";
66
+ const index = name.indexOf(marker);
67
+ return index >= 0 ? name.slice(index + marker.length) : undefined;
68
+ }
69
+ function parseContentJson(payload) {
70
+ const obj = asRecord(payload);
71
+ const content = obj?.content;
72
+ if (!Array.isArray(content))
73
+ return null;
74
+ for (const item of content) {
75
+ const text = getString(asRecord(item), "text");
76
+ if (!text)
77
+ continue;
78
+ try {
79
+ return JSON.parse(text);
80
+ }
81
+ catch {
82
+ continue;
83
+ }
84
+ }
85
+ return null;
86
+ }
87
+ function getStructuredPayload(payload) {
88
+ const obj = asRecord(payload);
89
+ const structuredContent = obj?.structuredContent;
90
+ if (structuredContent && typeof structuredContent === "object") {
91
+ return structuredContent;
92
+ }
93
+ return parseContentJson(payload) ?? payload;
94
+ }
95
+ function screensFromPayload(payload) {
96
+ const structured = getStructuredPayload(payload);
97
+ const direct = asRecord(structured);
98
+ if (!direct)
99
+ return [];
100
+ const directScreens = direct.screens;
101
+ if (Array.isArray(directScreens)) {
102
+ return directScreens
103
+ .map((screen) => asRecord(screen))
104
+ .filter((screen) => Boolean(screen));
105
+ }
106
+ const outputComponents = direct.outputComponents;
107
+ const screens = [];
108
+ if (Array.isArray(outputComponents)) {
109
+ for (const component of outputComponents) {
110
+ const componentObj = asRecord(component);
111
+ const design = asRecord(componentObj?.design);
112
+ const designScreens = design?.screens;
113
+ if (!Array.isArray(designScreens))
114
+ continue;
115
+ for (const screen of designScreens) {
116
+ const screenObj = asRecord(screen);
117
+ if (screenObj)
118
+ screens.push(screenObj);
119
+ }
120
+ }
121
+ }
122
+ const design = asRecord(direct.design);
123
+ const designScreens = design?.screens;
124
+ if (Array.isArray(designScreens)) {
125
+ for (const screen of designScreens) {
126
+ const screenObj = asRecord(screen);
127
+ if (screenObj)
128
+ screens.push(screenObj);
129
+ }
130
+ }
131
+ return screens;
132
+ }
133
+ function firstScreenFromPayload(payload) {
134
+ const structured = getStructuredPayload(payload);
135
+ const direct = asRecord(structured);
136
+ if (!direct)
137
+ return null;
138
+ if (getString(direct, "name")?.includes("/screens/")) {
139
+ return direct;
140
+ }
141
+ const screens = screensFromPayload(payload);
142
+ if (screens.length > 0) {
143
+ return screens[0] ?? null;
144
+ }
145
+ return null;
146
+ }
147
+ function collectGenerationText(payload) {
148
+ const structured = asRecord(getStructuredPayload(payload));
149
+ const outputComponents = structured?.outputComponents;
150
+ if (!Array.isArray(outputComponents))
151
+ return [];
152
+ const text = [];
153
+ for (const component of outputComponents) {
154
+ const componentObj = asRecord(component);
155
+ const summary = getString(componentObj, "text");
156
+ const suggestion = getString(componentObj, "suggestion");
157
+ if (summary)
158
+ text.push(summary);
159
+ if (suggestion)
160
+ text.push(`Suggestion: ${suggestion}`);
161
+ }
162
+ return text;
163
+ }
164
+ function hasUrl(record) {
165
+ return getString(record, "downloadUrl") ? "yes" : "no";
166
+ }
167
+ function formatScreenListSummary(payload) {
168
+ const screens = screensFromPayload(payload);
169
+ if (screens.length === 0) {
170
+ return formatStitchSummary({
171
+ title: "Stitch screens",
172
+ data: payload,
173
+ itemKeys: ["screens", "items", "results"],
174
+ idKeys: ["name", "id", "screenId", "title"],
175
+ });
176
+ }
177
+ const lines = ["Stitch screens", "", `Screen count: ${screens.length}`, ""];
178
+ screens.forEach((screen, index) => {
179
+ const name = getString(screen, "name");
180
+ const screenId = getString(screen, "id") ?? getScreenIdFromName(name) ?? "(none)";
181
+ const screenshot = asRecord(screen.screenshot);
182
+ const htmlCode = asRecord(screen.htmlCode);
183
+ lines.push(`${index + 1}. ${getString(screen, "title") ?? "(untitled)"}`, `- screenId: ${screenId}`, `- screenName: ${name ?? "(none)"}`, `- width: ${getString(screen, "width") ?? "(none)"}`, `- height: ${getString(screen, "height") ?? "(none)"}`, `- hasScreenshotUrl: ${hasUrl(screenshot)}`, `- hasHtmlCodeUrl: ${hasUrl(htmlCode)}`, `- htmlMimeType: ${getString(htmlCode, "mimeType") ?? "(none)"}`, "");
184
+ });
185
+ lines.push("Tip:", "- Pass the bare screenId to stitch_get_screen with projectId to get screenshot.downloadUrl and htmlCode.downloadUrl.");
186
+ return lines.join("\n");
187
+ }
188
+ function formatScreenAssetSummary(title, payload) {
189
+ const structured = getStructuredPayload(payload);
190
+ const structuredObj = asRecord(structured);
191
+ const screen = firstScreenFromPayload(payload);
192
+ if (!screen) {
193
+ return formatStitchSummary({
194
+ title,
195
+ data: payload,
196
+ itemKeys: ["screens", "nodes", "items"],
197
+ idKeys: ["name", "id", "screenId", "title"],
198
+ });
199
+ }
200
+ const screenshot = asRecord(screen.screenshot);
201
+ const htmlCode = asRecord(screen.htmlCode);
202
+ const metadata = asRecord(screen.screenMetadata);
203
+ const designSystem = asRecord(screen.designSystem);
204
+ const nestedDesignSystem = asRecord(designSystem?.designSystem);
205
+ const screenName = getString(screen, "name");
206
+ const screenId = getString(screen, "id") ?? getScreenIdFromName(screenName);
207
+ const projectId = getString(structuredObj, "projectId") ?? getProjectIdFromName(screenName);
208
+ const prompt = getString(screen, "prompt");
209
+ const generationText = collectGenerationText(payload);
210
+ const lines = [
211
+ title,
212
+ "",
213
+ "Screen:",
214
+ `- screenId: ${screenId ?? "(none)"}`,
215
+ `- screenName: ${screenName ?? "(none)"}`,
216
+ `- projectId: ${projectId ?? "(not present)"}`,
217
+ `- title: ${getString(screen, "title") ?? "(none)"}`,
218
+ `- sessionId: ${getString(structuredObj, "sessionId") ?? "(not present)"}`,
219
+ `- width: ${getString(screen, "width") ?? "(none)"}`,
220
+ `- height: ${getString(screen, "height") ?? "(none)"}`,
221
+ `- deviceType: ${getString(screen, "deviceType") ?? "(none)"}`,
222
+ `- generatedBy: ${getString(screen, "generatedBy") ?? "(not present)"}`,
223
+ `- screenType: ${getString(screen, "screenType") ?? "(not present)"}`,
224
+ `- status: ${getString(metadata, "status") ?? "(not present)"}`,
225
+ `- agentType: ${getString(metadata, "agentType") ?? "(not present)"}`,
226
+ "",
227
+ "Next calls:",
228
+ `- stitch_get_screen: { "projectId": "${projectId ?? "PROJECT_ID"}", "screenId": "${screenId ?? "SCREEN_ID"}" }`,
229
+ "",
230
+ "Screenshot asset:",
231
+ `- name: ${getString(screenshot, "name") ?? "(none)"}`,
232
+ `- downloadUrl: ${getString(screenshot, "downloadUrl") ?? "(none)"}`,
233
+ "",
234
+ "HTML/code asset:",
235
+ `- name: ${getString(htmlCode, "name") ?? "(none)"}`,
236
+ `- downloadUrl: ${getString(htmlCode, "downloadUrl") ?? "(none)"}`,
237
+ `- mimeType: ${getString(htmlCode, "mimeType") ?? "(none)"}`,
238
+ "",
239
+ "Design system:",
240
+ `- name: ${getString(designSystem, "name") ?? "(not present)"}`,
241
+ `- displayName: ${getString(nestedDesignSystem, "displayName") ?? "(not present)"}`,
242
+ ];
243
+ if (prompt) {
244
+ lines.push("", "Prompt:", safeJsonPreview(prompt, 800));
245
+ }
246
+ if (generationText.length > 0) {
247
+ lines.push("", "Generation notes:", ...generationText.map((item) => `- ${item}`));
248
+ }
249
+ lines.push("", "Raw preview:", safeJsonPreview(structured, 2000));
250
+ return lines.join("\n");
251
+ }
48
252
  export function registerStitchScreenTools(server) {
49
253
  server.registerTool("stitch_list_screens", {
50
254
  description: "Lists screens for a Stitch project. If rawInput is provided, it takes precedence over projectId.",
@@ -85,12 +289,7 @@ export function registerStitchScreenTools(server) {
85
289
  content: [
86
290
  {
87
291
  type: "text",
88
- text: formatStitchSummary({
89
- title: "Stitch screens",
90
- data: result.data,
91
- itemKeys: ["screens", "items", "results"],
92
- idKeys: ["name", "id", "screenId", "title"],
93
- }),
292
+ text: formatScreenListSummary(result.data),
94
293
  },
95
294
  ],
96
295
  };
@@ -250,12 +449,7 @@ export function registerStitchScreenTools(server) {
250
449
  content: [
251
450
  {
252
451
  type: "text",
253
- text: formatStitchSummary({
254
- title: "Stitch screen",
255
- data: result.data,
256
- itemKeys: ["nodes", "components", "screens"],
257
- idKeys: ["name", "id", "screenId", "title"],
258
- }),
452
+ text: formatScreenAssetSummary("Stitch screen", result.data),
259
453
  },
260
454
  ],
261
455
  };
@@ -306,12 +500,7 @@ export function registerStitchScreenTools(server) {
306
500
  content: [
307
501
  {
308
502
  type: "text",
309
- text: formatStitchSummary({
310
- title: "Stitch generated screen",
311
- data: result.data,
312
- itemKeys: ["screens", "nodes", "items"],
313
- idKeys: ["name", "id", "screenId", "title"],
314
- }),
503
+ text: formatScreenAssetSummary("Stitch generated screen", result.data),
315
504
  },
316
505
  ],
317
506
  };
@@ -1 +1 @@
1
- {"version":3,"file":"stitchScreens.js","sourceRoot":"","sources":["../../src/tools/stitchScreens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stitchScreens.js","sourceRoot":"","sources":["../../src/tools/stitchScreens.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ This server exposes Stitch project, screen, design-system, DESIGN.md import, gen
13
13
  ## Optional environment variables
14
14
 
15
15
  - STITCH_API_BASE_URL (default: https://stitch.googleapis.com/mcp)
16
- - STITCH_TIMEOUT_MS (default: 30000)
16
+ - STITCH_TIMEOUT_MS (default: 180000)
17
17
  - STITCH_MAX_RETRIES (default: 2)
18
18
  - STITCH_OUTPUT_DIR (default: PROJECT_ROOT/stitch-output or cwd/stitch-output)
19
19
 
@@ -39,12 +39,14 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
39
39
 
40
40
  4. stitch_list_screens
41
41
  - Lists screens in a project.
42
+ - Response is formatted as a handoff inventory with title, bare `screenId`, full `screenName`, dimensions, and whether screenshot/HTML URLs are present.
42
43
  - Input:
43
44
  - projectId (optional if rawInput used; bare id or projects/{id}, normalized to bare id)
44
45
  - rawInput (optional)
45
46
 
46
47
  5. stitch_get_screen
47
48
  - Gets one screen.
49
+ - Response highlights the bare `screenId`, full `screenName`, next `stitch_get_screen` call shape, `screenshot.downloadUrl`, and `htmlCode.downloadUrl` when present.
48
50
  - Input:
49
51
  - screenId (optional if rawInput used; full projects/{id}/screens/{screen} path, or bare screen id when projectId is also provided)
50
52
  - projectId (optional; bare id or projects/{id}, used with bare screenId or partial title/name lookup)
@@ -52,6 +54,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
52
54
 
53
55
  6. stitch_generate_screen_from_text
54
56
  - Generates a screen from text.
57
+ - Response uses the same asset handoff format as `stitch_get_screen`, so agents can pass the returned bare `screenId` directly into later screen tools.
55
58
  - Input:
56
59
  - prompt (required unless rawInput used)
57
60
  - projectId (required unless rawInput used; bare id preferred; projects/{id} is normalized by the adapter)
@@ -183,6 +186,7 @@ Mutating tools are marked `MUTATING` and require `confirm: true`. Without confir
183
186
  "projectId": "abc",
184
187
  "prompt": "Create a dashboard with KPI cards and a recent activity list"
185
188
  }
189
+ - Use the returned bare `screenId` with stitch_get_screen to retrieve the screen asset URLs again later.
186
190
 
187
191
  - Export a fetched screen:
188
192
  - call stitch_export_screen_artifact with {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-stitch",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "MCP server for Google Stitch.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {