UNPKG

@felores/placid-mcp-server

Version:

Placid.app MCP server to list templates and generate images and videos

54 lines (53 loc) 2.04 kB
import { PlacidClient } from "../../services/placid/client.js"; export async function handleGenerateImage(args, config) { try { const client = new PlacidClient(config.placidApiToken); // Start generation const response = await client.generateImage({ template_uuid: args.template_id, layers: args.layers, create_now: true // Request immediate creation }); // If creation is not immediate, poll for completion if (response.status === "queued") { let attempts = 0; const maxAttempts = 10; const delayMs = 1000; while (attempts < maxAttempts) { const status = await client.getImageStatus(response.id); if (status.status === "finished") { return { content: [{ type: "text", text: `Image generated successfully!\nURL: ${status.image_url}`, }], }; } if (status.status === "error") { throw new Error("Image generation failed"); } await new Promise(resolve => setTimeout(resolve, delayMs)); attempts++; } throw new Error("Timed out waiting for image generation"); } // Immediate completion if (response.status === "finished" && response.image_url) { return { content: [{ type: "text", text: `Image generated successfully!\nURL: ${response.image_url}`, }], }; } throw new Error("Image generation failed"); } catch (error) { return { content: [{ type: "text", text: `Error generating image: ${error instanceof Error ? error.message : "Unknown error"}`, }], }; } }