@genwave/svgmaker-mcp
Version:
MCP server for generating, editing, and converting SVG images using SVGMaker API
44 lines • 1.59 kB
JavaScript
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
import { logToFile } from '../utils/logUtils.js';
import { readLocalPreview } from '../utils/previewUtils.js';
const PreviewToolInputSchema = z.object({
file_path: z
.string()
.min(1, 'File path is required.')
.describe('Absolute path to a local image file to preview. Supports PNG, SVG, WebP, and SVGZ formats.'),
});
export const previewToolDefinition = {
name: 'svgmaker_preview',
description: 'Previews a local image file by returning it directly in the chat context. Supports PNG, SVG, WebP, and SVGZ formats.',
inputSchema: zodToJsonSchema(PreviewToolInputSchema),
};
export async function handlePreviewTool(server, request) {
logToFile('========== SVG PREVIEW TOOL CALLED ==========');
logToFile(`Arguments: ${JSON.stringify(request.params.arguments, null, 2)}`);
try {
const validatedArgs = PreviewToolInputSchema.parse(request.params.arguments);
const base64Data = await readLocalPreview(validatedArgs.file_path);
return {
content: [
{
type: 'image',
data: base64Data,
mimeType: 'image/png',
},
],
};
}
catch (error) {
return {
isError: true,
content: [
{
type: 'text',
text: `Error previewing file: ${error.message}`,
},
],
};
}
}
//# sourceMappingURL=previewTool.js.map