Skip to main content
Glama
Yoon-jongho

Claude-to-Gemini MCP Server

by Yoon-jongho

generate_image_imagen

Create photorealistic images for professional branding using Imagen 4 with high-resolution outputs based on text descriptions.

Instructions

Generate images using Imagen 4. Best for photorealistic quality, high-resolution outputs, and professional branding. Paid service.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the image to generate (in English, max 480 tokens)
numberOfImagesNoNumber of images to generate (1-4, default: 1)

Implementation Reference

  • Executes the 'generate_image_imagen' tool by calling the Imagen 4 REST API, handling the response, saving images to disk, and returning text and image content.
    if (name === "generate_image_imagen") {
      const { prompt, numberOfImages = 1 } = args;
    
      // REST API를 사용하여 Imagen 4 호출
      const response = await fetch(
        `https://generativelanguage.googleapis.com/v1beta/models/imagen-4.0-generate-001:predict`,
        {
          method: "POST",
          headers: {
            "x-goog-api-key": apiKey,
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            instances: [{ prompt: prompt }],
            parameters: {
              sampleCount: numberOfImages,
            },
          }),
        }
      );
    
      if (!response.ok) {
        const errorText = await response.text();
        throw new Error(`Imagen API error: ${response.status} - ${errorText}`);
      }
    
      const result = await response.json();
    
      // predictions 배열 확인 (실제 API 응답 구조)
      if (!result.predictions || result.predictions.length === 0) {
        throw new Error(`No images were generated. Response: ${JSON.stringify(result)}`);
      }
    
      // 이미지 저장
      const outputDir = join(__dirname, "generated_images");
      await mkdir(outputDir, { recursive: true });
    
      const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
      const savedPaths = [];
    
      for (let i = 0; i < result.predictions.length; i++) {
        const img = result.predictions[i];
        const filename = `imagen_${timestamp}_${i + 1}.png`;
        const filepath = join(outputDir, filename);
    
        // bytesBase64Encoded 필드 사용
        const buffer = Buffer.from(img.bytesBase64Encoded, "base64");
        await writeFile(filepath, buffer);
        savedPaths.push(filepath);
      }
    
      return {
        content: [
          {
            type: "text",
            text: `[Imagen 4]\n\nGenerated ${result.predictions.length} image(s) for: "${prompt}"\n\nSaved to:\n${savedPaths.map(p => `- ${p}`).join("\n")}\n\nNote: All images include SynthID watermark for authenticity.`,
          },
          ...result.predictions.map((img) => ({
            type: "image",
            data: img.bytesBase64Encoded,
            mimeType: img.mimeType || "image/png",
          })),
        ],
      };
    }
  • index.js:119-142 (registration)
    Registers the 'generate_image_imagen' tool in the ListTools response, defining its name, description, and input schema.
    {
      name: "generate_image_imagen",
      description:
        "Generate images using Imagen 4. Best for photorealistic quality, high-resolution outputs, and professional branding. Paid service.",
      inputSchema: {
        type: "object",
        properties: {
          prompt: {
            type: "string",
            description:
              "Description of the image to generate (in English, max 480 tokens)",
          },
          numberOfImages: {
            type: "number",
            description:
              "Number of images to generate (1-4, default: 1)",
            default: 1,
            minimum: 1,
            maximum: 4,
          },
        },
        required: ["prompt"],
      },
    },
  • Defines the input schema for the 'generate_image_imagen' tool, specifying prompt and optional numberOfImages parameters.
    inputSchema: {
      type: "object",
      properties: {
        prompt: {
          type: "string",
          description:
            "Description of the image to generate (in English, max 480 tokens)",
        },
        numberOfImages: {
          type: "number",
          description:
            "Number of images to generate (1-4, default: 1)",
          default: 1,
          minimum: 1,
          maximum: 4,
        },
      },
      required: ["prompt"],
    },

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/Yoon-jongho/claude-to-gemini'

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