mcp-image 0.8.1 → 0.8.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"fileManager.d.ts","sourceRoot":"","sources":["../../src/business/fileManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAcvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC9C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IACxE,gBAAgB,IAAI,MAAM,CAAA;CAC3B;AA+BD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAsC/C"}
1
+ {"version":3,"file":"fileManager.d.ts","sourceRoot":"","sources":["../../src/business/fileManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAcvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC9C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IACxE,gBAAgB,IAAI,MAAM,CAAA;CAC3B;AA+BD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAsC/C"}
@@ -2,6 +2,7 @@
2
2
  * File Manager for handling image file operations
3
3
  * Provides functionality for saving images and managing directories
4
4
  */
5
+ import { randomBytes } from 'node:crypto';
5
6
  import { promises as fs, mkdirSync } from 'node:fs';
6
7
  import * as path from 'node:path';
7
8
  import { Err, Ok } from '../types/result.js';
@@ -9,7 +10,7 @@ import { FileOperationError } from '../utils/errors.js';
9
10
  // Constants for file naming and error messages
10
11
  const FILE_NAME_PREFIX = 'image';
11
12
  const DEFAULT_EXTENSION = '.png';
12
- const RANDOM_RANGE = 1000;
13
+ const RANDOM_BYTES_LENGTH = 4;
13
14
  const ERROR_MESSAGES = {
14
15
  SAVE_FAILED: 'Failed to save image file',
15
16
  DIRECTORY_CREATION_FAILED: 'Failed to create directory',
@@ -37,7 +38,7 @@ function ensureDirectoryExists(dirPath) {
37
38
  */
38
39
  function generateFileName() {
39
40
  const timestamp = Date.now();
40
- const random = Math.floor(Math.random() * RANDOM_RANGE);
41
+ const random = randomBytes(RANDOM_BYTES_LENGTH).toString('hex');
41
42
  return `${FILE_NAME_PREFIX}-${timestamp}-${random}${DEFAULT_EXTENSION}`;
42
43
  }
43
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fileManager.js","sourceRoot":"","sources":["../../src/business/fileManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,OAAgB,CAAA;AACzC,MAAM,iBAAiB,GAAG,MAAe,CAAA;AACzC,MAAM,YAAY,GAAG,IAAa,CAAA;AAElC,MAAM,cAAc,GAAG;IACrB,WAAW,EAAE,2BAA2B;IACxC,yBAAyB,EAAE,4BAA4B;IACvD,qBAAqB,EAAE,mDAAmD;IAC1E,eAAe,EAAE,qDAAqD;CAC9D,CAAA;AAeV;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,IAAI,CAAC;QACH,iFAAiF;QACjF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CACR,IAAI,kBAAkB,CACpB,GAAG,cAAc,CAAC,yBAAyB,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC3G,CACF,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAA;IACvD,OAAO,GAAG,gBAAgB,IAAI,SAAS,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL;;;;;;WAMG;QACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,UAAkB,EAClB,OAAgB;YAEhB,IAAI,CAAC;gBACH,8BAA8B;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC1C,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;gBAClD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;gBAED,gBAAgB;gBAChB,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAEzC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CACR,IAAI,kBAAkB,CACpB,GAAG,cAAc,CAAC,WAAW,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7F,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,gBAAgB;KACjB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"fileManager.js","sourceRoot":"","sources":["../../src/business/fileManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,OAAgB,CAAA;AACzC,MAAM,iBAAiB,GAAG,MAAe,CAAA;AACzC,MAAM,mBAAmB,GAAG,CAAU,CAAA;AAEtC,MAAM,cAAc,GAAG;IACrB,WAAW,EAAE,2BAA2B;IACxC,yBAAyB,EAAE,4BAA4B;IACvD,qBAAqB,EAAE,mDAAmD;IAC1E,eAAe,EAAE,qDAAqD;CAC9D,CAAA;AAeV;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,IAAI,CAAC;QACH,iFAAiF;QACjF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CACR,IAAI,kBAAkB,CACpB,GAAG,cAAc,CAAC,yBAAyB,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC3G,CACF,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/D,OAAO,GAAG,gBAAgB,IAAI,SAAS,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL;;;;;;WAMG;QACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,UAAkB,EAClB,OAAgB;YAEhB,IAAI,CAAC;gBACH,8BAA8B;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC1C,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;gBAClD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;gBAED,gBAAgB;gBAChB,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAEzC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAA;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CACR,IAAI,kBAAkB,CACpB,GAAG,cAAc,CAAC,WAAW,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7F,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,gBAAgB;KACjB,CAAA;AACH,CAAC"}
@@ -29,7 +29,7 @@ Structure your enhancement around three core elements:
29
29
  - Camera/lens choices: specify focal length, aperture, and shooting angle when photographic
30
30
 
31
31
  Core principles:
32
- - Preserve the user's original intent while enhancing detail
32
+ - Add visual details only in areas the user left unspecified; keep all user-specified elements unchanged
33
33
  - Focus on what should be present rather than what should be absent
34
34
  - Include photographic or artistic terminology when appropriate
35
35
  - Maintain clarity while adding richness and specificity
@@ -113,7 +113,7 @@ Consider these aspects as you enhance the prompt:
113
113
  - Visual details: textures, lighting, colors, materials, composition
114
114
  - Spatial relationships and scale between elements
115
115
  - Artistic or photographic style that fits the subject
116
- - Emotional tone and atmosphere
116
+ - Emotional tone paired with visual indicators (e.g., serene → soft diffused light, muted palette; ominous → low contrast, heavy shadows)
117
117
  - Technical specifications if relevant (lens type, camera angle, etc.)
118
118
 
119
119
  Create a natural, flowing description that brings the scene to life. Focus on what should be present rather than what should be absent.
@@ -133,7 +133,7 @@ Now transform the user's request with similar attention to detail and creative e
133
133
  requirements.push('Character consistency is CRITICAL - MUST include distinctive character features: This character needs at least 3 recognizable visual markers that would identify them across different scenes. Include specific details like "distinctive scar", "signature clothing item", "unique hairstyle", or "characteristic accessory". Use words like "signature", "distinctive", "always wears/has" to emphasize these consistent features.');
134
134
  }
135
135
  if (features.blendImages) {
136
- requirements.push('MUST describe seamless integration: Multiple visual elements need to blend naturally. Use spatial relationship terms like "seamlessly blending", "harmoniously composed", "naturally integrated". Clearly describe foreground (X% of frame), midground, and background elements with their relative scales and how they interact within the composition.');
136
+ requirements.push('MUST describe spatial and visual integration: Multiple visual elements need concrete spatial relationships. Define how elements interact: overlap, reflection, shared lighting, color echo between foreground and background. Clearly describe foreground (X% of frame), midground, and background elements with their relative scales and how they physically interact within the composition.');
137
137
  }
138
138
  if (features.useWorldKnowledge) {
139
139
  requirements.push('Apply accurate real-world knowledge - MUST incorporate authentic details: Apply accurate real-world knowledge about cultures, locations, or historical elements. Use specific terminology like "traditional [culture] style", "authentic [location] architecture", "typical of [region]", "historically accurate [period]". Be precise about cultural elements, geographical features, and factual details.');
@@ -168,9 +168,9 @@ Now transform the user's request with similar attention to detail and creative e
168
168
  }
169
169
  // Check for multi-element blending
170
170
  if (features.blendImages ||
171
- promptLower.includes('seamlessly') ||
172
- promptLower.includes('harmoniously') ||
173
- promptLower.includes('naturally integrated') ||
171
+ promptLower.includes('overlap') ||
172
+ promptLower.includes('shared lighting') ||
173
+ promptLower.includes('color echo') ||
174
174
  promptLower.includes('foreground') ||
175
175
  promptLower.includes('midground') ||
176
176
  promptLower.includes('background')) {
@@ -1 +1 @@
1
- {"version":3,"file":"structuredPromptGenerator.js","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structuredPromptGenerator.js","sourceRoot":"","sources":["../../src/business/structuredPromptGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;;GAGG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;sJAyBgI,CAAA;AAEtJ;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;4HAO8F,CAAA;AAiC5H;;GAEG;AACH,MAAM,OAAO,6BAA6B;IACxC,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAEnE,KAAK,CAAC,wBAAwB,CAC5B,UAAkB,EAClB,WAAyB,EAAE,EAC3B,cAAuB,EACvB,OAAgB;QAEhB,IAAI,CAAC;YACH,iBAAiB;YACjB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,6BAA6B,CAAC,CAAC,CAAA;YAC/D,CAAC;YAED,gEAAgE;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC7C,UAAU,EACV,QAAQ,EACR,CAAC,CAAC,cAAc,EAChB,OAAO,CACR,CAAA;YAED,gDAAgD;YAChD,MAAM,iBAAiB,GAAG,cAAc;gBACtC,CAAC,CAAC,aAAa,GAAG,qBAAqB;gBACvC,CAAC,CAAC,aAAa,CAAA;YAEjB,+CAA+C;YAC/C,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI;gBACf,iBAAiB;gBACjB,GAAG,CAAC,cAAc,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,EAAE,4BAA4B;aACpF,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YAE/E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAED,+CAA+C;YAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAE5E,OAAO,EAAE,CAAC;gBACR,cAAc,EAAE,UAAU;gBAC1B,gBAAgB,EAAE,MAAM,CAAC,IAAI;gBAC7B,iBAAiB;aAClB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;YAE7E,OAAO,GAAG,CAAC,IAAI,cAAc,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC,CAAA;QACzF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,UAAkB,EAClB,QAAsB,EACtB,aAAsB,EACtB,OAAgB;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QAEjE,0DAA0D;QAC1D,MAAM,uBAAuB,GAAG,aAAa;YAC3C,CAAC,CAAC,sNAAsN;YACxN,CAAC,CAAC,EAAE,CAAA;QAEN,kCAAkC;QAClC,MAAM,cAAc,GAAG,OAAO;YAC5B,CAAC,CAAC,mBAAmB,OAAO,gFAAgF;YAC5G,CAAC,CAAC,EAAE,CAAA;QAEN,OAAO;;GAER,UAAU;EACX,uBAAuB;EACvB,cAAc;EACd,cAAc;;;;;;;;;;;;;;;4FAe4E,CAAA;IAC1F,CAAC;IAED;;OAEG;IACK,2BAA2B,CAAC,QAAsB;QACxD,MAAM,YAAY,GAAa,EAAE,CAAA;QAEjC,IAAI,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YAC1C,YAAY,CAAC,IAAI,CACf,saAAsa,CACva,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CACf,iYAAiY,CAClY,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CACf,6YAA6Y,CAC9Y,CAAA;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,0FAA0F,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;QAChI,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,gBAAwB,EAAE,QAAsB;QAC7E,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;QAElD,yCAAyC;QACzC,IACE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;YAChC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YAClC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9B,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAChC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACzC,CAAC;QAED,0CAA0C;QAC1C,IACE,QAAQ,CAAC,4BAA4B;YACrC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACtC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;YACpC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAClC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACxC,CAAC;QAED,mCAAmC;QACnC,IACE,QAAQ,CAAC,WAAW;YACpB,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACvC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YAClC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YAClC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAClC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QAC5C,CAAC;QAED,wCAAwC;QACxC,IACE,QAAQ,CAAC,iBAAiB;YAC1B,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YAClC,WAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC7C,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAClC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACtC,CAAC;QAED,8CAA8C;QAC9C,IACE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;YAChC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1B,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3B,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7B,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACtC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAC7C,CAAC;QAED,6CAA6C;QAC7C,IACE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAChC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAC1C,CAAC;QAED,kDAAkD;QAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,gBAAkC;IAElC,OAAO,IAAI,6BAA6B,CAAC,gBAAgB,CAAC,CAAA;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAoBlE,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAiB3E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,yBAAyB,CAAyC;IAC1E,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAQjD;;OAEG;IACI,aAAa;;;;IAOpB;;OAEG;IACI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFnB;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAYjD;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,mBAAmB;IA+GjC;;OAEG;IACI,UAAU,IAAI,MAAM;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;CA0BtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,iBAEpE"}
1
+ {"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAoBlE,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAiB3E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,yBAAyB,CAAyC;IAC1E,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAQjD;;OAEG;IACI,aAAa;;;;IAOpB;;OAEG;IACI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFnB;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAYjD;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,mBAAmB;IA0HjC;;OAEG;IACI,UAAU,IAAI,MAAM;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;CA0BtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,iBAEpE"}
@@ -199,7 +199,15 @@ export class MCPServerImpl {
199
199
  // Handle input image if provided
200
200
  let inputImageData;
201
201
  if (params.inputImagePath) {
202
- const imageBuffer = await fs.readFile(params.inputImagePath);
202
+ const sanitizedInputPath = this.securityManager.sanitizeInputFilePath(params.inputImagePath);
203
+ if (!sanitizedInputPath.success) {
204
+ throw sanitizedInputPath.error;
205
+ }
206
+ const extensionCheck = this.securityManager.validateImageFile(sanitizedInputPath.data);
207
+ if (!extensionCheck.success) {
208
+ throw extensionCheck.error;
209
+ }
210
+ const imageBuffer = await fs.readFile(sanitizedInputPath.data);
203
211
  inputImageData = imageBuffer.toString('base64');
204
212
  }
205
213
  // Generate structured prompt (unless skipped)
@@ -254,7 +262,10 @@ export class MCPServerImpl {
254
262
  throw generationResult.error;
255
263
  }
256
264
  // Save image file
257
- const fileName = params.fileName || this.fileManager.generateFileName();
265
+ const rawFileName = params.fileName || this.fileManager.generateFileName();
266
+ const fileName = params.fileName
267
+ ? this.securityManager.sanitizeFilename(rawFileName)
268
+ : rawFileName;
258
269
  const outputPath = path.join(configResult.data.imageOutputDir, fileName);
259
270
  const sanitizedPath = this.securityManager.sanitizeFilePath(outputPath);
260
271
  if (!sanitizedPath.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,14 @@ export declare class SecurityManager {
15
15
  * @returns Result containing sanitized path or security error
16
16
  */
17
17
  sanitizeFilePath(inputPath: string): Result<string, SecurityError>;
18
+ /**
19
+ * Sanitize input file path without directory restriction.
20
+ * Prevents path traversal, null byte injection, and symlink-based attacks
21
+ * while allowing reads from any legitimate absolute path.
22
+ * @param inputPath File path to sanitize
23
+ * @returns Result containing sanitized absolute path or security error
24
+ */
25
+ sanitizeInputFilePath(inputPath: string): Result<string, SecurityError>;
18
26
  /**
19
27
  * Validate image file extension
20
28
  * @param filePath File path to validate
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAMhC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAwBlE;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAYhE;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAUnE;;;;;OAKG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQnE;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAK1C;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAuB3C"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAMhC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAwBlE;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAoBvE;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAYhE;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;IAUnE;;;;;OAKG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQnE;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAK1C;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAuB3C"}
@@ -2,6 +2,8 @@
2
2
  * Security Manager for file path validation and sanitization
3
3
  * Provides protection against path traversal, null byte injection, and other security threats
4
4
  */
5
+ import { randomBytes } from 'node:crypto';
6
+ import * as fs from 'node:fs';
5
7
  import * as path from 'node:path';
6
8
  import { Err, Ok } from '../types/result.js';
7
9
  import { SecurityError } from './errors.js';
@@ -40,6 +42,30 @@ export class SecurityManager {
40
42
  }
41
43
  return Ok(resolvedPath);
42
44
  }
45
+ /**
46
+ * Sanitize input file path without directory restriction.
47
+ * Prevents path traversal, null byte injection, and symlink-based attacks
48
+ * while allowing reads from any legitimate absolute path.
49
+ * @param inputPath File path to sanitize
50
+ * @returns Result containing sanitized absolute path or security error
51
+ */
52
+ sanitizeInputFilePath(inputPath) {
53
+ if (inputPath.includes('\0')) {
54
+ return Err(new SecurityError('Null byte detected in file path'));
55
+ }
56
+ if (inputPath.includes('..')) {
57
+ return Err(new SecurityError('Path traversal attempt detected'));
58
+ }
59
+ const resolvedPath = path.resolve(inputPath);
60
+ // Resolve symlinks to prevent symlink-based traversal
61
+ try {
62
+ const realPath = fs.realpathSync(resolvedPath);
63
+ return Ok(realPath);
64
+ }
65
+ catch {
66
+ return Err(new SecurityError('File path cannot be resolved'));
67
+ }
68
+ }
43
69
  /**
44
70
  * Validate image file extension
45
71
  * @param filePath File path to validate
@@ -75,7 +101,7 @@ export class SecurityManager {
75
101
  */
76
102
  generateSecureTempPath(baseName, extension) {
77
103
  const timestamp = Date.now();
78
- const randomSuffix = Math.random().toString(36).substring(2, 8);
104
+ const randomSuffix = randomBytes(6).toString('hex');
79
105
  const secureFilename = `${baseName}-${timestamp}-${randomSuffix}${extension}`;
80
106
  return path.join('/tmp', secureFilename);
81
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mcp-image",
3
3
  "mcpName": "io.github.shinpr/mcp-image",
4
- "version": "0.8.1",
4
+ "version": "0.8.2",
5
5
  "description": "MCP server for AI image generation",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: image-generation
3
- description: Enhances image generation prompts using Subject-Context-Style structure and best practices. Use this skill when generating images, creating illustrations, photos, visual assets, editing images, or crafting prompts for image generation.
3
+ description: Optimizes image generation prompts using Subject-Context-Style structure. Use this skill when generating images, creating illustrations, photos, visual assets, editing images, or crafting prompts for any image generation model.
4
4
  ---
5
5
 
6
6
  # Image Generation Prompt Best Practices
@@ -11,40 +11,37 @@ Enhance every image generation prompt around three core elements:
11
11
 
12
12
  ### 1. SUBJECT (What)
13
13
 
14
- The main focus of the image.
15
-
16
14
  - Physical characteristics: textures, materials, colors, scale
17
15
  - Actions, poses, expressions if applicable
18
16
  - Distinctive features that define the subject
19
17
 
20
18
  ### 2. CONTEXT (Where/When)
21
19
 
22
- The environment and conditions.
23
-
24
20
  - Setting, background, spatial relationships (foreground, midground, background)
25
21
  - Time of day, weather, atmospheric conditions
26
22
  - Mood and emotional tone of the scene
27
23
 
28
24
  ### 3. STYLE (How)
29
25
 
30
- The visual treatment.
31
-
32
26
  - Artistic or photographic approach: reference specific artists, movements, or styles
33
- - Lighting design: direction, quality, color temperature, shadows
34
27
  - Camera/lens choices: specify focal length, aperture, and shooting angle when photographic
35
28
 
36
29
  ## Core Principles
37
30
 
38
- - **Preserve intent** — Enrich the user's original vision, never override it
31
+ - **Preserve intent** — Add visual details (lighting, texture, composition) only in areas the user left unspecified; keep all user-specified elements unchanged
39
32
  - **Positive descriptions only** — Describe what should be present; rephrase any exclusion as an inclusion
40
33
  - **Specific over vague** — "golden hour sunlight at 15° angle" beats "nice lighting"
41
34
  - **Natural flow** — Weave elements into a single flowing description, not a bullet list
42
35
 
36
+ ## Output Format
37
+
38
+ Return the enhanced prompt as a single flowing paragraph. When the user provides multiple requests, return each as a separate enhanced prompt under a labeled heading.
39
+
43
40
  ## Enhancement Patterns
44
41
 
45
42
  ### Hyper-Specific Details
46
43
 
47
- Add concrete visual details where the user left gaps:
44
+ Add concrete visual details for any Subject/Context/Style element not specified by the user:
48
45
 
49
46
  - Lighting → direction, quality, color temperature, shadow behavior
50
47
  - Textures → surface materials, weathering, reflectivity
@@ -64,8 +61,7 @@ When a photographic look is appropriate:
64
61
 
65
62
  Convey mood through environmental details:
66
63
 
67
- - Emotional tone: "serene", "ominous", "jubilant"
68
- - Light quality: "dappled shadows", "harsh midday sun", "soft diffused overcast"
64
+ - Emotional tone with visual indicators: "serene (soft diffused light, muted palette)", "ominous (low contrast, heavy shadows, desaturated)", "jubilant (high saturation, warm tones, dynamic motion)"
69
65
  - Weather/air: "morning mist", "dust particles in a sunbeam"
70
66
 
71
67
  ### Text in Images
@@ -86,12 +82,12 @@ When the same character must be recognizable across multiple images:
86
82
  - Use anchoring words: "distinctive", "signature", "always wears", "always has"
87
83
  - Be specific: "round tortoiseshell glasses" not just "glasses"
88
84
 
89
- ### Compositional Integration (Multi-Element Blending)
85
+ ### Compositional Integration
90
86
 
91
87
  When combining multiple visual elements in one scene:
92
88
 
93
89
  - Define spatial relationships with proportions: "foreground (40% of frame)", "midground", "background"
94
- - Use integration language: "seamlessly blending", "harmoniously composed", "naturally integrated"
90
+ - Define how elements interact spatially and visually: overlap, reflection, shared lighting, color echo between foreground and background
95
91
  - Specify relative scale and interaction between elements
96
92
 
97
93
  ### Real-World Accuracy
@@ -123,6 +119,16 @@ When modifying an existing image:
123
119
  - Be specific about what to change vs what to keep unchanged
124
120
  - Describe modifications relative to the existing image, not from scratch
125
121
 
122
+ ## Ambiguous Cases
123
+
124
+ - When user intent is unclear between photographic and illustrative style, ask before enhancing
125
+ - When enhancement would significantly change the user's concept, present the original interpretation alongside the enhanced version
126
+ - When cultural or historical accuracy cannot be verified, flag the uncertainty rather than guessing
127
+
128
+ ## Scope
129
+
130
+ This skill covers static image prompt enhancement only. It does not cover video generation, 3D rendering, or image analysis/description.
131
+
126
132
  ## Example
127
133
 
128
134
  **Input:** "A happy dog in a park"