@gemini-designer/mcp-server 0.1.31 → 0.1.33

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.
@@ -0,0 +1,3 @@
1
+ export type PromptingGuideFocus = 'general' | 'create_ui' | 'snippet_ui' | 'landing_page' | 'agents_md';
2
+ export declare function getPromptingGuide(focus: PromptingGuideFocus): string;
3
+ //# sourceMappingURL=prompting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompting.d.ts","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,WAAW,GACX,YAAY,GACZ,cAAc,GACd,WAAW,CAAC;AAEhB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA4GpE"}
@@ -0,0 +1,108 @@
1
+ export function getPromptingGuide(focus) {
2
+ const header = [
3
+ '# Gemini Designer — Prompting Guide',
4
+ '',
5
+ 'Goal: get high-quality output in 1 pass (optionally +1 refine pass).',
6
+ '',
7
+ '## Recommended flow',
8
+ '1) (Optional) `generate_vibes` → pick 1 vibe',
9
+ '2) `create_ui` (new files) OR `snippet_ui` (standalone component)',
10
+ '3) If close: ONE `modify_ui` pass for targeted polish (avoid full re-generation loops)',
11
+ '',
12
+ ].join('\n');
13
+ const generalTemplate = [
14
+ '## Universal request template',
15
+ 'Purpose: <what this UI is for>',
16
+ 'Audience: <who uses it>',
17
+ 'Required content: <bullets of exact elements that must exist>',
18
+ 'Constraints:',
19
+ '- WCAG AA',
20
+ '- Mobile-first responsive',
21
+ '- Strong :focus-visible states',
22
+ '- Avoid generic “SaaS card grids” + generic gradients',
23
+ 'Design direction: <ONE clear aesthetic, e.g. editorial | brutalist | art-deco | luxury | playful>',
24
+ '',
25
+ 'If you called `generate_vibes`, pass the selected vibe JSON into `create_ui/snippet_ui` as `vibe`.',
26
+ ].join('\n');
27
+ const landingTemplate = [
28
+ '## Landing page template (HTML/CSS)',
29
+ 'Use when you want a full marketing page with clear sections.',
30
+ '',
31
+ 'Purpose: Marketing landing page for <product>',
32
+ 'Audience: <developers | founders | teams | etc>',
33
+ 'Required sections:',
34
+ '- nav (anchors + primary CTA)',
35
+ '- hero (headline, subhead, CTAs, one visual “hero artifact”)',
36
+ '- how it works (3 steps)',
37
+ '- tools/features (clear list)',
38
+ '- examples (tool call + output preview)',
39
+ '- testimonials/proof (3 quotes)',
40
+ '- pricing (3 tiers)',
41
+ '- final CTA (email capture + CTA button)',
42
+ '- footer',
43
+ 'Constraints:',
44
+ '- WCAG AA, keyboard nav',
45
+ '- responsive grid on desktop',
46
+ '- no external JS libs; tiny inline JS only for smooth scroll + copy button',
47
+ ].join('\n');
48
+ const agentsMd = [
49
+ '# Gemini Designer MCP — Agent Workflow Rules',
50
+ '',
51
+ 'Add this section to your repo AGENTS.md (do not delete existing instructions).',
52
+ '',
53
+ '## Golden rules',
54
+ '- Prefer Gemini Designer MCP tools for UI work; avoid hand-writing large UI blobs unless explicitly requested.',
55
+ '- Default to: 1 generation pass + (optional) 1 targeted modify pass. Do not loop endlessly.',
56
+ '- Always maintain WCAG AA, keyboard navigation, and strong :focus-visible states.',
57
+ '- Avoid generic layouts (cookie-cutter SaaS grids) and generic gradients.',
58
+ '',
59
+ '## Recommended workflows',
60
+ '',
61
+ '### A) New page / new component (highest quality, lowest back-and-forth)',
62
+ '1) (Optional) detect_ui_stack(projectRoot) to learn framework/styling conventions.',
63
+ '2) generate_vibes(vibeCount=3..5) and pick ONE vibe.',
64
+ '3) create_ui(...) or snippet_ui(...), pass the vibe JSON as vibe=... and keep requirements explicit.',
65
+ '4) If polish is needed: ONE modify_ui pass (surgical edits).',
66
+ '',
67
+ '### B) Tight iteration on existing UI (no re-generation)',
68
+ '1) modify_ui(targetFile, instruction, preserveLogic=true, returnDiff=true).',
69
+ '2) If diff looks good: modify_ui(..., applyChanges=true).',
70
+ '',
71
+ '### C) Screenshot → design breakdown → implementation',
72
+ '1) analyze_screenshot_ui(imagePath, outputFormat=json).',
73
+ '2) create_ui/snippet_ui to implement the extracted structure.',
74
+ '3) modify_ui to refine alignment/spacing/accessibility.',
75
+ '',
76
+ '### D) Repo refactor / consistency',
77
+ '- catalog_components to discover existing exports to reuse.',
78
+ '- analyze_tokens to extract tokens from CSS/SCSS.',
79
+ '- sync_design_tokens to normalize/convert tokens (css-vars/scss-vars/tailwind/tokens-studio/style-dictionary).',
80
+ '',
81
+ '### E) Architecture planning (before implementation)',
82
+ '1) scaffold_project(name, pages, features) to get a structured plan.',
83
+ '2) Implement pages/components via create_ui/snippet_ui.',
84
+ '',
85
+ '## High-signal request template (copy/paste)',
86
+ 'Purpose: <what this UI is for>',
87
+ 'Audience: <who uses it>',
88
+ 'Required content: <bullets of exact elements that must exist>',
89
+ 'Constraints:',
90
+ '- WCAG AA',
91
+ '- Mobile-first responsive',
92
+ '- Strong :focus-visible states',
93
+ '- Avoid generic “SaaS card grids” + generic gradients',
94
+ 'Design direction: <ONE clear aesthetic (editorial | brutalist | art-deco | luxury | playful)>',
95
+ '',
96
+ 'Tip: For marketing pages, explicitly list required sections (hero, how-it-works, examples, testimonials, pricing, CTA).',
97
+ ].join('\n');
98
+ if (focus === 'agents_md')
99
+ return `${agentsMd}\n`;
100
+ if (focus === 'landing_page')
101
+ return `${header}${landingTemplate}\n\n${generalTemplate}\n`;
102
+ if (focus === 'create_ui')
103
+ return `${header}## create_ui tips\n- Be explicit about required elements and file path.\n- Include constraints and one aesthetic direction.\n\n${generalTemplate}\n`;
104
+ if (focus === 'snippet_ui')
105
+ return `${header}## snippet_ui tips\n- Choose the closest \"type\" and list interaction rules (focus trap, keyboard, loading, etc.).\n\n${generalTemplate}\n`;
106
+ return `${header}${generalTemplate}\n`;
107
+ }
108
+ //# sourceMappingURL=prompting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompting.js","sourceRoot":"","sources":["../../src/guides/prompting.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,EAAE;QACF,sEAAsE;QACtE,EAAE;QACF,qBAAqB;QACrB,8CAA8C;QAC9C,mEAAmE;QACnE,wFAAwF;QACxF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG;QACtB,+BAA+B;QAC/B,gCAAgC;QAChC,yBAAyB;QACzB,+DAA+D;QAC/D,cAAc;QACd,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,uDAAuD;QACvD,mGAAmG;QACnG,EAAE;QACF,oGAAoG;KACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG;QACtB,qCAAqC;QACrC,8DAA8D;QAC9D,EAAE;QACF,+CAA+C;QAC/C,iDAAiD;QACjD,oBAAoB;QACpB,+BAA+B;QAC/B,8DAA8D;QAC9D,0BAA0B;QAC1B,+BAA+B;QAC/B,yCAAyC;QACzC,iCAAiC;QACjC,qBAAqB;QACrB,0CAA0C;QAC1C,UAAU;QACV,cAAc;QACd,yBAAyB;QACzB,8BAA8B;QAC9B,4EAA4E;KAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG;QACf,8CAA8C;QAC9C,EAAE;QACF,gFAAgF;QAChF,EAAE;QACF,iBAAiB;QACjB,gHAAgH;QAChH,6FAA6F;QAC7F,mFAAmF;QACnF,2EAA2E;QAC3E,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,0EAA0E;QAC1E,oFAAoF;QACpF,sDAAsD;QACtD,sGAAsG;QACtG,8DAA8D;QAC9D,EAAE;QACF,0DAA0D;QAC1D,6EAA6E;QAC7E,2DAA2D;QAC3D,EAAE;QACF,uDAAuD;QACvD,yDAAyD;QACzD,+DAA+D;QAC/D,yDAAyD;QACzD,EAAE;QACF,oCAAoC;QACpC,6DAA6D;QAC7D,mDAAmD;QACnD,gHAAgH;QAChH,EAAE;QACF,sDAAsD;QACtD,sEAAsE;QACtE,yDAAyD;QACzD,EAAE;QACF,8CAA8C;QAC9C,gCAAgC;QAChC,yBAAyB;QACzB,+DAA+D;QAC/D,cAAc;QACd,WAAW;QACX,2BAA2B;QAC3B,gCAAgC;QAChC,uDAAuD;QACvD,+FAA+F;QAC/F,EAAE;QACF,yHAAyH;KAC1H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,GAAG,QAAQ,IAAI,CAAC;IAClD,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,GAAG,MAAM,GAAG,eAAe,OAAO,eAAe,IAAI,CAAC;IAC3F,IAAI,KAAK,KAAK,WAAW;QACvB,OAAO,GAAG,MAAM,kIAAkI,eAAe,IAAI,CAAC;IACxK,IAAI,KAAK,KAAK,YAAY;QACxB,OAAO,GAAG,MAAM,0HAA0H,eAAe,IAAI,CAAC;IAChK,OAAO,GAAG,MAAM,GAAG,eAAe,IAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Prompt/Resource Registry
3
+ *
4
+ * Makes best-practice prompting guidance discoverable to MCP clients.
5
+ * Tools are still the most widely supported entrypoint, so we also ship a
6
+ * deterministic `prompting_guide` tool.
7
+ */
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import { Config } from '../config/index.js';
10
+ export declare function registerPromptsAndResources(server: McpServer, _config: Config): void;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAgDpF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Prompt/Resource Registry
3
+ *
4
+ * Makes best-practice prompting guidance discoverable to MCP clients.
5
+ * Tools are still the most widely supported entrypoint, so we also ship a
6
+ * deterministic `prompting_guide` tool.
7
+ */
8
+ import { z } from 'zod';
9
+ import { getPromptingGuide } from '../guides/prompting.js';
10
+ const PROMPTING_GUIDE_URI = 'gemini-designer://docs/prompting-guide';
11
+ export function registerPromptsAndResources(server, _config) {
12
+ server.registerPrompt('prompting_guide', {
13
+ title: 'Prompting Guide',
14
+ description: 'Recommended flow + templates for high-quality one-pass UI generation.',
15
+ argsSchema: {
16
+ focus: z
17
+ .enum(['general', 'create_ui', 'snippet_ui', 'landing_page', 'agents_md'])
18
+ .default('general')
19
+ .describe('Which template to return.'),
20
+ },
21
+ }, async (args, _extra) => {
22
+ const focus = args.focus || 'general';
23
+ const text = getPromptingGuide(focus);
24
+ return {
25
+ description: 'Prompting guide content',
26
+ messages: [
27
+ {
28
+ role: 'user',
29
+ content: { type: 'text', text },
30
+ },
31
+ ],
32
+ };
33
+ });
34
+ server.registerResource('Prompting Guide', PROMPTING_GUIDE_URI, {
35
+ title: 'Prompting Guide',
36
+ description: 'Recommended prompting flow + templates (same content as the prompting_guide tool/prompt).',
37
+ }, async () => {
38
+ return {
39
+ contents: [
40
+ {
41
+ uri: PROMPTING_GUIDE_URI,
42
+ mimeType: 'text/markdown',
43
+ text: getPromptingGuide('general'),
44
+ },
45
+ ],
46
+ };
47
+ });
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AAGrF,MAAM,mBAAmB,GAAG,wCAAwC,CAAC;AAErE,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,OAAe;IAC5E,MAAM,CAAC,cAAc,CACnB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uEAAuE;QACpF,UAAU,EAAE;YACV,KAAK,EAAE,CAAC;iBACL,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;iBACzE,OAAO,CAAC,SAAS,CAAC;iBAClB,QAAQ,CAAC,2BAA2B,CAAC;SACzC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACrB,MAAM,KAAK,GAAI,IAAI,CAAC,KAA6B,IAAI,SAAS,CAAC;QAC/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO;YACL,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE;iBACzC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,iBAAiB,EACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,2FAA2F;KAC9F,EACD,KAAK,IAAI,EAAE;QACT,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,mBAAmB;oBACxB,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;iBACnC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,sBAgBhD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAK3C,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,sBAmBhD"}
package/dist/server.js CHANGED
@@ -6,6 +6,7 @@
6
6
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
7
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
8
  import { registerTools } from './tools/index.js';
9
+ import { registerPromptsAndResources } from './prompts/index.js';
9
10
  import { VERSION } from './version.js';
10
11
  export async function createServer(config) {
11
12
  const server = new McpServer({
@@ -14,6 +15,8 @@ export async function createServer(config) {
14
15
  });
15
16
  // Register all MCP tools
16
17
  registerTools(server, config);
18
+ // Prompts/resources for clients that support them
19
+ registerPromptsAndResources(server, config);
17
20
  // Use stdio transport (standard for MCP)
18
21
  const transport = new StdioServerTransport();
19
22
  await server.connect(transport);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,yBAAyB;IACzB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,yCAAyC;IACzC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAElE,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,yBAAyB;IACzB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,kDAAkD;IAClD,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5C,yCAAyC;IACzC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAElE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-ui.d.ts","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA+Q5C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAwOjE"}
1
+ {"version":3,"file":"create-ui.d.ts","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAoR5C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QA6QjE"}
@@ -7,6 +7,7 @@
7
7
  * Automatically detects project styling approach (Tailwind, CSS Modules, styled-components, etc.)
8
8
  * and generates code matching the project conventions.
9
9
  */
10
+ import * as path from 'node:path';
10
11
  import { z } from 'zod';
11
12
  import { buildContext } from '../context/builder.js';
12
13
  import { assertWritablePath } from '../context/guards.js';
@@ -134,7 +135,11 @@ function buildUserPrompt(args) {
134
135
  let stylingInstructions = '';
135
136
  if (needsSeparateStyleFile) {
136
137
  const ext = args.stylingInfo.fileExtension;
137
- const stylePath = args.targetPath.replace(/\.(tsx?|jsx?|vue|svelte)$/, ext);
138
+ let stylePath = args.targetPath.replace(/\.(tsx?|jsx?|vue|svelte|html|astro)$/, ext);
139
+ // For static HTML pages, prefer a conventional `styles.css` next to `index.html`.
140
+ if (args.targetPath.endsWith('/index.html') && ext === '.css') {
141
+ stylePath = args.targetPath.replace(/\/index\.html$/, '/styles.css');
142
+ }
138
143
  stylingInstructions = `Style file: ${stylePath}\n`;
139
144
  }
140
145
  return `Create UI using ${args.stylingInfo.approach.toUpperCase()} styling.
@@ -235,7 +240,25 @@ Return ONLY the corrected JSON object.`;
235
240
  export function registerCreateUI(server, config) {
236
241
  server.registerTool('create_ui', {
237
242
  title: 'Create UI Component/View',
238
- description: 'Generate a complete UI component. Auto-detects project styling (Tailwind, CSS Modules, styled-components, etc.) and outputs matching code structure.',
243
+ description: [
244
+ 'Generate a complete UI component/view. Auto-detects project styling (Tailwind, CSS Modules, styled-components, etc.) and outputs matching code structure.',
245
+ '',
246
+ 'High-signal flow:',
247
+ '1) (Optional) generate_vibes → pick 1 vibe',
248
+ '2) create_ui with: purpose + audience + required content + constraints + design direction',
249
+ '3) If needed: ONE modify_ui pass for polish (don’t fully regenerate)',
250
+ '',
251
+ 'Prompting template:',
252
+ 'Purpose: <what this UI is for>',
253
+ 'Audience: <who uses it>',
254
+ 'Required content: <bullets of exact elements that must exist>',
255
+ 'Constraints:',
256
+ '- WCAG AA',
257
+ '- Mobile-first responsive',
258
+ '- Strong :focus-visible states',
259
+ '- Avoid generic “SaaS card grids” + generic gradients',
260
+ 'Design direction: <ONE clear aesthetic, e.g. editorial | brutalist | art-deco | luxury | playful>',
261
+ ].join('\n'),
239
262
  inputSchema,
240
263
  }, async (args) => {
241
264
  try {
@@ -245,7 +268,10 @@ export function registerCreateUI(server, config) {
245
268
  const vibe = args.vibe;
246
269
  const contextFiles = args.contextFiles || [];
247
270
  const targetPath = args.targetPath;
248
- const projectRoot = args.projectRoot || process.cwd();
271
+ const rawProjectRoot = args.projectRoot || process.cwd();
272
+ const projectRoot = path.isAbsolute(rawProjectRoot)
273
+ ? rawProjectRoot
274
+ : path.resolve(process.cwd(), rawProjectRoot);
249
275
  const requestedApproach = args.stylingApproach || 'auto';
250
276
  const stylingApproachCustom = args.stylingApproachCustom;
251
277
  const shouldWrite = args.writeToFile === true;
@@ -404,7 +430,25 @@ export function registerCreateUI(server, config) {
404
430
  if (shouldWrite) {
405
431
  const writes = [];
406
432
  for (const file of parsed.files) {
407
- const safePath = assertWritablePath(file.path, config);
433
+ // Resolve any relative paths from the projectRoot (NOT process.cwd()).
434
+ // Models often output paths like "src/App.tsx" or "index.html" even when given absolute paths.
435
+ // If we resolved those from process.cwd(), we might accidentally write to the wrong repo.
436
+ const resolvedPath = path.isAbsolute(file.path) ? file.path : path.resolve(projectRoot, file.path);
437
+ let safePath;
438
+ try {
439
+ safePath = assertWritablePath(resolvedPath, config);
440
+ }
441
+ catch (error) {
442
+ // If the model outputs "/src/..." style paths, treat them as project-relative.
443
+ // ("/src/App.tsx" is almost never a real filesystem absolute path that we want.)
444
+ if (path.isAbsolute(file.path) && file.path.startsWith(path.sep)) {
445
+ const stripped = file.path.replace(new RegExp(`^\\${path.sep}+`), '');
446
+ safePath = assertWritablePath(path.resolve(projectRoot, stripped), config);
447
+ }
448
+ else {
449
+ throw error;
450
+ }
451
+ }
408
452
  const writeResult = await writeFile(safePath, file.content, { backup, format: false });
409
453
  if (!writeResult.success) {
410
454
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"create-ui.js","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-ui.js","sourceRoot":"","sources":["../../src/tools/create-ui.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-vibes.d.ts","sourceRoot":"","sources":["../../src/tools/generate-vibes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA6H5C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgF7E"}
1
+ {"version":3,"file":"generate-vibes.d.ts","sourceRoot":"","sources":["../../src/tools/generate-vibes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA6H5C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuF7E"}
@@ -128,7 +128,14 @@ SUGGESTED FONTS:
128
128
  export function registerGenerateVibes(server, config) {
129
129
  server.registerTool('generate_vibes', {
130
130
  title: 'Generate Design Vibes',
131
- description: 'Generate design direction options (vibes) with color palettes, typography, and spacing. Call this before create_ui to establish design consistency.',
131
+ description: [
132
+ 'Generate design direction options (vibes) with color palettes, typography, and spacing.',
133
+ '',
134
+ 'Recommended flow:',
135
+ '1) Call generate_vibes (pick 1 vibe).',
136
+ '2) Pass the selected vibe JSON into create_ui/snippet_ui as `vibe`.',
137
+ '3) If the first draft is close, call modify_ui for targeted refinements (1 pass).',
138
+ ].join('\n'),
132
139
  inputSchema,
133
140
  }, async (args) => {
134
141
  const projectContext = args.projectContext;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-vibes.js","sourceRoot":"","sources":["../../src/tools/generate-vibes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-vibes.js","sourceRoot":"","sources":["../../src/tools/generate-vibes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAkBrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAc5C;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAmBrE"}
@@ -14,6 +14,7 @@ import { registerSyncDesignTokens } from './sync-design-tokens.js';
14
14
  import { registerCatalogComponents } from './catalog-components.js';
15
15
  import { registerGenerateComponentVariants } from './generate-component-variants.js';
16
16
  import { registerAnalyzeScreenshotUI } from './analyze-screenshot-ui.js';
17
+ import { registerPromptingGuideTool } from './prompting-guide.js';
17
18
  /**
18
19
  * Register all MCP tools
19
20
  */
@@ -31,6 +32,7 @@ export function registerTools(server, config) {
31
32
  registerCatalogComponents(server, config);
32
33
  registerGenerateComponentVariants(server, config);
33
34
  registerAnalyzeScreenshotUI(server, config);
35
+ registerPromptingGuideTool(server, config);
34
36
  console.error('[tools] All tools registered');
35
37
  }
36
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAc;IAC7D,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAElD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,8BAA8B;IAC9B,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,MAAc;IAC7D,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAElD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,8BAA8B;IAC9B,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * prompting_guide Tool
3
+ *
4
+ * Deterministic: returns the recommended prompting flow + templates.
5
+ * Useful for “dumb” agents that don’t read repo docs.
6
+ */
7
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import { Config } from '../config/index.js';
9
+ export declare function registerPromptingGuideTool(server: McpServer, _config: Config): void;
10
+ //# sourceMappingURL=prompting-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompting-guide.d.ts","sourceRoot":"","sources":["../../src/tools/prompting-guide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAc5C,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAgBnF"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * prompting_guide Tool
3
+ *
4
+ * Deterministic: returns the recommended prompting flow + templates.
5
+ * Useful for “dumb” agents that don’t read repo docs.
6
+ */
7
+ import { z } from 'zod';
8
+ import { getPromptingGuide } from '../guides/prompting.js';
9
+ const inputSchema = {
10
+ focus: z
11
+ .enum(['general', 'create_ui', 'snippet_ui', 'landing_page', 'agents_md'])
12
+ .default('general')
13
+ .describe('Which template to return.'),
14
+ };
15
+ function guideFor(focus) {
16
+ return getPromptingGuide(focus);
17
+ }
18
+ export function registerPromptingGuideTool(server, _config) {
19
+ server.registerTool('prompting_guide', {
20
+ title: 'Prompting Guide',
21
+ description: 'Return the recommended prompting flow + templates (useful for agents that don’t read repo docs).',
22
+ inputSchema,
23
+ }, async (args) => {
24
+ const focus = args.focus || 'general';
25
+ return {
26
+ content: [{ type: 'text', text: guideFor(focus) }],
27
+ };
28
+ });
29
+ }
30
+ //# sourceMappingURL=prompting-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompting-guide.js","sourceRoot":"","sources":["../../src/tools/prompting-guide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AAErF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;SACzE,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC;AAEF,SAAS,QAAQ,CAAC,KAA0B;IAC1C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,OAAe;IAC3E,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,kGAAkG;QACpG,WAAW;KACZ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,KAAK,GAAI,IAAI,CAAC,KAA6B,IAAI,SAAS,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-ui.d.ts","sourceRoot":"","sources":["../../src/tools/snippet-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAqR5C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAmPzE"}
1
+ {"version":3,"file":"snippet-ui.d.ts","sourceRoot":"","sources":["../../src/tools/snippet-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwR5C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA0PzE"}
@@ -241,12 +241,22 @@ function deriveStylePath(componentPath, stylingInfo) {
241
241
  const ext = stylingInfo.fileExtension;
242
242
  if (!ext)
243
243
  return '';
244
- return componentPath.replace(/\.(tsx?|jsx?|vue|svelte)$/, ext);
244
+ if (componentPath.endsWith('/index.html') && ext === '.css') {
245
+ return componentPath.replace(/\/index\.html$/, '/styles.css');
246
+ }
247
+ return componentPath.replace(/\.(tsx?|jsx?|vue|svelte|html|astro)$/, ext);
245
248
  }
246
249
  export function registerSnippetUI(server, config) {
247
250
  server.registerTool('snippet_ui', {
248
251
  title: 'Generate UI Snippet',
249
- description: 'Generate standalone UI components (modals, tables, forms, etc.). Auto-detects project styling and outputs matching code structure.',
252
+ description: [
253
+ 'Generate standalone UI components (modals, tables, forms, etc.). Auto-detects project styling and outputs matching code structure.',
254
+ '',
255
+ 'Recommended flow:',
256
+ '1) (Optional) generate_vibes → pick 1 vibe',
257
+ '2) snippet_ui with: type + detailed requirements + constraints (a11y, responsive, focus-visible)',
258
+ '3) If needed: ONE modify_ui pass for polish',
259
+ ].join('\n'),
250
260
  inputSchema,
251
261
  }, async (args) => {
252
262
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-ui.js","sourceRoot":"","sources":["../../src/tools/snippet-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snippet-ui.js","sourceRoot":"","sources":["../../src/tools/snippet-ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gemini-designer/mcp-server",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "MCP server for AI-powered UI design and code generation with Gemini",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,116 @@
1
+ export type PromptingGuideFocus =
2
+ | 'general'
3
+ | 'create_ui'
4
+ | 'snippet_ui'
5
+ | 'landing_page'
6
+ | 'agents_md';
7
+
8
+ export function getPromptingGuide(focus: PromptingGuideFocus): string {
9
+ const header = [
10
+ '# Gemini Designer — Prompting Guide',
11
+ '',
12
+ 'Goal: get high-quality output in 1 pass (optionally +1 refine pass).',
13
+ '',
14
+ '## Recommended flow',
15
+ '1) (Optional) `generate_vibes` → pick 1 vibe',
16
+ '2) `create_ui` (new files) OR `snippet_ui` (standalone component)',
17
+ '3) If close: ONE `modify_ui` pass for targeted polish (avoid full re-generation loops)',
18
+ '',
19
+ ].join('\n');
20
+
21
+ const generalTemplate = [
22
+ '## Universal request template',
23
+ 'Purpose: <what this UI is for>',
24
+ 'Audience: <who uses it>',
25
+ 'Required content: <bullets of exact elements that must exist>',
26
+ 'Constraints:',
27
+ '- WCAG AA',
28
+ '- Mobile-first responsive',
29
+ '- Strong :focus-visible states',
30
+ '- Avoid generic “SaaS card grids” + generic gradients',
31
+ 'Design direction: <ONE clear aesthetic, e.g. editorial | brutalist | art-deco | luxury | playful>',
32
+ '',
33
+ 'If you called `generate_vibes`, pass the selected vibe JSON into `create_ui/snippet_ui` as `vibe`.',
34
+ ].join('\n');
35
+
36
+ const landingTemplate = [
37
+ '## Landing page template (HTML/CSS)',
38
+ 'Use when you want a full marketing page with clear sections.',
39
+ '',
40
+ 'Purpose: Marketing landing page for <product>',
41
+ 'Audience: <developers | founders | teams | etc>',
42
+ 'Required sections:',
43
+ '- nav (anchors + primary CTA)',
44
+ '- hero (headline, subhead, CTAs, one visual “hero artifact”)',
45
+ '- how it works (3 steps)',
46
+ '- tools/features (clear list)',
47
+ '- examples (tool call + output preview)',
48
+ '- testimonials/proof (3 quotes)',
49
+ '- pricing (3 tiers)',
50
+ '- final CTA (email capture + CTA button)',
51
+ '- footer',
52
+ 'Constraints:',
53
+ '- WCAG AA, keyboard nav',
54
+ '- responsive grid on desktop',
55
+ '- no external JS libs; tiny inline JS only for smooth scroll + copy button',
56
+ ].join('\n');
57
+
58
+ const agentsMd = [
59
+ '# Gemini Designer MCP — Agent Workflow Rules',
60
+ '',
61
+ 'Add this section to your repo AGENTS.md (do not delete existing instructions).',
62
+ '',
63
+ '## Golden rules',
64
+ '- Prefer Gemini Designer MCP tools for UI work; avoid hand-writing large UI blobs unless explicitly requested.',
65
+ '- Default to: 1 generation pass + (optional) 1 targeted modify pass. Do not loop endlessly.',
66
+ '- Always maintain WCAG AA, keyboard navigation, and strong :focus-visible states.',
67
+ '- Avoid generic layouts (cookie-cutter SaaS grids) and generic gradients.',
68
+ '',
69
+ '## Recommended workflows',
70
+ '',
71
+ '### A) New page / new component (highest quality, lowest back-and-forth)',
72
+ '1) (Optional) detect_ui_stack(projectRoot) to learn framework/styling conventions.',
73
+ '2) generate_vibes(vibeCount=3..5) and pick ONE vibe.',
74
+ '3) create_ui(...) or snippet_ui(...), pass the vibe JSON as vibe=... and keep requirements explicit.',
75
+ '4) If polish is needed: ONE modify_ui pass (surgical edits).',
76
+ '',
77
+ '### B) Tight iteration on existing UI (no re-generation)',
78
+ '1) modify_ui(targetFile, instruction, preserveLogic=true, returnDiff=true).',
79
+ '2) If diff looks good: modify_ui(..., applyChanges=true).',
80
+ '',
81
+ '### C) Screenshot → design breakdown → implementation',
82
+ '1) analyze_screenshot_ui(imagePath, outputFormat=json).',
83
+ '2) create_ui/snippet_ui to implement the extracted structure.',
84
+ '3) modify_ui to refine alignment/spacing/accessibility.',
85
+ '',
86
+ '### D) Repo refactor / consistency',
87
+ '- catalog_components to discover existing exports to reuse.',
88
+ '- analyze_tokens to extract tokens from CSS/SCSS.',
89
+ '- sync_design_tokens to normalize/convert tokens (css-vars/scss-vars/tailwind/tokens-studio/style-dictionary).',
90
+ '',
91
+ '### E) Architecture planning (before implementation)',
92
+ '1) scaffold_project(name, pages, features) to get a structured plan.',
93
+ '2) Implement pages/components via create_ui/snippet_ui.',
94
+ '',
95
+ '## High-signal request template (copy/paste)',
96
+ 'Purpose: <what this UI is for>',
97
+ 'Audience: <who uses it>',
98
+ 'Required content: <bullets of exact elements that must exist>',
99
+ 'Constraints:',
100
+ '- WCAG AA',
101
+ '- Mobile-first responsive',
102
+ '- Strong :focus-visible states',
103
+ '- Avoid generic “SaaS card grids” + generic gradients',
104
+ 'Design direction: <ONE clear aesthetic (editorial | brutalist | art-deco | luxury | playful)>',
105
+ '',
106
+ 'Tip: For marketing pages, explicitly list required sections (hero, how-it-works, examples, testimonials, pricing, CTA).',
107
+ ].join('\n');
108
+
109
+ if (focus === 'agents_md') return `${agentsMd}\n`;
110
+ if (focus === 'landing_page') return `${header}${landingTemplate}\n\n${generalTemplate}\n`;
111
+ if (focus === 'create_ui')
112
+ return `${header}## create_ui tips\n- Be explicit about required elements and file path.\n- Include constraints and one aesthetic direction.\n\n${generalTemplate}\n`;
113
+ if (focus === 'snippet_ui')
114
+ return `${header}## snippet_ui tips\n- Choose the closest \"type\" and list interaction rules (focus trap, keyboard, loading, etc.).\n\n${generalTemplate}\n`;
115
+ return `${header}${generalTemplate}\n`;
116
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Prompt/Resource Registry
3
+ *
4
+ * Makes best-practice prompting guidance discoverable to MCP clients.
5
+ * Tools are still the most widely supported entrypoint, so we also ship a
6
+ * deterministic `prompting_guide` tool.
7
+ */
8
+
9
+ import { z } from 'zod';
10
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ import { getPromptingGuide, type PromptingGuideFocus } from '../guides/prompting.js';
12
+ import { Config } from '../config/index.js';
13
+
14
+ const PROMPTING_GUIDE_URI = 'gemini-designer://docs/prompting-guide';
15
+
16
+ export function registerPromptsAndResources(server: McpServer, _config: Config): void {
17
+ server.registerPrompt(
18
+ 'prompting_guide',
19
+ {
20
+ title: 'Prompting Guide',
21
+ description: 'Recommended flow + templates for high-quality one-pass UI generation.',
22
+ argsSchema: {
23
+ focus: z
24
+ .enum(['general', 'create_ui', 'snippet_ui', 'landing_page', 'agents_md'])
25
+ .default('general')
26
+ .describe('Which template to return.'),
27
+ },
28
+ },
29
+ async (args, _extra) => {
30
+ const focus = (args.focus as PromptingGuideFocus) || 'general';
31
+ const text = getPromptingGuide(focus);
32
+ return {
33
+ description: 'Prompting guide content',
34
+ messages: [
35
+ {
36
+ role: 'user' as const,
37
+ content: { type: 'text' as const, text },
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ );
43
+
44
+ server.registerResource(
45
+ 'Prompting Guide',
46
+ PROMPTING_GUIDE_URI,
47
+ {
48
+ title: 'Prompting Guide',
49
+ description:
50
+ 'Recommended prompting flow + templates (same content as the prompting_guide tool/prompt).',
51
+ },
52
+ async () => {
53
+ return {
54
+ contents: [
55
+ {
56
+ uri: PROMPTING_GUIDE_URI,
57
+ mimeType: 'text/markdown',
58
+ text: getPromptingGuide('general'),
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ );
64
+ }
package/src/server.ts CHANGED
@@ -8,6 +8,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
8
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
9
  import { Config } from './config/index.js';
10
10
  import { registerTools } from './tools/index.js';
11
+ import { registerPromptsAndResources } from './prompts/index.js';
11
12
  import { VERSION } from './version.js';
12
13
 
13
14
  export async function createServer(config: Config) {
@@ -19,6 +20,9 @@ export async function createServer(config: Config) {
19
20
  // Register all MCP tools
20
21
  registerTools(server, config);
21
22
 
23
+ // Prompts/resources for clients that support them
24
+ registerPromptsAndResources(server, config);
25
+
22
26
  // Use stdio transport (standard for MCP)
23
27
  const transport = new StdioServerTransport();
24
28
  await server.connect(transport);
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
+ import * as path from 'node:path';
12
13
  import { z } from 'zod';
13
14
  import { Config } from '../config/index.js';
14
15
  import { buildContext } from '../context/builder.js';
@@ -166,7 +167,12 @@ function buildUserPrompt(args: {
166
167
  let stylingInstructions = '';
167
168
  if (needsSeparateStyleFile) {
168
169
  const ext = args.stylingInfo.fileExtension;
169
- const stylePath = args.targetPath.replace(/\.(tsx?|jsx?|vue|svelte)$/, ext);
170
+ let stylePath = args.targetPath.replace(/\.(tsx?|jsx?|vue|svelte|html|astro)$/, ext);
171
+
172
+ // For static HTML pages, prefer a conventional `styles.css` next to `index.html`.
173
+ if (args.targetPath.endsWith('/index.html') && ext === '.css') {
174
+ stylePath = args.targetPath.replace(/\/index\.html$/, '/styles.css');
175
+ }
170
176
  stylingInstructions = `Style file: ${stylePath}\n`;
171
177
  }
172
178
 
@@ -286,8 +292,25 @@ export function registerCreateUI(server: McpServer, config: Config) {
286
292
  'create_ui',
287
293
  {
288
294
  title: 'Create UI Component/View',
289
- description:
290
- 'Generate a complete UI component. Auto-detects project styling (Tailwind, CSS Modules, styled-components, etc.) and outputs matching code structure.',
295
+ description: [
296
+ 'Generate a complete UI component/view. Auto-detects project styling (Tailwind, CSS Modules, styled-components, etc.) and outputs matching code structure.',
297
+ '',
298
+ 'High-signal flow:',
299
+ '1) (Optional) generate_vibes → pick 1 vibe',
300
+ '2) create_ui with: purpose + audience + required content + constraints + design direction',
301
+ '3) If needed: ONE modify_ui pass for polish (don’t fully regenerate)',
302
+ '',
303
+ 'Prompting template:',
304
+ 'Purpose: <what this UI is for>',
305
+ 'Audience: <who uses it>',
306
+ 'Required content: <bullets of exact elements that must exist>',
307
+ 'Constraints:',
308
+ '- WCAG AA',
309
+ '- Mobile-first responsive',
310
+ '- Strong :focus-visible states',
311
+ '- Avoid generic “SaaS card grids” + generic gradients',
312
+ 'Design direction: <ONE clear aesthetic, e.g. editorial | brutalist | art-deco | luxury | playful>',
313
+ ].join('\n'),
291
314
  inputSchema,
292
315
  },
293
316
  async (args) => {
@@ -298,7 +321,10 @@ export function registerCreateUI(server: McpServer, config: Config) {
298
321
  const vibe = args.vibe as string | undefined;
299
322
  const contextFiles = (args.contextFiles as string[]) || [];
300
323
  const targetPath = args.targetPath as string;
301
- const projectRoot = (args.projectRoot as string) || process.cwd();
324
+ const rawProjectRoot = (args.projectRoot as string) || process.cwd();
325
+ const projectRoot = path.isAbsolute(rawProjectRoot)
326
+ ? rawProjectRoot
327
+ : path.resolve(process.cwd(), rawProjectRoot);
302
328
  const requestedApproach = (args.stylingApproach as string) || 'auto';
303
329
  const stylingApproachCustom = args.stylingApproachCustom as string | undefined;
304
330
  const shouldWrite = args.writeToFile === true;
@@ -475,7 +501,24 @@ export function registerCreateUI(server: McpServer, config: Config) {
475
501
  const writes: Array<{ file: string; backup?: string }> = [];
476
502
 
477
503
  for (const file of parsed.files) {
478
- const safePath = assertWritablePath(file.path, config);
504
+ // Resolve any relative paths from the projectRoot (NOT process.cwd()).
505
+ // Models often output paths like "src/App.tsx" or "index.html" even when given absolute paths.
506
+ // If we resolved those from process.cwd(), we might accidentally write to the wrong repo.
507
+ const resolvedPath = path.isAbsolute(file.path) ? file.path : path.resolve(projectRoot, file.path);
508
+
509
+ let safePath: string;
510
+ try {
511
+ safePath = assertWritablePath(resolvedPath, config);
512
+ } catch (error) {
513
+ // If the model outputs "/src/..." style paths, treat them as project-relative.
514
+ // ("/src/App.tsx" is almost never a real filesystem absolute path that we want.)
515
+ if (path.isAbsolute(file.path) && file.path.startsWith(path.sep)) {
516
+ const stripped = file.path.replace(new RegExp(`^\\${path.sep}+`), '');
517
+ safePath = assertWritablePath(path.resolve(projectRoot, stripped), config);
518
+ } else {
519
+ throw error;
520
+ }
521
+ }
479
522
  const writeResult = await writeFile(safePath, file.content, { backup, format: false });
480
523
 
481
524
  if (!writeResult.success) {
@@ -138,7 +138,14 @@ export function registerGenerateVibes(server: McpServer, config: Config): void {
138
138
  {
139
139
  title: 'Generate Design Vibes',
140
140
  description:
141
- 'Generate design direction options (vibes) with color palettes, typography, and spacing. Call this before create_ui to establish design consistency.',
141
+ [
142
+ 'Generate design direction options (vibes) with color palettes, typography, and spacing.',
143
+ '',
144
+ 'Recommended flow:',
145
+ '1) Call generate_vibes (pick 1 vibe).',
146
+ '2) Pass the selected vibe JSON into create_ui/snippet_ui as `vibe`.',
147
+ '3) If the first draft is close, call modify_ui for targeted refinements (1 pass).',
148
+ ].join('\n'),
142
149
  inputSchema,
143
150
  },
144
151
  async (args) => {
@@ -17,6 +17,7 @@ import { registerSyncDesignTokens } from './sync-design-tokens.js';
17
17
  import { registerCatalogComponents } from './catalog-components.js';
18
18
  import { registerGenerateComponentVariants } from './generate-component-variants.js';
19
19
  import { registerAnalyzeScreenshotUI } from './analyze-screenshot-ui.js';
20
+ import { registerPromptingGuideTool } from './prompting-guide.js';
20
21
 
21
22
  /**
22
23
  * Register all MCP tools
@@ -37,6 +38,7 @@ export function registerTools(server: McpServer, config: Config): void {
37
38
  registerCatalogComponents(server, config);
38
39
  registerGenerateComponentVariants(server, config);
39
40
  registerAnalyzeScreenshotUI(server, config);
41
+ registerPromptingGuideTool(server, config);
40
42
 
41
43
  console.error('[tools] All tools registered');
42
44
  }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * prompting_guide Tool
3
+ *
4
+ * Deterministic: returns the recommended prompting flow + templates.
5
+ * Useful for “dumb” agents that don’t read repo docs.
6
+ */
7
+
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import { z } from 'zod';
10
+ import { Config } from '../config/index.js';
11
+ import { getPromptingGuide, type PromptingGuideFocus } from '../guides/prompting.js';
12
+
13
+ const inputSchema = {
14
+ focus: z
15
+ .enum(['general', 'create_ui', 'snippet_ui', 'landing_page', 'agents_md'])
16
+ .default('general')
17
+ .describe('Which template to return.'),
18
+ };
19
+
20
+ function guideFor(focus: PromptingGuideFocus): string {
21
+ return getPromptingGuide(focus);
22
+ }
23
+
24
+ export function registerPromptingGuideTool(server: McpServer, _config: Config): void {
25
+ server.registerTool(
26
+ 'prompting_guide',
27
+ {
28
+ title: 'Prompting Guide',
29
+ description:
30
+ 'Return the recommended prompting flow + templates (useful for agents that don’t read repo docs).',
31
+ inputSchema,
32
+ },
33
+ async (args) => {
34
+ const focus = (args.focus as PromptingGuideFocus) || 'general';
35
+ return {
36
+ content: [{ type: 'text' as const, text: guideFor(focus) }],
37
+ };
38
+ }
39
+ );
40
+ }
@@ -284,7 +284,10 @@ Return ONLY the corrected JSON object.`;
284
284
  function deriveStylePath(componentPath: string, stylingInfo: StylingInfo): string {
285
285
  const ext = stylingInfo.fileExtension;
286
286
  if (!ext) return '';
287
- return componentPath.replace(/\.(tsx?|jsx?|vue|svelte)$/, ext);
287
+ if (componentPath.endsWith('/index.html') && ext === '.css') {
288
+ return componentPath.replace(/\/index\.html$/, '/styles.css');
289
+ }
290
+ return componentPath.replace(/\.(tsx?|jsx?|vue|svelte|html|astro)$/, ext);
288
291
  }
289
292
 
290
293
  export function registerSnippetUI(server: McpServer, config: Config): void {
@@ -293,7 +296,14 @@ export function registerSnippetUI(server: McpServer, config: Config): void {
293
296
  {
294
297
  title: 'Generate UI Snippet',
295
298
  description:
296
- 'Generate standalone UI components (modals, tables, forms, etc.). Auto-detects project styling and outputs matching code structure.',
299
+ [
300
+ 'Generate standalone UI components (modals, tables, forms, etc.). Auto-detects project styling and outputs matching code structure.',
301
+ '',
302
+ 'Recommended flow:',
303
+ '1) (Optional) generate_vibes → pick 1 vibe',
304
+ '2) snippet_ui with: type + detailed requirements + constraints (a11y, responsive, focus-visible)',
305
+ '3) If needed: ONE modify_ui pass for polish',
306
+ ].join('\n'),
297
307
  inputSchema,
298
308
  },
299
309
  async (args) => {