Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
fileNameNo저장할 이미지 파일 이름 (확장자 제외)imagen-1755209535150
modelNo사용할 모델 ID (예: imagen-3.0-generate-002)imagen-3.0-generate-002
numberOfImagesNo생성할 이미지 수 (1-4)
promptYes이미지 생성을 위한 텍스트 프롬프트
saveDirNo이미지를 저장할 디렉토리./temp
sizeNo생성할 이미지 크기1024x1024

Implementation Reference

  • 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)}`
          }]
        };
      }
    }
  • 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']
    },
  • 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,

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bigdata-coss/agent_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server