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.
Parameters (8)
htmlstring
HTML content to render as an image. Include inline CSS or <style> tags for styling. Google Fonts supported via <link> tags. Mutually exclusive with 'url' and 'template'. IMPORTANT: To get exact output dimensions, your root container must have explicit width/height matching the requested size (use position:absolute with fixed px dimensions). Without this, the image will be clipped to the content's natural height.
urlstring
URL of a web page to screenshot. Must be publicly accessible http:// or https://. Mutually exclusive with 'html' and 'template'.
templatestring
Template UID to render. Use with 'variables' to substitute dynamic values. Mutually exclusive with 'html' and 'url'. Use pictify_list_templates to find templates.
variablesobject
Template variables as key-value pairs. Only used when 'template' is provided.
widthnumber
Image width in pixels (1-4000). Common sizes: 1200x630 (OG image), 1080x1080 (Instagram), 1200x675 (Twitter card), 1920x1080 (presentation slide)
heightnumber
Image height in pixels (1-4000)
fileExtensionstring
Output image format. PNG for transparency support, JPEG/JPG for photos (smaller file size), WebP for best compression.
selectorstring
CSS selector to capture a specific element instead of the full page (e.g., '.card', '#hero'). Useful when your HTML contains multiple elements but you only want to capture one.
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).
Parameters (6)
fabricJSDataobjectrequired
FabricJS canvas JSON object. This is the serialized canvas data from FabricJS (canvas.toJSON()). Contains objects array with shapes, text, images, and their properties.
variablesobject
Variables to substitute into the canvas elements that have variable bindings.
variableDefinitionsarray
Variable definitions describing the types and defaults for each variable.
widthnumber
Output image width in pixels. If omitted, uses the canvas width.
heightnumber
Output image height in pixels. If omitted, uses the canvas height.
fileExtensionstring
Output image format
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.
Parameters (2)
limitnumber
Number of images to return (1-100)
offsetnumber
Number of images to skip for pagination
pictify_get_image
Get details of a specific image by its UID. Returns the image URL, dimensions, format, and creation timestamp.
Parameters (1)
imageIdstringrequired
The image UID to retrieve
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.
Parameters (6)
htmlstring
HTML content with CSS animations to render as an animated GIF. Must include CSS @keyframes or transitions for animation. Mutually exclusive with 'url' and 'template'.
urlstring
URL of a web page to capture as a GIF. Mutually exclusive with 'html' and 'template'.
templatestring
Template UID to render as a GIF. Use with 'variables'. Mutually exclusive with 'html' and 'url'.
variablesobject
Template variables as key-value pairs. Only used when 'template' is provided.
widthnumber
GIF width in pixels (1-2000). Keep dimensions reasonable for file size.
heightnumber
GIF height in pixels (1-2000)
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.
Parameters (5)
urlstringrequired
URL of the web page to capture as a GIF. Must be a publicly accessible http:// or https:// URL.
widthnumber
Capture viewport width in pixels (1-2000)
heightnumber
Capture viewport height in pixels (1-2000)
qualitystring
GIF quality preset. 'low' (10fps, up to 10s), 'medium' (15fps, up to 15s), 'high' (24fps, up to 30s). Higher quality = larger file size.
frameDurationSecondsnumber
Recording duration in seconds (1-30). The page is captured for this many seconds. Longer durations produce larger GIF files and take longer to process.
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.
Parameters (2)
limitnumber
Number of GIFs to return (1-100)
offsetnumber
Number of GIFs to skip for pagination
pictify_get_gif
Get details of a specific GIF by its UID. No authentication required. Returns the GIF URL, dimensions, and animation details.
Parameters (1)
gifIdstringrequired
The GIF UID to retrieve
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.
Parameters (4)
templateIdstringrequired
The template UID to render as a PDF. Use pictify_list_templates to find available templates.
variablesobject
Template variables as key-value pairs (e.g., { title: 'Invoice #001', amount: '$1,000', date: '2024-03-09' }). Use pictify_get_template_variables to discover available variable names and types.
presetstring
PDF page size preset (e.g., 'A4', 'Letter', 'Legal'). Use pictify_list_pdf_presets to see all available presets with their dimensions. If not specified, uses the template's default dimensions.
titlestring
PDF document title metadata — appears in the browser tab when the PDF is opened
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.
Parameters (4)
templateIdstringrequired
The template UID to render as a multi-page PDF
variableSetsarrayrequired
Array of variable sets, one per page (1-100 items). Example: [{ name: 'Alice', score: '95' }, { name: 'Bob', score: '87' }] produces a 2-page PDF.
presetstring
PDF page size preset (e.g., 'A4', 'Letter'). Use pictify_list_pdf_presets to see options.
titlestring
PDF document title metadata
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.
No parameters.
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.
Parameters (4)
pagenumber
Page number for pagination (starts at 1)
limitnumber
Number of templates per page (1-100, default 12)
sortstring
Sort order for results
outputFormatstring
Filter templates by their output format type
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.
Parameters (1)
templateIdstringrequired
The template UID to retrieve
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).
Parameters (1)
templateIdstringrequired
The template UID to get variables for
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).
Parameters (6)
templateIdstringrequired
The template UID to render
variablesobject
Template variables as key-value pairs. Example: { title: 'My Blog Post', author: 'Jane Doe', avatar_url: 'https://...' }. Use pictify_get_template_variables to see available variables and their types.
formatstring
Output format. PNG for transparency, JPEG for photos, WebP for web optimization, PDF for documents.
qualitynumber
Output quality (0.1-1.0). Lower values reduce file size. Only affects JPEG and WebP.
layoutstring
Render a specific layout variant (e.g., 'twitter-post', 'facebook-post'). Omit for default layout. Use pictify_get_template to see available layouts.
layoutsarray
Render multiple layout variants in one request. Use 'default' for the base layout. Example: ['default', 'twitter-post', 'facebook-post']. Returns a results array with one entry per layout.
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.
Parameters (10)
namestringrequired
Template name for identification and organization
htmlstring
HTML content for the template. Use {{variableName}} for dynamic placeholders. Mutually exclusive with 'fabricJSData'. Supports expressions: '{{IF(premium, "PRO", "FREE")}}', '{{price * 1.1}}'. Include all styling inline or in <style> tags. Google Fonts supported via <link> tags.
fabricJSDataobject
FabricJS canvas JSON object (from canvas.toJSON()). Mutually exclusive with 'html'. This is the standard format from Pictify's visual editor. Canvas objects can have variable bindings for dynamic content.
Template type (e.g., 'banner', 'card', 'certificate')
categorystring
Template category for organization
tagsarray
Tags for organizing and filtering templates (e.g., ['social', 'marketing', 'og-image'])
variableDefinitionsarray
Explicit variable definitions with types and defaults
outputFormatstring
Default output format: 'image' for PNG/JPEG/WebP, 'pdf' for PDF documents
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.
Parameters (7)
templateIdstringrequired
The template UID to update
namestring
New template name
htmlstring
New HTML content. Mutually exclusive with 'fabricJSData'.
fabricJSDataobject
New FabricJS canvas JSON. Mutually exclusive with 'html'.
widthnumber
New width in pixels (1-4000)
heightnumber
New height in pixels (1-4000)
variableDefinitionsarray
Updated variable definitions
pictify_delete_template
Permanently delete a template. This action cannot be undone. WARNING: Any batch jobs, experiments, or bindings using this template will stop working.
Parameters (1)
templateIdstringrequired
The template UID to delete
pictify_batch_render
Start a batch render job to generate multiple images from a single template with different variable sets. 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.
Parameters (7)
templateIdstringrequired
The template UID to batch render
variableSetsarrayrequired
Array of variable sets (1-100 items). Each item produces a separate image. Example: [{ name: 'Alice', role: 'CEO' }, { name: 'Bob', role: 'CTO' }] generates 2 images.
formatstring
Output format for all rendered images
qualitynumber
Output quality (0.1-1.0) for all rendered images. Only affects JPEG and WebP.
concurrencynumber
Number of concurrent renders (1-10). Higher values complete faster but consume quota faster. Plan limits: Free=1, Pro=3, Business=10.
layoutstring
Render all batch items using a specific layout variant (e.g., 'twitter-post'). Omit for default layout.
layoutsarray
Render all batch items across multiple layout variants. Use 'default' for the base layout. Example: ['default', 'twitter-post']. Each batch item will produce one image per layout (2D results).
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.
Parameters (1)
batchIdstringrequired
The batch job ID returned by pictify_batch_render
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.
Parameters (1)
batchIdstringrequired
The batch job ID to cancel
pictify_list_experiments
List A/B test experiments with optional filtering by type and status. Pictify experiments let you test different image variants to optimize for engagement. Types: 'ab_test' (split traffic between variants with Thompson Sampling auto-optimization), 'smart_link' (rules-based personalization by device/geo/time/browser/referrer), 'scheduled' (time-based image swapping with cron/daily/weekly recurrence). Returns experiment names, IDs, types, statuses, variant details, and pagination info.
Parameters (4)
typestring
Filter by experiment type. 'ab_test': split traffic between image variants with auto-optimization. 'smart_link': serve different images based on rules (device, location, time, browser, referrer). 'scheduled': swap images on a schedule (daily, weekly, cron expression).
statusstring
Filter by experiment status
pagenumber
Page number for pagination
limitnumber
Number of results per page (1-100)
pictify_create_experiment
Create a new experiment to test different image variants. WORKFLOW: 1) Create the experiment (starts in 'draft' status), 2) Use pictify_start_experiment to begin routing traffic, 3) Use pictify_get_experiment to monitor variant impressions/clicks, 4) Use pictify_complete_experiment to declare a winner. Requires at least 2 variants. Variant weights must sum to exactly 10000 (basis points, i.e., 5000 = 50%). The slug becomes part of the experiment URL and must be unique, 3-60 chars, lowercase alphanumeric and hyphens. For A/B tests, enable banditConfig to use Thompson Sampling auto-optimization.
Parameters (13)
namestringrequired
Human-readable experiment name (e.g., 'Homepage CTA Button Test')
typestringrequired
Experiment type. 'ab_test': randomly split traffic between variants (supports auto-optimization). 'smart_link': serve variants based on condition rules (device, country, time, custom properties). 'scheduled': automatically swap images on a time-based schedule (daily, weekly, cron).
slugstringrequired
Unique URL-safe identifier for this experiment (3-60 chars, lowercase alphanumeric + hyphens). Used in tracking URLs: /s/{slug}/pixel.gif, /s/{slug}/click. Cannot be reserved words: events, api, admin, health, status, pixel, track, sdk.
variantsarrayrequired
At least 2 variants required. Weights must sum to 10000. Example: [{ id: 'control', name: 'Original', weight: 5000, templateUid: 'tmpl_123' }, { id: 'variant-a', name: 'New Design', weight: 5000, templateUid: 'tmpl_456' }]
templateUidstring
Default template UID for all variants. Individual variants can override this.
goalConfigobject
Goal configuration. Determines what counts as a conversion.
banditConfigobject
Auto-optimization settings. Only applies to ab_test type. Uses Thompson Sampling to shift traffic toward the winning variant.
hypothesisstring
Hypothesis being tested (e.g., 'A green CTA button will increase click-through rate by 15%'). Optional but recommended for tracking experiment goals.
minimumSampleSizenumber
Minimum impressions before results are considered statistically significant
confidenceThresholdnumber
Required confidence level (0-1) to declare a winner (default 0.95 = 95%)
minimumRunDaysnumber
Minimum days the experiment must run before completion
outputConfigobject
Output image format and quality for rendered variants
fallbackImageUrlstring
Fallback image URL to serve if the experiment or variant fails to render
pictify_get_experiment
Get detailed information about a specific experiment. Returns the experiment's name, type, status, slug, variants with their configurations, traffic weights, impression/click counts per variant, hypothesis, goal and bandit configuration, confidence threshold, minimum run days, and timestamps. Use this to monitor experiment performance and review setup before making changes.
Parameters (1)
experimentIdstringrequired
The experiment UID to retrieve
pictify_get_experiment_quota
Check experiment usage and limits for your current plan. Returns quota usage for each experiment type (ab_test, smart_link, scheduled), maximum variants allowed per experiment, and analytics retention period in days. Use this before creating experiments to check if you have quota remaining.
No parameters.
pictify_update_experiment
Update an existing experiment. Available fields depend on the current status:
- draft/paused: All fields can be updated (name, slug, variants, goalConfig, banditConfig, hypothesis, etc.)
- running: Only name, confidenceThreshold, minimumRunDays, goalConfig.destinationUrl
- completed: Only name
If updating variants, weights must still sum to 10000.
Parameters (11)
experimentIdstringrequired
The experiment UID to update
namestring
New experiment name
slugstring
New slug (only when draft/paused)
hypothesisstring
Updated hypothesis
variantsarray
Updated variants. Weights must sum to 10000. Only editable when draft/paused.
goalConfigobject
Updated goal configuration
banditConfigobject
Updated auto-optimization settings
confidenceThresholdnumber
Updated confidence threshold (editable when running)
minimumRunDaysnumber
Updated minimum run days (editable when running)
outputConfigobject
Updated output format/quality
fallbackImageUrlstring
Updated fallback image URL
pictify_delete_experiment
Soft-delete an experiment. This cannot be undone. Running experiments must be paused or completed first before deletion.
Parameters (1)
experimentIdstringrequired
The experiment UID to delete
pictify_start_experiment
Start a draft or paused experiment, activating traffic routing to its variants. Once started, the experiment serves different image variants and tracks events. Valid transitions: draft -> running, paused -> running. If banditConfig is enabled (A/B tests), Thompson Sampling auto-optimizes traffic toward the winning variant.
Parameters (1)
experimentIdstringrequired
The experiment UID to start
pictify_pause_experiment
Pause a running experiment, temporarily stopping traffic routing and event tracking. Valid transition: running -> paused. The experiment can be resumed later with pictify_start_experiment. Collected data is preserved.
Parameters (1)
experimentIdstringrequired
The experiment UID to pause
pictify_complete_experiment
Complete an experiment by declaring a winning variant. This is a FINAL action — completed experiments cannot be restarted. After completion, all traffic is routed to the winning variant. Valid transitions: running -> completed, paused -> completed. WORKFLOW: Check pictify_get_experiment first to review per-variant impression/click counts, then declare the winner based on data.
Parameters (2)
experimentIdstringrequired
The experiment UID to complete
winnerVariantIdstringrequired
The ID of the winning variant. Must be one of the experiment's variant IDs. Use pictify_get_experiment to see available variant IDs and their performance.
pictify_track_experiment_events
Track impressions, views, clicks, and conversions for experiments. Use this to send event data from your application to Pictify's analytics. Accepts a single event or an array of up to 100 events. Authentication: Uses the API key (Bearer token). For client-side tracking, use the X-Write-Key header or writeKey field instead (safe to expose in browser code). Rate limit: 1000 requests/minute per IP.
One-line install. No code required. Ask your AI assistant to create OG images, social media cards, screenshots, animated GIFs, PDF invoices, certificates, and more — all from natural language.
What can it do?
Generate images from HTML/CSS, URLs, or reusable templates (OG images, Twitter cards, banners, product screenshots)
Create animated GIFs from CSS animations or by recording live web pages
Render PDFs from templates — invoices, certificates, reports, shipping labels
Batch generate up to 100 personalized images in one request (team badges, event passes, product catalogs)
A/B test images with built-in experiments, traffic splitting, and auto-optimization
Template system with 50+ expression functions for dynamic content (conditionals, string manipulation, date formatting)
Works with Claude (claude.ai + Claude Code + Claude Desktop), Cursor, Windsurf, and any MCP-compatible client.
"Create a Twitter card image for my blog post titled 'Getting Started with MCP' with a blue gradient background, 1200x630."
Screenshot a website:
"Take a screenshot of stripe.com at 1440x900."
Render a template:
"List my templates and render the blog-header template with title 'Hello World'."
Batch generate images:
"Use my team-badge template to generate images for these 10 team members: ..."
Create a PDF invoice:
"Render my invoice template as a PDF with company name 'Acme Inc', amount '$1,500', and date 'March 2026'."
A/B test an image:
"Create an A/B test experiment with two variants of my hero banner and start routing traffic."
Available Tools
Image Generation
Tool
Description
pictify_create_image
Generate an image from HTML/CSS, a URL screenshot, or a template
pictify_create_canvas_image
Generate an image from FabricJS canvas JSON data
pictify_list_images
List previously generated images
pictify_get_image
Get details of a specific image by ID
GIF Creation
Tool
Description
pictify_create_gif
Create animated GIF from HTML with CSS animations
pictify_capture_gif
Record a GIF from a live web page over time
pictify_list_gifs
List previously generated GIFs
pictify_get_gif
Get details of a specific GIF by ID
PDF Generation
Tool
Description
pictify_render_pdf
Generate single-page PDF from a template
pictify_render_multi_page_pdf
Generate multi-page PDF from a template
pictify_list_pdf_presets
List available PDF page size presets
Template Management
Tool
Description
pictify_list_templates
List saved templates with filtering and pagination
pictify_get_template
Get template details
pictify_get_template_variables
Get template variable definitions and types
pictify_render_template
Render a template with variables (supports layout variants)
pictify_create_template
Create a new template (HTML or FabricJS)
pictify_update_template
Update an existing template
pictify_delete_template
Delete a template
Batch Operations
Tool
Description
pictify_batch_render
Start batch render job (up to 100 items, async)
pictify_get_batch_results
Check batch job status and get result URLs
pictify_cancel_batch
Cancel a running batch job
A/B Testing & Experiments
Tool
Description
pictify_list_experiments
List experiments (A/B tests, smart links, scheduled)
pictify_create_experiment
Create an experiment with variants and traffic weights
pictify_get_experiment
Get experiment details and per-variant performance
pictify_get_experiment_quota
Check experiment usage and plan limits
pictify_update_experiment
Update experiment config (field access depends on status)
pictify_delete_experiment
Delete an experiment
pictify_start_experiment
Start routing traffic to variants
pictify_pause_experiment
Pause traffic routing (data preserved)
pictify_complete_experiment
Declare a winner and route all traffic to it
pictify_track_experiment_events
Track impressions, clicks, and conversions
Configuration
Variable
Description
Default
PICTIFY_API_KEY
Your Pictify API key (required for stdio mode)
—
PICTIFY_BASE_URL
Custom API base URL
https://api.pictify.io
PICTIFY_DEBUG
Enable verbose logging to stderr
false
PICTIFY_MCP_SOURCE
Slug identifying where this MCP server was installed from (e.g. mcp.so, glama, smithery, claude_desktop_gallery, github). Sent as X-Pictify-MCP-Source on every API call so Pictify can attribute installs by directory.
unknown
Install attribution
When you submit @pictify/mcp-server to an MCP directory, set
PICTIFY_MCP_SOURCE in the install snippet so we can attribute signups
to that listing. Example for the mcp.so directory entry:
For the hosted remote (https://mcp.pictify.io), pass the slug as a
query param on the connector URL instead — the server persists it on
the OAuth session:
code
https://mcp.pictify.io?source=mcp.so
Accepted slugs: lowercase letters, digits, ., -, _, up to 64
characters. Anything else is dropped to unknown.
Development
bash
git clone https://github.com/pictify-io/pictify-mcp.git
cd pictify-mcp
npm install
npm run build
Test with MCP Inspector:
bash
PICTIFY_API_KEY=your_key npm run inspector
License
MIT
Install
Configuration
Environment variables
PICTIFY_API_KEYrequiredsecret
Your Pictify API key from https://pictify.io/dashboard/api-tokens