thumbnail-generator-mcp 1.0.1 → 1.0.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/dist/index.js CHANGED
@@ -51,49 +51,72 @@ async function validateLicense() {
51
51
  }
52
52
  // ─── Prompt builders ─────────────────────────────────────────────────────────
53
53
  function buildPhotoEditPrompt(opts) {
54
- const { background, textOverlay, textPosition, textColor, outfitChange } = opts;
54
+ const { background, textOverlay, textPosition, textColor, outfitChange, expression, lightingStyle, mood, videoTopic, hasReferencePhoto } = opts;
55
+ const lightingDirective = lightingStyle === "bright"
56
+ ? "Bright, even studio lighting — soft shadows, no harsh contrast, clean and professional"
57
+ : lightingStyle === "moody"
58
+ ? "Low-key moody lighting — one side lit, deep shadows on the other, atmospheric and dramatic"
59
+ : lightingStyle === "natural"
60
+ ? "Natural daylight — soft diffused light, no artificial feel, warm and organic"
61
+ : "Cinematic dramatic lighting — strong rim light from top-behind, high contrast punchy shadows, light source top-front. This is the default for high-performing thumbnails.";
55
62
  return `TASK: Transform this selfie into a professional YouTube thumbnail.
56
-
63
+ ${videoTopic ? `\nVideo context: This thumbnail is for a video about "${videoTopic}". Use this to inform the mood, background details, and overall composition.\n` : ""}
64
+ ${hasReferencePhoto ? "NOTE: A reference photo is also provided. Use it to understand the person's appearance, skin tone, facial features, and hair. The first image is the selfie to edit; the second image is the reference.\n" : ""}
57
65
  === PRESERVE EXACTLY — DO NOT CHANGE THESE ===
58
- - Face: exact facial structure, bone structure, skin tone, eye color, eyebrows, nose shape, mouth shape, jawline
59
- - Hair: exact color, length, texture, style
60
- - Expression: intensify the existing expression do NOT change it to something neutral
61
- - Any accessories already visible (glasses, earrings, etc.)
66
+ - Face: exact facial structure, bone structure, skin tone, eye color, eyebrows, nose shape, mouth shape, jawline — this is NON-NEGOTIABLE
67
+ - Hair: exact color, length, texture, and style
68
+ - Any accessories already visible (glasses, earrings, jewelry, etc.)
69
+ - Approximate body position and pose from the original photo
70
+
71
+ === EXPRESSION ===
72
+ ${expression
73
+ ? `Required expression: ${expression}. Intensify this significantly — push it further than in the original. Exaggerate it. Big expressions win clicks on YouTube.`
74
+ : "Intensify the existing expression dramatically — push it much further than in the original photo. Exaggerate it. Big, bold, unambiguous expressions win clicks. Do NOT neutralize or soften the expression."}
62
75
 
63
76
  === CHANGE ===
64
77
  Background: ${background}
65
- Lighting: cinematic, strong rim light, high contrast, dramatic — light source from top-front
66
- Skin: smooth, professional retouching, keep natural skin tone
67
- ${outfitChange ? `Outfit: ${outfitChange}` : "Outfit: keep as-is, ensure it looks polished"}
78
+ Lighting: ${lightingDirective}
79
+ Skin: smooth, professional retouching keep natural skin tone, remove blemishes, no heavy filters or airbrushing
80
+ ${outfitChange ? `Outfit: ${outfitChange}` : "Outfit: keep the original outfit as-is ensure it looks sharp and intentional"}
81
+ ${mood ? `Overall mood/vibe: ${mood}` : ""}
68
82
 
69
83
  === ADD ===
70
- Text overlay: "${textOverlay}" — massive bold block letters (Impact or similar), ${textColor} fill, thick black outline 4px, drop shadow, placed ${textPosition} of image
71
- Composition: person takes up 60-70% of frame, slightly off-center to leave room for text
84
+ Text overlay: "${textOverlay}" — massive bold block letters (Impact or Bebas Neue), ${textColor} fill, thick black outline 4–5px, hard drop shadow offset bottom-right. Place text ${textPosition} of image. Text must be readable at 320×180px (small thumbnail size).
85
+ Composition: person fills 6070% of frame, positioned to leave clear negative space for the text. Face is the undisputed focal point of the entire image.
72
86
 
73
87
  === OUTPUT REQUIREMENTS ===
74
- - Dimensions: 1280×720 (16:9)
75
- - Style: hyper-realistic, vibrant colors, NOT illustrated or painted
76
- - Quality: ultra-sharp, professional YouTube thumbnail quality
77
- - The person's face must be the focal point — do NOT obscure it with text`;
88
+ - Dimensions: exactly 1280×720 pixels (16:9 widescreen)
89
+ - Style: hyper-realistic photograph NOT illustrated, NOT painted, NOT AI-art stylized
90
+ - Quality: ultra-sharp, vibrant saturated colors, professional broadcast quality
91
+ - Do NOT add watermarks, logos, borders, or decorative frames`;
78
92
  }
79
93
  function buildTextOnlyPrompt(opts) {
80
- const { subject, background, textOverlay, textPosition, textColor } = opts;
94
+ const { subject, background, textOverlay, textPosition, textColor, lightingStyle, mood, videoTopic } = opts;
95
+ const lightingDirective = lightingStyle === "bright"
96
+ ? "Bright even studio lighting — soft shadows, clean professional look"
97
+ : lightingStyle === "moody"
98
+ ? "Low-key moody lighting — deep shadows, single-sided light source, atmospheric"
99
+ : lightingStyle === "natural"
100
+ ? "Natural daylight, soft and diffused, warm and organic"
101
+ : "Cinematic dramatic lighting — strong rim light, high contrast, punchy shadows, light source from top-front";
81
102
  return `Create a professional YouTube thumbnail (1280×720, 16:9).
82
-
103
+ ${videoTopic ? `\nVideo topic: "${videoTopic}"\n` : ""}
83
104
  Subject: ${subject}
84
105
  Background: ${background}
85
- Style: cinematic, vibrant, high contrast, dramatic lighting
106
+ Lighting: ${lightingDirective}
107
+ ${mood ? `Mood/vibe: ${mood}` : ""}
86
108
 
87
- Text overlay: "${textOverlay}" — massive bold block letters (Impact or similar), ${textColor} fill, thick black outline 4px, drop shadow, placed ${textPosition} of image
109
+ Text overlay: "${textOverlay}" — massive bold block letters (Impact or Bebas Neue), ${textColor} fill, thick black outline 4–5px, hard drop shadow. Place text ${textPosition} of image. Must be readable at small thumbnail size.
88
110
 
89
111
  Requirements:
90
- - Hyper-realistic, NOT illustrated or painted
91
- - Ultra-sharp, professional YouTube thumbnail quality
92
- - Text must be large and immediately readable at small sizes
93
- - Vibrant, eye-catching colors`;
112
+ - Hyper-realistic photograph style — NOT illustrated or painted
113
+ - Ultra-sharp, vibrant, professional YouTube thumbnail quality
114
+ - Subject must be the clear focal point
115
+ - Text must be large and immediately readable at 320×180px
116
+ - Do NOT add watermarks, borders, or decorative frames`;
94
117
  }
95
118
  // ─── Gemini image call ────────────────────────────────────────────────────────
96
- async function generateImage(prompt, imageBase64, imageMimeType) {
119
+ async function generateImage(prompt, imageBase64, imageMimeType, refBase64, refMimeType) {
97
120
  const genAI = new GoogleGenerativeAI(GEMINI_API_KEY);
98
121
  const model = genAI.getGenerativeModel({
99
122
  model: IMAGE_MODEL,
@@ -108,6 +131,11 @@ async function generateImage(prompt, imageBase64, imageMimeType) {
108
131
  inlineData: { data: imageBase64, mimeType: imageMimeType },
109
132
  });
110
133
  }
134
+ if (refBase64 && refMimeType) {
135
+ parts.push({
136
+ inlineData: { data: refBase64, mimeType: refMimeType },
137
+ });
138
+ }
111
139
  parts.push({ text: prompt });
112
140
  const result = await model.generateContent(parts);
113
141
  const response = result.response;
@@ -140,44 +168,130 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
140
168
  tools: [
141
169
  {
142
170
  name: "generate_thumbnail",
143
- description: "Generate a YouTube thumbnail (1280×720). Optionally provide a selfie photo to edit. Returns the file path of the saved image on the Desktop.",
171
+ description: `YouTube thumbnail generator powered by Gemini. Saves the result to the user's Desktop.
172
+
173
+ ⚠️ IMPORTANT: Do NOT call this tool immediately. You must run a full intake conversation first to collect all the details Gemini needs to produce a great result. Vague inputs produce generic thumbnails. Specific inputs produce professional ones.
174
+
175
+ ## INTAKE CONVERSATION — follow this exact sequence, one question at a time
176
+
177
+ ### Phase 1 — Photo
178
+ Ask: "Do you have a photo or selfie you want to use as the base? Even a quick iPhone shot works great — drag it into the chat or tell me the file path on your Desktop."
179
+ - YES → get the file path → continue
180
+ - NO → ask for a subject description → continue
181
+
182
+ ### Phase 1b — Reference photo (optional, ask after Phase 1)
183
+ Ask: "Do you have a second reference photo of yourself I can also use? This helps Gemini understand your face better — especially useful if your selfie is at an unusual angle or lighting. Drag it in or give me the path. (Or skip this if your selfie is clear.)"
184
+
185
+ ### Phase 2 — Video context
186
+ Ask: "What's this thumbnail for? Give me the video title or a quick description of the topic. This helps me choose the right background mood."
187
+
188
+ ### Phase 3 — Expression (photo mode only)
189
+ Ask: "Describe the expression in your photo. The best thumbnails have big, exaggerated expressions — shocked, excited, disgusted, smug, terrified. Should I keep your expression as-is, or intensify/change it? Be specific."
190
+ Good examples: "jaw dropped, eyes wide open", "huge excited grin, eyebrows raised", "looking sideways with a smug smirk"
191
+
192
+ ### Phase 4 — Background
193
+ Ask: "Describe the background you want. Think cinematically — what's in the scene, what colors dominate, what's the mood?"
194
+ DO NOT accept vague answers like "dark" or "office". Push for specifics:
195
+ - If they say "dark background" → ask: "Dark how? Pure black void? Stormy night sky? Underground parking garage? Moody dimly-lit office?"
196
+ - If they say "something cool" → suggest 3 specific options based on their video topic
197
+ Good examples:
198
+ • "Floor-to-ceiling windows overlooking a rainy city at night, blurred bokeh lights"
199
+ • "Bright explosion with orange and red fire debris mid-air, smoke trails"
200
+ • "Dark luxury office, single desk lamp, city skyline visible through windows behind me"
201
+ • "Clean gradient from deep navy to black, professional and minimal"
202
+ • "Stock market charts on glowing monitors filling the background, red and green candlesticks"
203
+
204
+ ### Phase 5 — Text
205
+ Ask: "What text goes on the thumbnail? Keep it short and punchy — 2–5 words, ALL CAPS usually hits hardest."
206
+ Then: "What color? White with black outline is most readable. Yellow pops on dark backgrounds. Red creates urgency."
207
+ Then: "Where should it sit — left side, right side, top, or bottom?"
208
+
209
+ ### Phase 6 — Lighting
210
+ Ask: "What lighting style fits this thumbnail?"
211
+ - Dramatic/cinematic — strong shadows, rim light from behind (default, works for most thumbnails)
212
+ - Bright/clean — even studio light, soft shadows, professional
213
+ - Moody — low-key, one side lit, deep shadows
214
+ - Natural — soft daylight, organic feel
215
+
216
+ ### Phase 7 — Outfit (photo mode only)
217
+ Ask: "Do you want to change your outfit? I can swap it out — just describe what you'd like (e.g. 'dark navy suit', 'casual grey hoodie', 'business casual blazer'). Or say 'keep it' to leave it as-is."
218
+
219
+ ### Phase 8 — Variations
220
+ Ask: "Should I generate 1 version, or 2–3 variations so you can compare and pick the best?"
221
+
222
+ ## Before calling the tool — read back a summary
223
+ "Here's what I'm generating:
224
+ - Photo: [path or subject description]
225
+ - Video: [topic]
226
+ - Expression: [description]
227
+ - Background: [full description]
228
+ - Lighting: [style]
229
+ - Text: '[TEXT]' in [color] — [position]
230
+ - Outfit: [change or keep]
231
+ - Variations: [number]
232
+
233
+ Ready? Say yes and I'll generate it."
234
+
235
+ Only call the tool after the user confirms.`,
144
236
  inputSchema: {
145
237
  type: "object",
146
238
  properties: {
147
239
  background: {
148
240
  type: "string",
149
- description: "Describe the background scene (e.g. 'dark dramatic office with city lights', 'bright outdoor park', 'stock market charts on screens behind me')",
241
+ description: "Cinematic, specific background description. Must include scene details, colors, time of day, and mood. Not just 'dark' — e.g. 'Dark luxury office at night, single desk lamp casting a warm pool of light, blurred city skyline visible through rain-streaked windows behind me'",
150
242
  },
151
243
  text_overlay: {
152
244
  type: "string",
153
- description: "The text to display on the thumbnail in bold (e.g. 'I LOST EVERYTHING', 'THIS CHANGED MY LIFE', '$10K/MONTH')",
245
+ description: "The exact text to display on the thumbnail in massive bold letters. Short and punchy — 2–5 words, ALL CAPS (e.g. 'I LOST EVERYTHING', 'STEAL THIS FROM ME', '$10K IN 30 DAYS')",
154
246
  },
155
247
  text_position: {
156
248
  type: "string",
157
249
  enum: ["left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"],
158
- description: "Where to place the text overlay",
250
+ description: "Where to place the text overlay — choose based on where the person is NOT positioned to avoid overlap",
159
251
  default: "left",
160
252
  },
161
253
  text_color: {
162
254
  type: "string",
163
- description: "Text color (e.g. 'white', 'yellow', 'red')",
255
+ description: "Text color. 'white' is most readable, 'yellow' pops on dark backgrounds, 'red' creates urgency. Always paired with a thick black outline.",
164
256
  default: "white",
165
257
  },
166
258
  photo_path: {
167
259
  type: "string",
168
- description: "Absolute path to a selfie/photo to use as the base image for editing. If omitted, generates from text description only.",
260
+ description: "Absolute file path to the selfie/photo to use as the base image (e.g. /Users/jordan/Desktop/selfie.jpg). If omitted, Gemini generates the subject from subject_description.",
169
261
  },
170
262
  subject_description: {
171
263
  type: "string",
172
- description: "Required only when photo_path is omitted. Describe the person or subject to generate (e.g. 'professional man in his 30s, dark suit, surprised expression').",
264
+ description: "Only when photo_path is omitted. Describe the person and their expression in detail (e.g. 'professional man in his 30s, dark stubble, wearing a navy suit, jaw dropped in shock, eyes wide open, pointing at camera').",
265
+ },
266
+ expression: {
267
+ type: "string",
268
+ description: "The expression to apply or intensify on the person's face. Be very specific — Gemini performs better with explicit direction (e.g. 'jaw dropped, eyes wide, eyebrows raised as high as possible', 'huge grin, teeth showing, eyebrows up', 'disgusted face, nose wrinkled, one eyebrow raised')",
269
+ },
270
+ lighting_style: {
271
+ type: "string",
272
+ enum: ["dramatic", "bright", "moody", "natural"],
273
+ description: "Lighting mood: 'dramatic' = cinematic rim light + high contrast (default, best for most thumbnails), 'bright' = clean even studio light, 'moody' = low-key one-sided, 'natural' = soft daylight",
274
+ default: "dramatic",
275
+ },
276
+ mood: {
277
+ type: "string",
278
+ description: "Optional overall vibe description to guide Gemini's artistic choices (e.g. 'high-stakes and urgent', 'aspirational and premium', 'shocking and alarming', 'confident and authoritative')",
279
+ },
280
+ video_topic: {
281
+ type: "string",
282
+ description: "The video title or topic — helps Gemini make contextually appropriate decisions about composition and mood (e.g. 'How I made $10k in one month dropshipping', 'I quit my corporate job — here is what happened')",
283
+ },
284
+ reference_photo_path: {
285
+ type: "string",
286
+ description: "Optional. Absolute path to an additional reference photo of the person — useful when the selfie alone doesn't fully capture their appearance. Gemini uses this to better understand facial features, skin tone, and hair. (e.g. /Users/jordan/Desktop/reference.jpg)",
173
287
  },
174
288
  outfit_change: {
175
289
  type: "string",
176
- description: "Optional. Describe an outfit change (e.g. 'dark navy suit, no tie'). Only applies when photo_path is provided.",
290
+ description: "Optional outfit to swap onto the person in photo mode (e.g. 'dark navy slim-fit suit, no tie, white shirt', 'casual grey hoodie, relaxed fit'). Omit to keep original outfit.",
177
291
  },
178
292
  variations: {
179
293
  type: "number",
180
- description: "Number of variations to generate (1–4). Default 1.",
294
+ description: "Number of variations to generate (1–4). Default 1. Use 2–3 for A/B testing.",
181
295
  minimum: 1,
182
296
  maximum: 4,
183
297
  default: 1,
@@ -203,7 +317,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
203
317
  };
204
318
  }
205
319
  const args = request.params.arguments;
206
- const { background, text_overlay, text_position = "left", text_color = "white", photo_path, subject_description, outfit_change, variations = 1, } = args;
320
+ const { background, text_overlay, text_position = "left", text_color = "white", photo_path, subject_description, reference_photo_path, outfit_change, expression, lighting_style, mood, video_topic, variations = 1, } = args;
207
321
  if (!photo_path && !subject_description) {
208
322
  return {
209
323
  content: [{ type: "text", text: "Provide either photo_path (selfie) or subject_description." }],
@@ -212,6 +326,23 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
212
326
  }
213
327
  const savedPaths = [];
214
328
  const count = Math.min(Math.max(Math.floor(variations), 1), 4);
329
+ // Load reference photo once outside the loop — same for all variations
330
+ let refBase64;
331
+ let refMimeType;
332
+ if (reference_photo_path) {
333
+ try {
334
+ const buf = fs.readFileSync(reference_photo_path);
335
+ refBase64 = buf.toString("base64");
336
+ const ext = path.extname(reference_photo_path).toLowerCase().replace(".", "");
337
+ refMimeType = ext === "jpg" ? "image/jpeg" : ext === "png" ? "image/png" : "image/jpeg";
338
+ }
339
+ catch (err) {
340
+ return {
341
+ content: [{ type: "text", text: `Could not read reference photo: ${err instanceof Error ? err.message : err}` }],
342
+ isError: true,
343
+ };
344
+ }
345
+ }
215
346
  for (let i = 0; i < count; i++) {
216
347
  let imageBase64;
217
348
  let imageMimeType;
@@ -230,11 +361,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
230
361
  }
231
362
  }
232
363
  const prompt = photo_path
233
- ? buildPhotoEditPrompt({ background, textOverlay: text_overlay, textPosition: text_position, textColor: text_color, outfitChange: outfit_change })
234
- : buildTextOnlyPrompt({ subject: subject_description, background, textOverlay: text_overlay, textPosition: text_position, textColor: text_color });
364
+ ? buildPhotoEditPrompt({ background, textOverlay: text_overlay, textPosition: text_position, textColor: text_color, outfitChange: outfit_change, expression, lightingStyle: lighting_style, mood, videoTopic: video_topic, hasReferencePhoto: !!refBase64 })
365
+ : buildTextOnlyPrompt({ subject: subject_description, background, textOverlay: text_overlay, textPosition: text_position, textColor: text_color, lightingStyle: lighting_style, mood, videoTopic: video_topic });
235
366
  let result;
236
367
  try {
237
- result = await generateImage(prompt, imageBase64, imageMimeType);
368
+ result = await generateImage(prompt, imageBase64, imageMimeType, refBase64, refMimeType);
238
369
  }
239
370
  catch (err) {
240
371
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thumbnail-generator-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "YouTube thumbnail generator MCP server for Claude Desktop",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",