# mcp MCP server

Generate images, GIFs, and PDFs from HTML, URLs, or templates — from your AI agent.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-pictify-io-mcp
- Repository: https://github.com/pictify-io/mcp
- Website: https://pictify.io

## Install
- Command: `npx -y @pictify/mcp-server`
- Endpoint: https://mcp.pictify.io
- Auth: Auth required by registry metadata

## Setup notes
- Package: Npm @pictify/mcp-server v1.3.0
- Environment variable: PICTIFY_API_KEY (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://mcp.pictify.io

## Tools
- pictify_create_image - Generate a static image (PNG, JPEG, or WebP) from HTML/CSS content, a URL screenshot, or a template. Common use cases: Open Graph (OG) images for link previews, social media cards (Twitter/LinkedIn/Facebook), product screenshots, marketing banners, event invitations, and custom graphics. Provide ONE of: 'html' (custom HTML/CSS), 'url' (screenshot a webpage), or 'template' + 'variables' (render a saved template). Returns the hosted image URL (CDN-backed) and asset ID. Maximum dimensions: 4000x4000 pixels. IMPORTANT: The renderer captures the element's actual rendered size, not the viewport. If your HTML content is shorter than the requested height, the output image will be clipped to the content height. To ensure exact dimensions, set explicit width and height on your root element (e.g., a wrapper div) using CSS like: position: absolute; top: 0; left: 0; width: 1920px; height: 1080px; — this guarantees the element fills the full requested area. Endpoint: https://mcp.pictify.io
- pictify_create_canvas_image - Generate an image from FabricJS canvas JSON data with optional variable substitution. Use this when you have a FabricJS canvas design (created in the Pictify visual editor or programmatically). Templates in Pictify are built using FabricJS — this endpoint lets you render canvas JSON directly without saving it as a template first. For rendering a saved template, use pictify_render_template instead. Returns the hosted image URL (CDN-backed). Endpoint: https://mcp.pictify.io
- pictify_list_images - List previously generated images from your account with pagination. Returns image URLs, IDs, dimensions, format, and creation timestamps. Use this to browse your render history or find a previously generated image. Endpoint: https://mcp.pictify.io
- pictify_get_image - Get details of a specific image by its UID. Returns the image URL, dimensions, format, and creation timestamp. Endpoint: https://mcp.pictify.io
- pictify_create_gif - Create an animated GIF from HTML content with CSS animations, a URL, or a template. The HTML must contain CSS @keyframes animations, transitions, or JavaScript animations to produce frames. Common use cases: animated banners, loading spinners, product demos, social media animations, animated logos, and eye-catching ad creatives. Provide ONE of: 'html' (custom animated HTML/CSS), 'url' (capture from webpage), or 'template' + 'variables' (render a saved template). For recording a GIF from a live website over a specified duration, use pictify_capture_gif instead. Returns the hosted GIF URL and animation duration. Maximum dimensions: 2000x2000 pixels. Endpoint: https://mcp.pictify.io
- pictify_capture_gif - Record an animated GIF from a live web page URL by capturing its on-screen activity over time. The page is loaded in a headless browser and recorded for the specified duration. Use cases: capturing CSS/JS animations on live sites, recording interactive demos, documenting UI transitions, creating product walkthroughs. This operation takes time proportional to the duration setting (up to 30 seconds). For creating GIFs from custom HTML with CSS animations, use pictify_create_gif instead. Returns the hosted GIF URL. Endpoint: https://mcp.pictify.io
- pictify_list_gifs - List previously generated GIFs from your account with pagination. Returns GIF URLs, IDs, dimensions, animation duration, and creation timestamps. Use this to browse your GIF history or find a previously generated animation. Endpoint: https://mcp.pictify.io
- pictify_get_gif - Get details of a specific GIF by its UID. No authentication required. Returns the GIF URL, dimensions, and animation details. Endpoint: https://mcp.pictify.io
- pictify_render_pdf - Generate a single-page PDF from a saved template with variable substitutions. Common use cases: invoices, certificates, receipts, contracts, reports, event tickets, shipping labels, and any document that needs to be generated programmatically. WORKFLOW: Call pictify_get_template_variables first to discover available variables and their types, then call this tool with the appropriate variable values. Supports standard page sizes (A4, Letter, Legal, etc.) — use pictify_list_pdf_presets to see all options. Returns the hosted PDF URL. Endpoint: https://mcp.pictify.io
- pictify_render_multi_page_pdf - Generate a multi-page PDF from a template by providing multiple sets of variables. Each variable set produces one page in the final document. Supports 1-100 pages per PDF. Common use cases: bulk invoice generation, certificate batches for events/courses, multi-page reports, product catalogs, and employee ID cards. WORKFLOW: Call pictify_get_template_variables first to discover available variables, then provide an array of variable sets (one per page). Returns a single combined PDF URL. For generating separate image files per set, use pictify_batch_render instead. Endpoint: https://mcp.pictify.io
- pictify_list_pdf_presets - List all available PDF page size presets with their dimensions. Use these preset names when calling pictify_render_pdf or pictify_render_multi_page_pdf. Common presets include A4 (210x297mm), Letter (8.5x11in), Legal (8.5x14in), and more. Endpoint: https://mcp.pictify.io
- pictify_list_templates - List saved templates in your Pictify account with pagination and filtering. Templates are reusable designs (built with the FabricJS visual editor or HTML) with variable placeholders for dynamic content generation. Use this to discover available templates before rendering. Returns template names, IDs, dimensions, output formats, and pagination info. Endpoint: https://mcp.pictify.io
- pictify_get_template - Get detailed information about a specific template by its ID. Returns the template's name, dimensions, variable definitions, tags, output format, thumbnail URL, and metadata. Use this to inspect a template before rendering. Endpoint: https://mcp.pictify.io
- pictify_get_template_variables - Get the variable definitions for a template. IMPORTANT: Always call this before pictify_render_template, pictify_batch_render, pictify_render_pdf, or pictify_render_multi_page_pdf to discover what variables are available. Returns variable names, types (text, image, color, number, boolean), default values, and descriptions. Variables support Pictify's expression engine with 50+ functions for dynamic content (e.g., IF/ELSE conditionals, string manipulation, date formatting, math operations). Endpoint: https://mcp.pictify.io
- pictify_render_template - Render a saved template with variable substitutions to produce an image or PDF. Templates can be FabricJS canvas designs or HTML — both are rendered the same way via this endpoint. WORKFLOW: 1) Use pictify_list_templates to find a template, 2) Use pictify_get_template_variables to discover its variables, 3) Call this tool with the variable values. Common use cases: OG images with dynamic titles, personalized social cards, product images with prices/descriptions, event banners with speaker info. For rendering the same template with many variable sets, use pictify_batch_render. Returns the hosted image URL (CDN-backed). Endpoint: https://mcp.pictify.io
- pictify_create_template - Create a new reusable template with variable placeholders for dynamic content generation. Templates can use either FabricJS canvas data (from the Pictify visual editor) or raw HTML. Provide ONE of 'html' or 'fabricJSData' — they are mutually exclusive. For HTML templates, use {{variableName}} syntax for dynamic placeholders. Pictify's expression engine supports 50+ functions: IF/ELSE conditionals, string manipulation (toUpperCase, truncate, etc.), date formatting, math operations, and more. After creating, use pictify_render_template to render it with specific values. Returns the created template's ID. Endpoint: https://mcp.pictify.io
- pictify_update_template - Update an existing template's content, dimensions, name, or variable definitions. Only the provided fields will be updated; others remain unchanged. You can update HTML or FabricJS data — provide one or the other, not both. Note: updating content may change the available variables. Endpoint: https://mcp.pictify.io
- pictify_delete_template - Permanently delete a template. This action cannot be undone. WARNING: Any batch jobs or bindings using this template will stop working. Endpoint: https://mcp.pictify.io
- pictify_batch_render - Start a batch render job to generate multiple images from a single template — from inline variable sets, or from a hosted CSV where every row becomes a render. Each variable set produces a separate image. Supports up to 100 items per batch (plan-dependent). Common use cases: generating personalized social cards for all team members, product images for an entire catalog, event badges for all attendees, certificate images for course graduates, or marketing assets with localized content. WORKFLOW: 1) Use pictify_get_template_variables to discover variables, 2) Call this tool with an array of variable sets, 3) Use pictify_get_batch_results to poll for completion and get result URLs. The job runs asynchronously — this tool returns immediately with a batchId (HTTP 202). For generating a single multi-page PDF instead, use pictify_render_multi_page_pdf. Endpoint: https://mcp.pictify.io
- pictify_get_batch_results - Check the status and results of a batch render job. Returns the job status (pending, processing, completed, failed, partial, cancelled), progress percentage, item counts, and image URLs for completed items. Each result includes index, success boolean, URL, dimensions, and error message (if failed). Call this after pictify_batch_render. If status is 'processing', call again after a few seconds to check for updates. Endpoint: https://mcp.pictify.io
- pictify_cancel_batch - Cancel a running batch render job. Already completed items will retain their results and URLs. Remaining unprocessed items will be skipped. Use this if you started a batch with incorrect data or no longer need the remaining results. Endpoint: https://mcp.pictify.io
- pictify_list_video_templates - List the user's video templates with their UIDs, dimensions, duration and kind. Video templates come in two kinds: 'timeline' (built in the visual studio) and 'tsx' (single-file Remotion scenes, often AI-generated). Both render the same way. WORKFLOW: call this first to find a template UID, then pictify_get_video_template_variables to see what it accepts, then pictify_render_video. Endpoint: https://mcp.pictify.io
- pictify_get_video_template_variables - Get a video template's variable definitions — the fields you can set when rendering it (texts, colors, image URLs). Call before pictify_render_video to know what to pass. Endpoint: https://mcp.pictify.io
- pictify_render_video - Render a video template to an MP4 video or an animated GIF, with variable substitutions. Common use cases: personalized video messages, social video posts, animated certificates, product announcement clips, and GIFs for places an MP4 cannot autoplay (chat, email, READMEs). GIF output: timeline templates are palette-converted and capped at 15fps / 720px wide; code (tsx) templates encode GIF natively at half the composition frame rate with no width cap. WORKFLOW: pictify_list_video_templates → pictify_get_video_template_variables → this tool. The render takes up to a few minutes; this tool waits and returns the hosted file URL. Each render consumes one video credit. Endpoint: https://mcp.pictify.io
- pictify_create_video_template - Upload a Remotion scene YOU wrote as a new video template. Use when you want full creative control over the composition — write the TSX yourself instead of delegating the design to pictify_generate_video_template. The source passes a compile gate before anything is saved: on failure you get the compiler errors back and NO template is created, so fix the code and call again. SCENE RULES (violations fail the compile gate or the render): (1) Single file. It must contain `export const schema = z.object({...})` AND `export default` a React function component typed with the schema's props. Every schema field must be flat, carry .default(...), and use .describe('...') — fields become the template's editable variables. (2) Imports ONLY from 'remotion', 'react' and 'zod'. No other packages, no relative imports. (3) ALL animation via useCurrentFrame() + useVideoConfig() with interpolate() and spring(). CSS transitions/animations and Tailwind are forbidden. Always clamp: { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' }. (4) Layout with <AbsoluteFill>, inline styles, system font stacks. If you use <Sequence>, it MUST carry layout="none" and integer literals for from/durationInFrames. (5) No external assets: no fetch, no hard-coded media URLs. Media only via optional string props rendered with <Img> from 'remotion'. Use remotion's random(seed), never Math.random(). (6) Never reference require, eval, dynamic import(), fs, child_process, or the word 'process' — not even in comments or identifiers. Endpoint: https://mcp.pictify.io
- pictify_generate_video_template - Generate a new video template from a text prompt using AI. The service designs a motion brief (palette, beats, typography), writes the scene as code, compiles it, renders preview frames and visually reviews them — then saves a draft template whose text, colors and optional image are editable variables. Use when the user wants a NEW video design; to re-render an existing template with different values, use pictify_render_video instead. Takes 30-60 seconds and is metered as one render. Returns the template UID and a preview image URL; render it with pictify_render_video, or refine it in the studio. Endpoint: https://mcp.pictify.io

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.pictify-io
- Version: 1.3.0
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 24, 2026
- Source: https://registry.modelcontextprotocol.io
