mcp_gemini_generate_images
Generate high-quality images using text prompts with Google Imagen models, supporting customizable parameters like size, quantity, and file naming for efficient image creation.
Instructions
Google Imagen 모델을 사용하여 이미지를 생성합니다. 곧 mcp_gemini_generate_image 도구로 대체될 예정입니다.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | No | 저장할 이미지 파일 이름 (확장자 제외) | imagen-1755209535150 |
| model | No | 사용할 모델 ID (예: imagen-3.0-generate-002) | imagen-3.0-generate-002 |
| numberOfImages | No | 생성할 이미지 수 (1-4) | |
| prompt | Yes | 이미지 생성을 위한 텍스트 프롬프트 | |
| saveDir | No | 이미지를 저장할 디렉토리 | ./temp |
| size | No | 생성할 이미지 크기 | 1024x1024 |
Input Schema (JSON Schema)
{
"properties": {
"fileName": {
"default": "imagen-1755209535150",
"description": "저장할 이미지 파일 이름 (확장자 제외)",
"type": "string"
},
"model": {
"default": "imagen-3.0-generate-002",
"description": "사용할 모델 ID (예: imagen-3.0-generate-002)",
"type": "string"
},
"numberOfImages": {
"default": 1,
"description": "생성할 이미지 수 (1-4)",
"maximum": 4,
"minimum": 1,
"type": "number"
},
"prompt": {
"description": "이미지 생성을 위한 텍스트 프롬프트",
"type": "string"
},
"saveDir": {
"default": "./temp",
"description": "이미지를 저장할 디렉토리",
"type": "string"
},
"size": {
"default": "1024x1024",
"description": "생성할 이미지 크기",
"type": "string"
}
},
"required": [
"prompt"
],
"type": "object"
}
Implementation Reference
- src/tools/index.ts:994-1012 (handler)MCP tool handler for 'mcp_gemini_generate_images' that calls geminiService.generateImage, serializes the result as JSON, and handles errors.async handler(args: any): Promise<ToolResponse> { try { // 기존 호환성을 위해 generateImage 함수 호출 const result = await geminiService.generateImage(args); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: 'text', text: `Gemini 이미지 생성 오류: ${error instanceof Error ? error.message : String(error)}` }] }; } }
- src/tools/index.ts:957-993 (schema)Input schema defining parameters for the mcp_gemini_generate_images tool including model, prompt, number of images, size, save directory, and filename.inputSchema: { type: 'object', properties: { model: { type: 'string', description: '사용할 모델 ID (예: imagen-3.0-generate-002)', default: 'imagen-3.0-generate-002', }, prompt: { type: 'string', description: '이미지 생성을 위한 텍스트 프롬프트', }, numberOfImages: { type: 'number', description: '생성할 이미지 수 (1-4)', default: 1, minimum: 1, maximum: 4, }, size: { type: 'string', description: '생성할 이미지 크기', default: '1024x1024', }, saveDir: { type: 'string', description: '이미지를 저장할 디렉토리', default: './temp', }, fileName: { type: 'string', description: '저장할 이미지 파일 이름 (확장자 제외)', default: `imagen-${Date.now()}`, }, }, required: ['prompt'] },
- src/tools/index.ts:954-1013 (registration)Registration of the mcp_gemini_generate_images tool in the main tools export array used by the MCP server.{ name: 'mcp_gemini_generate_images', description: 'Google Imagen 모델을 사용하여 이미지를 생성합니다. 곧 mcp_gemini_generate_image 도구로 대체될 예정입니다.', inputSchema: { type: 'object', properties: { model: { type: 'string', description: '사용할 모델 ID (예: imagen-3.0-generate-002)', default: 'imagen-3.0-generate-002', }, prompt: { type: 'string', description: '이미지 생성을 위한 텍스트 프롬프트', }, numberOfImages: { type: 'number', description: '생성할 이미지 수 (1-4)', default: 1, minimum: 1, maximum: 4, }, size: { type: 'string', description: '생성할 이미지 크기', default: '1024x1024', }, saveDir: { type: 'string', description: '이미지를 저장할 디렉토리', default: './temp', }, fileName: { type: 'string', description: '저장할 이미지 파일 이름 (확장자 제외)', default: `imagen-${Date.now()}`, }, }, required: ['prompt'] }, async handler(args: any): Promise<ToolResponse> { try { // 기존 호환성을 위해 generateImage 함수 호출 const result = await geminiService.generateImage(args); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: 'text', text: `Gemini 이미지 생성 오류: ${error instanceof Error ? error.message : String(error)}` }] }; } } },
- Core helper method in GeminiService that implements image generation logic, dispatching to Imagen or Gemini specific methods based on model.async generateImage({ model, prompt, numberOfImages, aspectRatio, personGeneration, saveDir = './temp', fileName, }: { model: string; prompt: string; numberOfImages?: number; aspectRatio?: string; personGeneration?: string; saveDir?: string; fileName?: string; }) { try { // Imagen 모델을 사용하는 경우 if (model.startsWith('imagen-')) { return await this.generateImageWithImagen({ model, prompt, numberOfImages, aspectRatio, personGeneration, saveDir, fileName, }); } // Gemini 모델이면서 이미지 편집 모델을 사용하는 경우 if (model.endsWith('-image-generation-editing')) { return await this.generateImageWithGeminiEdit({ model, prompt, saveDir, fileName, }); } // 기본적으로 Gemini 모델을 사용 return await this.generateImageWithGemini({ model, prompt, saveDir, fileName, }); } catch (error) { throw this.formatError(error); } }
- src/index.ts:47-47 (registration)Tool capability registration in MCP server initialization (currently disabled).mcp_gemini_generate_images: false,