Pictify MCP Server
The Pictify MCP Server enables AI agents to programmatically generate images, animated GIFs, and PDFs, manage reusable templates, run batch operations, and conduct A/B experiments on image variants.
Image Generation
Create static images (PNG, JPEG, WebP) from HTML/CSS, URL screenshots, FabricJS canvas data, or saved templates
List and retrieve previously generated images
GIF Creation
Generate animated GIFs from HTML with CSS animations, URLs, or templates
Record GIFs from live web pages over a specified duration (up to 30 seconds)
PDF Rendering
Render single or multi-page PDFs (up to 100 pages) from templates with dynamic variable substitution
Support for page size presets (A4, Letter, Legal, etc.)
Template Management
Full CRUD operations on reusable HTML or FabricJS-based templates
Inspect variable definitions (types, defaults, descriptions) and render with 50+ expression functions for dynamic content
Batch Operations
Start async batch render jobs to generate up to 100 personalized images from a single template
Check job status, retrieve result URLs, or cancel running jobs
A/B Testing & Experiments
Create A/B tests with traffic splitting and Thompson Sampling auto-optimization
Create smart link experiments (conditional content by device, location, time, browser, referrer) and scheduled experiments
Start, pause, complete experiments, declare winners, and track impressions, views, clicks, and conversions
Integrations: Works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible client via stdio or HTTP transport.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pictify MCP ServerCreate a social media card for 'How to use MCP' with a blue gradient background"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@pictify/mcp-server
An MCP (Model Context Protocol) server for Pictify — generate images, GIFs, videos, and PDFs from AI agents like Claude, Cursor, and Windsurf.
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 videos from templates, including agent-authored Remotion scenes
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)
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.
Quick Start
Prerequisites
Get your API key:
Sign up or log in at pictify.io
Go to API Tokens
Create a new token and copy it
Claude.ai (Web)
Use the hosted remote server — no install needed:
Go to claude.ai > Settings > Connectors
Click Add custom connector
URL:
https://mcp.pictify.ioClick Advanced Settings
Client ID:
pictifyClient Secret: paste your API token
Click Add
Claude Code
claude mcp add pictify -e PICTIFY_API_KEY=your_api_key -- npx -y @pictify/mcp-serverClaude Desktop
Add to your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"pictify": {
"command": "npx",
"args": ["-y", "@pictify/mcp-server"],
"env": {
"PICTIFY_API_KEY": "your_api_key"
}
}
}
}Restart Claude Desktop after saving.
Cursor
Add to Cursor's MCP settings (Settings > MCP Servers):
{
"mcpServers": {
"pictify": {
"command": "npx",
"args": ["-y", "@pictify/mcp-server"],
"env": {
"PICTIFY_API_KEY": "your_api_key"
}
}
}
}Windsurf
Add to Windsurf's MCP settings:
{
"mcpServers": {
"pictify": {
"command": "npx",
"args": ["-y", "@pictify/mcp-server"],
"env": {
"PICTIFY_API_KEY": "your_api_key"
}
}
}
}Related MCP server: PagePixels Screenshots MCP Server
Examples
Try these prompts after connecting:
Create a social media card:
"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'."
Available Tools
Image Generation
Tool | Description |
| Generate an image from HTML/CSS, a URL screenshot, or a template |
| Generate an image from FabricJS canvas JSON data |
| List previously generated images |
| Get details of a specific image by ID |
GIF Creation
Tool | Description |
| Create animated GIF from HTML with CSS animations |
| Record a GIF from a live web page over time |
| List previously generated GIFs |
| Get details of a specific GIF by ID |
PDF Generation
Tool | Description |
| Generate single-page PDF from a template |
| Generate multi-page PDF from a template |
| List available PDF page size presets |
Template Management
Tool | Description |
| List saved templates with filtering and pagination |
| Get template details |
| Get template variable definitions and types |
| Render a template with variables (supports layout variants) |
| Create a new template (HTML or FabricJS) |
| Update an existing template |
| Delete a template |
Batch Operations
Tool | Description |
| Start batch render job (up to 100 items, async) |
| Check batch job status and get result URLs |
| Cancel a running batch job |
Configuration
Variable | Description | Default |
| Your Pictify API key (required for stdio mode) | — |
| Custom API base URL |
|
| Enable verbose logging to stderr |
|
| Slug identifying where this MCP server was installed from (e.g. |
|
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:
{
"mcpServers": {
"pictify": {
"command": "npx",
"args": ["-y", "@pictify/mcp-server"],
"env": {
"PICTIFY_API_KEY": "your_api_key",
"PICTIFY_MCP_SOURCE": "mcp.so"
}
}
}
}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:
https://mcp.pictify.io?source=mcp.soAccepted slugs: lowercase letters, digits, ., -, _, up to 64
characters. Anything else is dropped to unknown.
Development
git clone https://github.com/pictify-io/pictify-mcp.git
cd pictify-mcp
npm install
npm run buildTest with MCP Inspector:
PICTIFY_API_KEY=your_key npm run inspectorLicense
MIT
Available Tools
31 toolspictify_batch_renderAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to batch render | |
| variableSets | Yes | 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. | |
| format | No | Output format for all rendered images | png |
| quality | No | Output quality (0.1-1.0) for all rendered images. Only affects JPEG and WebP. | |
| concurrency | No | Number of concurrent renders (1-10). Higher values complete faster but consume quota faster. Plan limits: Free=1, Pro=3, Business=10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: asynchronous execution ('job runs asynchronously'), immediate return with batchId ('returns immediately with a batchId (HTTP 202)'), quota/plan limitations ('Supports up to 100 items per batch (plan-dependent)'), and concurrency implications ('Higher values complete faster but consume quota faster'). It doesn't mention error handling or retry behavior, but covers most critical operational aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with front-loaded purpose, followed by use cases, workflow steps, and behavioral notes. Every sentence adds value: the first establishes core functionality, the second provides concrete examples, the third outlines the workflow, and the fourth covers behavioral traits and alternatives. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex batch processing tool with 5 parameters and no annotations/output schema, the description does an excellent job covering purpose, workflow, behavioral characteristics, and alternatives. It doesn't describe the exact return format beyond 'batchId' or error scenarios, but given the comprehensive schema coverage and clear workflow guidance, it's nearly complete. The absence of output schema means some return value details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds some context about 'variableSets' ('Each variable set produces a separate image') and mentions the 100-item limit, but doesn't provide significant additional parameter semantics beyond what's already well-documented in the schema. The schema descriptions are comprehensive for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Start a batch render job'), resource ('multiple images from a single template'), and scope ('with different variable sets'). It explicitly distinguishes this tool from its sibling 'pictify_render_multi_page_pdf' for single multi-page PDF generation, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance (steps 1-3 with specific sibling tool names), clear when-to-use examples (personalized social cards, product images, etc.), and explicit when-not-to-use guidance ('For generating a single multi-page PDF instead, use pictify_render_multi_page_pdf'). This gives comprehensive context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_cancel_batchAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | The batch job ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits: completed items retain results, remaining skipped. No annotations exist, so description carries full burden and does well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one param and no output schema. Description covers action, effects, and use case. Adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single parameter batchId with a clear description. The tool description adds no additional parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it cancels a running batch render job, using a specific verb and resource. It distinguishes from sibling tools like pictify_batch_render (starts batch) and pictify_get_batch_results (gets results).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use when started with incorrect data or no longer need results. Does not explicitly mention when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_capture_gifAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the web page to capture as a GIF. Must be a publicly accessible http:// or https:// URL. | |
| width | No | Capture viewport width in pixels (1-2000) | |
| height | No | Capture viewport height in pixels (1-2000) | |
| quality | No | GIF quality preset. 'low' (10fps, up to 10s), 'medium' (15fps, up to 15s), 'high' (24fps, up to 30s). Higher quality = larger file size. | medium |
| frameDurationSeconds | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the mechanism (headless browser, recording over time), the time cost proportional to duration, and that it returns a hosted URL. It does not confirm whether the operation is read-only, but it implies a non-destructive capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured paragraph that front-loads the main action, then provides use cases, an alternative, and return value. Every sentence adds information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, full schema coverage, and no output schema, the description covers the return format (hosted GIF URL) and differentiates from a sibling. It could mention error scenarios (e.g., inaccessible URL) or page load requirements, but the current detail is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description adds value by explaining quality presets with fps/duration limits, and the trade-off between quality and file size. It also notes that the URL must be publicly accessible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool records a GIF from a live web page URL using a headless browser. It lists specific use cases (CSS/JS animations, interactive demos, UI transitions, product walkthroughs) and directly distinguishes itself from the sibling tool pictify_create_gif, which is for custom HTML.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool vs. pictify_create_gif (live sites vs. custom HTML). It also notes that operation time scales with duration. It could be more explicit about when not to use it (e.g., static pages), but the alternative is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_complete_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to complete | |
| winnerVariantId | Yes | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical behavioral traits: this is a final action that cannot be undone, it routes all traffic to the winning variant, and it only accepts specific state transitions (running->completed, paused->completed). However, it doesn't mention potential side effects like quota impacts or error conditions, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three sentences that each serve a distinct purpose: stating the action, warning about finality and traffic routing, and providing workflow guidance. There is no wasted text, and the most critical information (finality) is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does an excellent job covering the essential context: purpose, irreversible nature, state requirements, and workflow. The main gap is the lack of information about return values or error responses, which would be helpful given the absence of an output schema. However, it provides sufficient guidance for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value beyond the schema by reinforcing that winnerVariantId must be from the experiment's variants and suggesting pictify_get_experiment to see them, but this is largely redundant with the schema's description. This meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('complete an experiment by declaring a winning variant'), identifies the resource ('experiment'), and distinguishes it from siblings like pictify_pause_experiment or pictify_update_experiment by emphasizing its finality. The verb 'complete' is precise and differentiates from other experiment lifecycle tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: after checking pictify_get_experiment to review data, and only for experiments in 'running' or 'paused' states. It also names the specific alternative tool (pictify_get_experiment) for prerequisite data gathering, creating a clear workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_create_canvas_imageAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| fabricJSData | Yes | FabricJS canvas JSON object. This is the serialized canvas data from FabricJS (canvas.toJSON()). Contains objects array with shapes, text, images, and their properties. | |
| variables | No | Variables to substitute into the canvas elements that have variable bindings. | |
| variableDefinitions | No | Variable definitions describing the types and defaults for each variable. | |
| width | No | Output image width in pixels. If omitted, uses the canvas width. | |
| height | No | Output image height in pixels. If omitted, uses the canvas height. | |
| fileExtension | No | Output image format | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses return value ('hosted image URL, CDN-backed') but lacks details on auth requirements, rate limits, or side effects. Does not explicitly state read-only or destructive nature, though 'generate' implies non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose and usage guidelines. Every sentence adds value, no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core functionality, return value, and distinction from sibling tool. Could mention potential limitations or error conditions, but given the complexity and no output schema, it's fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have schema descriptions (100% coverage), and the description adds meaningful context beyond the schema, e.g., explaining variable substitution and FabricJS JSON structure. Provides a brief overview of what variables and fabricJSData are.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Generate an image from FabricJS canvas JSON data with optional variable substitution', specifying the verb (generate), resource (image from JSON), and feature (variable substitution). Explicitly distinguishes from sibling tool pictify_render_template by stating when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides precise guidance: 'Use this when you have a FabricJS canvas design...' and 'For rendering a saved template, use pictify_render_template instead'. Also notes that it renders directly without saving as template first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_create_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable experiment name (e.g., 'Homepage CTA Button Test') | |
| type | Yes | 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). | |
| slug | Yes | 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. | |
| variants | Yes | 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' }] | |
| templateUid | No | Default template UID for all variants. Individual variants can override this. | |
| goalConfig | No | Goal configuration. Determines what counts as a conversion. | |
| banditConfig | No | Auto-optimization settings. Only applies to ab_test type. Uses Thompson Sampling to shift traffic toward the winning variant. | |
| hypothesis | No | Hypothesis being tested (e.g., 'A green CTA button will increase click-through rate by 15%'). Optional but recommended for tracking experiment goals. | |
| minimumSampleSize | No | Minimum impressions before results are considered statistically significant | |
| confidenceThreshold | No | Required confidence level (0-1) to declare a winner (default 0.95 = 95%) | |
| minimumRunDays | No | Minimum days the experiment must run before completion | |
| outputConfig | No | Output image format and quality for rendered variants | |
| fallbackImageUrl | No | Fallback image URL to serve if the experiment or variant fails to render |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the experiment starts in 'draft' status, requires unique slugs for URLs, and includes constraints like variant weight sums (10000 basis points) and slug formatting rules. However, it lacks details on error handling, rate limits, or authentication needs, which are important for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded, starting with the core purpose and workflow steps, followed by key constraints and usage tips. Every sentence adds value—none are wasted—and it efficiently covers prerequisites, slug rules, and banditConfig usage in a compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, nested objects) and lack of annotations or output schema, the description does a good job of providing context. It explains the workflow, constraints, and key behavioral aspects. However, it could improve by mentioning error responses or the structure of the created experiment object, as there's no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema, such as clarifying that the slug 'becomes part of the experiment URL' and that variant weights use 'basis points (i.e., 5000 = 50%)', but most details are redundant. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new experiment') and resource ('to test different image variants'), distinguishing it from siblings like pictify_update_experiment or pictify_get_experiment. It explicitly mentions the creation of experiments with variants, which is distinct from other tools that handle rendering, tracking, or management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool as part of a workflow (steps 1-4), naming specific sibling tools (pictify_start_experiment, pictify_get_experiment, pictify_complete_experiment) for subsequent actions. It also includes prerequisites ('Requires at least 2 variants') and context for when to enable banditConfig ('For A/B tests'), offering clear alternatives and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_create_gifAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | 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'. | |
| url | No | URL of a web page to capture as a GIF. Mutually exclusive with 'html' and 'template'. | |
| template | No | Template UID to render as a GIF. Use with 'variables'. Mutually exclusive with 'html' and 'url'. | |
| variables | No | Template variables as key-value pairs. Only used when 'template' is provided. | |
| width | No | GIF width in pixels (1-2000). Keep dimensions reasonable for file size. | |
| height | No | GIF height in pixels (1-2000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses required animation content, maximum dimensions, and return values, but omits authentication needs, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, each sentence adds value, and it is appropriately sized for the tool's complexity with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately covers return values, input constraints, and usage patterns. It lacks details on persistence or error conditions but is largely complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds mutual exclusivity context, template variable dependency, and practical limits like dimension maximums, elevating it above mere schema repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates an animated GIF from HTML, URL, or template, and explicitly distinguishes from pictify_capture_gif for live website recording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each parameter (one of html, url, template+variables) and directs to an alternative for live recording. It lists common use cases but doesn't cover all sibling exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_create_imageAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | 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'. | |
| url | No | URL of a web page to screenshot. Must be publicly accessible http:// or https://. Mutually exclusive with 'html' and 'template'. | |
| template | No | Template UID to render. Use with 'variables' to substitute dynamic values. Mutually exclusive with 'html' and 'url'. Use pictify_list_templates to find templates. | |
| variables | No | Template variables as key-value pairs. Only used when 'template' is provided. | |
| width | No | Image width in pixels (1-4000). Common sizes: 1200x630 (OG image), 1080x1080 (Instagram), 1200x675 (Twitter card), 1920x1080 (presentation slide) | |
| height | No | Image height in pixels (1-4000) | |
| fileExtension | No | Output image format. PNG for transparency support, JPEG/JPG for photos (smaller file size), WebP for best compression. | png |
| selector | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: the tool returns a hosted image URL (CDN-backed) and asset ID, has maximum dimension constraints (4000x4000 pixels), and supports specific input methods. It doesn't mention rate limits, authentication requirements, or error conditions, but provides substantial operational context for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: first states core functionality, second provides use cases, third explains input options and output. Every sentence earns its place with no redundancy. It's appropriately sized for an 8-parameter tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 8 parameters, 100% schema coverage, but no annotations and no output schema, the description provides good context about what the tool creates, common use cases, input constraints, and output format. It could be more complete by mentioning authentication requirements, rate limits, or error handling, but covers the essential operational context well given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema - it mentions the three mutually exclusive input options (html, url, template+variables) and maximum dimensions, but doesn't provide additional parameter semantics that aren't already in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Generate') and resource ('static image') with specific formats (PNG, JPEG, WebP) and three distinct input methods (HTML/CSS, URL screenshot, template). It explicitly distinguishes this tool from sibling tools like pictify_create_gif, pictify_render_pdf, and pictify_batch_render by focusing on single static image generation rather than animated GIFs, PDFs, or batch operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool through common use cases (Open Graph images, social media cards, screenshots, etc.) and mentions the three mutually exclusive input options. However, it doesn't explicitly state when NOT to use it (e.g., for animated content use pictify_create_gif, for batch operations use pictify_batch_render) or provide direct alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_create_templateAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name for identification and organization | |
| html | No | 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. | |
| fabricJSData | No | 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. | |
| width | No | Template width in pixels (1-4000). Common: 1200x630 (OG), 1080x1080 (social square), 1920x1080 (presentation) | |
| height | No | Template height in pixels (1-4000) | |
| type | No | Template type (e.g., 'banner', 'card', 'certificate') | |
| category | No | Template category for organization | |
| tags | No | Tags for organizing and filtering templates (e.g., ['social', 'marketing', 'og-image']) | |
| variableDefinitions | No | Explicit variable definitions with types and defaults | |
| outputFormat | No | Default output format: 'image' for PNG/JPEG/WebP, 'pdf' for PDF documents |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the mutually exclusive parameter choice, the expression engine capabilities, and the return value (template ID). It could mention potential errors or limits but is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loading the main purpose. It is detailed but not verbose, with each sentence adding value. Slightly long but within reason.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, nested objects, no output schema, and no annotations, the description covers the core functionality, modes, variable syntax, and links to a sibling tool. It could explicitly mention the required 'name' parameter but is generally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context about expression syntax and use cases but doesn't significantly enhance the schema descriptions. It does explain the two main options and their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a reusable template with variable placeholders, distinguishing it from sibling tools like pictify_render_template and pictify_update_template. It specifies the two mutually exclusive content sources (FabricJS canvas data or raw HTML), providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the mutual exclusivity of 'html' and 'fabricJSData' and advises using pictify_render_template after creation. While it doesn't explicitly list when not to use it, the context is clear enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_delete_experimentAInspect
Soft-delete an experiment. This cannot be undone. Running experiments must be paused or completed first before deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical traits: it's a destructive operation ('This cannot be undone'), specifies prerequisites for safe use, and clarifies the deletion type ('soft-delete'), which implies potential recovery mechanisms not detailed but hints at non-permanent removal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and key warnings in just two sentences, with zero wasted words. Each sentence earns its place by conveying essential information: the tool's purpose, irreversibility, and usage prerequisites, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a destructive operation with no annotations or output schema, the description is largely complete. It covers purpose, behavioral risks, and prerequisites. A minor gap is the lack of details on what 'soft-delete' entails (e.g., recovery options or system behavior), but it provides sufficient context for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, fully documenting the single parameter 'experimentId'. The description does not add any additional meaning beyond the schema, such as format examples or constraints, so it meets the baseline score of 3 where the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('soft-delete') and resource ('an experiment'), distinguishing it from siblings like pictify_complete_experiment or pictify_pause_experiment. It precisely defines what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool by specifying prerequisites ('Running experiments must be paused or completed first before deletion'). However, it does not explicitly mention when not to use it or name alternatives, such as pictify_update_experiment for modifications instead of deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_delete_templateAInspect
Permanently delete a template. This action cannot be undone. WARNING: Any batch jobs, experiments, or bindings using this template will stop working.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It clearly discloses the destructive nature (permanent, cannot be undone) and cascading impact on dependent entities, which is essential for an agent deciding to invoke this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with critical information front-loaded: action, irreversibility, and warning. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete operation with no output schema, the description covers all necessary context: what it does, that it's irreversible, and what consequences occur. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description ('The template UID to delete'). The tool description adds no further detail about the parameter beyond confirming it identifies the template, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Permanently delete a template') with a specific verb and resource. It distinguishes from sibling tools like pictify_create_template and pictify_update_template by emphasizing deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns about irreversibility and side effects ('Any batch jobs, experiments, or bindings using this template will stop working'), guiding the agent on when to use (only when permanent deletion is intended) and implications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_batch_resultsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | The batch job ID returned by pictify_batch_render |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It transparently explains the return structure (status, progress, item details, error messages) and polling behavior, providing adequate transparency for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 3 sentences, each providing essential information: purpose, return fields, and usage instructions. No redundancy, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status-checking tool with one parameter and no output schema, the description fully covers what the agent needs: how to call, what to expect, and what to do next. It's complete and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for batchId. The description adds value by linking it to pictify_batch_render, telling the agent where to get the ID, which exceeds baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status and results of a batch render job, listing possible statuses and output details. It distinguishes itself from siblings like pictify_batch_render and pictify_cancel_batch, demonstrating a specific verb-resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this after pictify_batch_render and advises polling when status is 'processing'. While it doesn't mention when not to use, the guidance is clear and contextually sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is a read operation ('Get detailed information') and lists the comprehensive data returned, which helps the agent understand the tool's behavior. However, it lacks details on error handling, rate limits, or authentication needs, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, the second enumerates the returned data, and the third provides usage context. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieving detailed experiment data) and the absence of annotations and output schema, the description does a good job by listing the specific fields returned and providing usage guidance. However, it could be more complete by mentioning the response format or potential errors, which would help the agent handle the tool more effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the experimentId parameter is fully documented in the schema as 'The experiment UID to retrieve'), so the baseline is 3. The description does not add any additional meaning or context about the parameter beyond what the schema provides, such as format examples or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get detailed information') and resource ('about a specific experiment'), distinguishing it from siblings like pictify_list_experiments (which lists multiple experiments) and pictify_update_experiment (which modifies experiments). It specifies the exact scope of information returned, making the purpose highly specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to monitor experiment performance and review setup before making changes'), which implicitly suggests alternatives like pictify_update_experiment for changes. However, it does not explicitly state when not to use it or name specific alternative tools, keeping it at a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_experiment_quotaAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's a read-only check (implied by 'check' and 'returns'), specifies the return data structure (quota usage per experiment type, maximum variants, analytics retention), and hints at usage constraints ('before creating experiments'). However, it lacks details on rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core purpose in the first sentence, followed by specific return details and usage guidance in the second. Every sentence adds value without waste, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema), the description is largely complete: it explains what the tool does, when to use it, and what it returns. However, without annotations or an output schema, it could benefit from more detail on error handling or exact return formats, but this is minor for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately adds no parameter information, as none are needed, avoiding redundancy and focusing on the tool's purpose and output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check experiment usage and limits') and resources ('experiment quota'), distinguishing it from sibling tools like 'pictify_get_experiment' or 'pictify_list_experiments' by focusing on quota metrics rather than experiment details or listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides when-to-use guidance: 'Use this before creating experiments to check if you have quota remaining.' This directly advises on the tool's context and purpose relative to other operations, such as 'pictify_create_experiment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_gifAInspect
Get details of a specific GIF by its UID. No authentication required. Returns the GIF URL, dimensions, and animation details.
| Name | Required | Description | Default |
|---|---|---|---|
| gifId | Yes | The GIF UID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral transparency. It discloses that no authentication is needed and specifies the return fields (URL, dimensions, animation details). This is sufficient for a simple retrieval tool, though it could mention error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the purpose and key details. Every sentence adds value, no redundancy or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter retrieval tool without an output schema, the description covers the essential behavioral aspects: what it returns (URL, dimensions, animation details) and authentication status. It could mention possible error conditions or if the GIF is public/private, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'gifId' with description 'The GIF UID to retrieve', and the description adds 'by its UID', but this does not significantly improve understanding beyond the schema. With 100% schema coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'details of a specific GIF by its UID', which distinguishes it from sibling tools like 'pictify_list_gifs' (list all GIFs) and 'pictify_get_image' (different resource). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'No authentication required', which is helpful, but does not provide explicit guidance on when to use this tool versus alternatives like 'pictify_list_gifs' or 'pictify_get_image'. Usage context is implied but lacks when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_imageAInspect
Get details of a specific image by its UID. Returns the image URL, dimensions, format, and creation timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| imageId | Yes | The image UID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the behavioral transparency burden. It mentions the return fields but does not explicitly state the tool is read-only, idempotent, or requires specific permissions. It adds some value by listing outputs but lacks safety or side-effect disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose, and no redundant information. Every word earns its place, achieving high conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter retrieval tool with no output schema, the description adequately covers purpose and output fields. It does not mention error conditions or authentication, but it is reasonably complete given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter (imageId as 'The image UID to retrieve'). The tool description adds no additional meaning beyond confirming retrieval 'by its UID,' so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a specific image by its UID, listing the specific return fields (URL, dimensions, format, timestamp). This distinguishes it from sibling tools that get other resources (e.g., get_gif, get_template) or batch operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need image details and have the UID, but it does not explicitly provide guidance on when not to use the tool or mention alternatives like list_images if the UID is unknown. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_templateAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses specific return fields (name, dimensions, variables, etc.) and implies read-only behavior. No annotations present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return fields sufficiently for a retrieval tool, though error handling or other details are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter; description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb ('Get') and resource ('detailed information about a specific template'), and it's distinct from sibling tools like list and render.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for use ('before rendering'), but does not mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_get_template_variablesAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to get variables for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It details what the tool returns (names, types, defaults, descriptions) and mentions the expression engine capabilities. It does not specify non-destructive nature or auth requirements, but for a simple read operation, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second gives critical usage instruction and return type summary. No wasted words, information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose, usage, return content, and expression engine. Missing details about potential errors or format of variable descriptions, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for its single parameter 'templateId', so baseline is 3. The description does not add additional context beyond schema, so no increase.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves variable definitions for a template and distinguishes it from sibling tools by explicitly naming it as a prerequisite for render operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Always call this before pictify_render_template, pictify_batch_render, pictify_render_pdf, or pictify_render_multi_page_pdf' — directly telling when to use and listing alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_list_experimentsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | 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). | |
| status | No | Filter by experiment status | |
| page | No | Page number for pagination | |
| limit | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it's a read operation (implied by 'List'), returns paginated results, provides details about experiment types with clear explanations, and specifies the return data structure (names, IDs, types, statuses, variant details, pagination info). This covers most behavioral aspects well for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured: first sentence states the core purpose, second provides domain context, third explains parameter values with clear examples, and fourth specifies return values. Every sentence earns its place with zero wasted words, making it highly scannable and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with 4 parameters, 100% schema coverage, and no output schema, the description provides excellent context. It explains the domain (Pictify experiments), details the experiment types with concrete examples, specifies the return data structure, and mentions pagination. The only minor gap is not explicitly stating this is a read-only operation, though that's strongly implied by 'List'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some value by mentioning 'optional filtering by type and status' and providing context about experiment types, but doesn't add significant semantic information beyond what's already in the parameter descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('A/B test experiments') with specific scope ('with optional filtering by type and status'). It distinguishes from siblings like 'pictify_get_experiment' (singular retrieval) and 'pictify_create_experiment' (creation) by focusing on listing with filtering capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('List A/B test experiments with optional filtering by type and status') and mentions what it returns, but doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools. The filtering guidance is helpful but not comprehensive for sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_list_gifsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of GIFs to return (1-100) | |
| offset | No | Number of GIFs to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read-only list operation but does not disclose potential rate limits, authentication needs, or idempotency. Basic transparency, but no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly concise. Every word adds value: lists purpose, returned data, and usage recommendation. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two parameters and no output schema, the description covers purpose, return fields, and usage. Missing pagination iteration details, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The tool description mentions pagination generally but does not add new semantics beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists previously generated GIFs with pagination, specifying returned fields. Distinguishes itself from siblings like pictify_get_gif (single GIF) and pictify_create_gif (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('browse your GIF history or find a previously generated animation'). Does not provide exclusions or compare directly to alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_list_imagesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of images to return (1-100) | |
| offset | No | Number of images to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It discloses pagination and return fields but omits details like ordering, authentication needs, or rate limits. The description conveys basic read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant information. Every word adds value: verb, resource, pagination, return fields, and usage hint. Exceptionally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description covers input parameters and return fields. Lacks details on ordering but is otherwise complete for its complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for limit and offset. The description adds context about pagination but does not enhance parameter semantics beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists images with pagination and specifies what it returns (URLs, IDs, dimensions, format, timestamps). It distinguishes from siblings like pictify_get_image (single image) and pictify_list_gifs (gifs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to browse your render history or find a previously generated image', providing clear context. It does not mention when not to use or alternative tools, but the usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_list_pdf_presetsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes a read-only list operation with no side effects, which is clear, but could explicitly state it's safe and does not modify anything. Still, it's adequately transparent for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load purpose and usage guidance, with no wasted words. Examples are included concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is complete. It covers purpose, usage, and examples, with no missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, baseline is 4. Description adds significant value by explaining the output contains dimensions and how to use preset names, going beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all PDF page size presets with dimensions, using specific verb 'List' and resource. It distinguishes from siblings by focusing on presets and mentioning their use in render tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use preset names when calling pictify_render_pdf or pictify_render_multi_page_pdf, providing clear when-to-use guidance and examples of common presets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_list_templatesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| limit | No | Number of templates per page (1-100, default 12) | |
| sort | No | Sort order for results | newest |
| outputFormat | No | Filter templates by their output format type | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains that the tool returns template names, IDs, dimensions, output formats, and pagination info. However, it does not disclose auth requirements, rate limits, or whether it lists templates for the authenticated user only. The description is adequate but lacks some behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first states the purpose, the second explains the context and return values. It is front-loaded and each word adds value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return values and the concept of templates. It explains what templates are and why to list them. However, it lacks details on error handling or authentication, but for a list tool, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context by explaining what templates are (reusable designs with variable placeholders) and mentions pagination/filtering, but does not add significant meaning beyond the schema parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'saved templates' within a Pictify account, including pagination and filtering capabilities. It distinguishes this tool from siblings like pictify_render_template and pictify_create_template by focusing on discovery before rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool to 'discover available templates before rendering,' providing a clear use case. While it doesn't state when not to use it, the mention of 'before rendering' differentiates it from other listing tools like pictify_list_experiments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_pause_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the state transition constraint (running → paused), the temporary nature of pausing, data preservation, and the resumable capability. However, it doesn't mention potential side effects like whether paused experiments still count against quotas or if there are time limits for pausing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the core action, the state transition constraint, and the preservation/resumption context. Every sentence adds essential information without redundancy, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does well by covering the action, preconditions, data handling, and resumption path. However, it doesn't specify what the tool returns (e.g., success confirmation or updated experiment state), which would be helpful given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'experimentId' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides (e.g., format examples or validation rules), so it meets the baseline for high schema coverage without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('pause a running experiment') and distinguishes it from siblings by specifying the valid state transition (running → paused). It explicitly names the alternative tool for resuming (pictify_start_experiment), making the purpose unambiguous and distinct from related tools like pictify_cancel_experiment or pictify_complete_experiment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: only for experiments currently in the 'running' state, with a named alternative for resuming (pictify_start_experiment). It also clarifies what the tool does not do (data is preserved, not deleted), which helps differentiate it from destructive siblings like pictify_delete_experiment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_render_multi_page_pdfAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to render as a multi-page PDF | |
| variableSets | Yes | Array of variable sets, one per page (1-100 items). Example: [{ name: 'Alice', score: '95' }, { name: 'Bob', score: '87' }] produces a 2-page PDF. | |
| preset | No | PDF page size preset (e.g., 'A4', 'Letter'). Use pictify_list_pdf_presets to see options. | |
| title | No | PDF document title metadata |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the output format ('single combined PDF URL'), page limit (1-100), and the need for variable sets. However, it does not discuss error handling, authentication, or potential side effects, which would be beneficial. Overall, it provides adequate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It front-loads the primary purpose, then provides details, workflow, and alternatives. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% coverage) and no output schema, the description adequately explains the input (templateId, variableSets, title, preset) and the output (single PDF URL). It also addresses the range and use cases, making it complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds an example for variableSets and clarifies it is one per page, but the schema already provides descriptions for all parameters. The added value is marginal beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generating a multi-page PDF from a template with multiple variable sets. It uses a specific verb ('generate') and resource ('multi-page PDF'), and distinguishes from sibling tools like pictify_batch_render and pictify_render_template. The inclusion of use cases further clarifies the intended functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance ('Call pictify_get_template_variables first') and clearly states when to use an alternative ('For generating separate image files per set, use pictify_batch_render instead'). This helps the agent decide between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_render_pdfAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to render as a PDF. Use pictify_list_templates to find available templates. | |
| variables | No | 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. | |
| preset | No | 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. | |
| title | No | PDF document title metadata — appears in the browser tab when the PDF is opened |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses it returns a hosted PDF URL and that it's single-page. However, it lacks details on side effects, error handling, or permission requirements. The description is adequate but not rich in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: purpose first, then common use cases, then step-by-step workflow. Every sentence adds value; no redundancy. Length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes input (template, variables, preset), workflow, and output (hosted PDF URL). Missing details about error conditions or validation. For a single-purpose generation tool, it covers the essential context adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by explaining the workflow for variables (use get_template_variables) and preset (use list_pdf_presets). This goes beyond schema descriptions, providing strategic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates a single-page PDF from a saved template with variable substitutions, listing common use cases. It explicitly differentiates from siblings by specifying 'single-page' (contrast with pictify_render_multi_page_pdf) and mentions batch rendering alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit workflow: call pictify_get_template_variables first to discover variables, then use this tool. Also advises using pictify_list_pdf_presets for page size options. Does not explicitly state when not to use or alternatives, but the workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_render_templateAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to render | |
| variables | No | 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. | |
| format | No | Output format. PNG for transparency, JPEG for photos, WebP for web optimization, PDF for documents. | png |
| quality | No | Output quality (0.1-1.0). Lower values reduce file size. Only affects JPEG and WebP. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing: the workflow process, return value (hosted image URL with CDN backing), and behavioral context about template types (FabricJS/HTML). It doesn't mention rate limits, authentication requirements, or error conditions, but provides substantial operational guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear workflow steps, use cases, and alternative tool reference. Every sentence adds value: first defines the core function, second explains template types, third provides workflow, fourth lists use cases, fifth gives alternative, sixth describes return value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description provides excellent workflow context, sibling tool relationships, and return value information. It could improve by mentioning error conditions or authentication requirements, but covers the essential operational context well given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds minimal parameter semantics beyond the schema - it mentions 'variable substitutions' which aligns with the variables parameter, but doesn't provide additional context about templateId format, variable validation, or quality/format interactions beyond what's in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Render a saved template with variable substitutions') and resource ('to produce an image or PDF'), distinguishing it from siblings like pictify_batch_render (batch processing) and pictify_render_pdf (PDF-specific rendering). It explicitly mentions both FabricJS canvas designs and HTML templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance (3-step process referencing sibling tools pictify_list_templates and pictify_get_template_variables), clear alternatives (use pictify_batch_render for multiple variable sets), and specific use cases (OG images, social cards, product images, event banners). It tells agents exactly when to use this tool versus other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_start_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and does so effectively. It describes key behavioral traits: the tool activates traffic routing, serves variants, tracks events, and includes details about Thompson Sampling optimization for banditConfig. However, it lacks information on error conditions, rate limits, or authentication needs, which are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with three sentences that each add value: the first states the core action, the second details transitions and effects, and the third explains banditConfig behavior. There is no wasted text, and information is structured logically from general to specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (state transitions, traffic routing, event tracking) and lack of annotations or output schema, the description is largely complete. It covers purpose, usage, and behavioral aspects well. However, it does not specify return values or error handling, which are minor omissions in an otherwise thorough description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter (experimentId). The description does not add any parameter-specific semantics beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('start', 'activating traffic routing') and resources ('draft or paused experiment'), distinguishing it from siblings like pictify_pause_experiment and pictify_complete_experiment. It explicitly mentions what happens after starting (serves variants, tracks events), making the action concrete and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines by specifying valid state transitions ('draft -> running, paused -> running'), indicating when to use this tool versus alternatives like pictify_pause_experiment or pictify_complete_experiment. It also mentions prerequisites (experiment must be in draft or paused state) and context (banditConfig for A/B tests), offering clear when-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_track_experiment_eventsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | Array of events to track (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and excels at this. It clearly explains authentication requirements (API key/Bearer token, client-side alternatives), rate limits (1000 requests/minute per IP), and operational constraints (accepts single event or array up to 100 events). This provides comprehensive behavioral context beyond what the input schema offers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and front-loaded with the core purpose, followed by essential operational details. Every sentence earns its place by providing critical information about usage, authentication, and constraints without any wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides excellent coverage of behavioral aspects (authentication, rate limits, constraints). However, it doesn't describe what happens after successful tracking or potential error scenarios, which would be helpful given the absence of output schema. The single parameter is well-covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents the single 'events' parameter thoroughly. The description adds minimal value beyond the schema by mentioning 'single event or an array of up to 100 events' which is already covered in the schema's minItems/maxItems. This meets the baseline expectation when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Track impressions, views, clicks, and conversions') and resource ('for experiments'), distinguishing it from sibling tools that focus on rendering, management, or retrieval operations. It precisely identifies the tool's function as sending event data to Pictify's analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('to send event data from your application to Pictify's analytics') and offers guidance on authentication methods for different scenarios (API key vs. client-side tracking). However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_update_experimentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes | The experiment UID to update | |
| name | No | New experiment name | |
| slug | No | New slug (only when draft/paused) | |
| hypothesis | No | Updated hypothesis | |
| variants | No | Updated variants. Weights must sum to 10000. Only editable when draft/paused. | |
| goalConfig | No | Updated goal configuration | |
| banditConfig | No | Updated auto-optimization settings | |
| confidenceThreshold | No | Updated confidence threshold (editable when running) | |
| minimumRunDays | No | Updated minimum run days (editable when running) | |
| outputConfig | No | Updated output format/quality | |
| fallbackImageUrl | No | Updated fallback image URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the mutation behavior (updating experiments) and adds critical context about status-dependent field editability and the weight-sum constraint for variants. However, it doesn't mention permissions, rate limits, or what happens to unspecified fields during updates, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by a bulleted list that efficiently organizes status-dependent rules and constraints. Every sentence earns its place by providing essential usage guidance without redundancy, making it highly structured and concise for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, nested objects, no output schema, and no annotations), the description does well by covering status-dependent editability and key constraints. However, it lacks details on error conditions, response format, or side effects (e.g., whether updates affect running experiments immediately), which would be helpful for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds significant value beyond the schema by explaining which parameters are editable based on experiment status (e.g., slug only when draft/paused, confidenceThreshold only when running) and reinforcing the weight-sum rule for variants. This status-dependent semantics is not captured in the schema descriptions, elevating the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update an existing experiment') and resource ('experiment'), distinguishing it from siblings like pictify_create_experiment (creation), pictify_delete_experiment (deletion), and pictify_get_experiment (retrieval). It provides a verb+resource combination that is unambiguous in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly defines when to use this tool based on experiment status (draft/paused, running, completed), specifying which fields are editable in each state. It provides clear context for usage without needing to reference alternatives, as the status-based rules inherently guide when this tool is applicable versus when creation or deletion might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pictify_update_templateAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | The template UID to update | |
| name | No | New template name | |
| html | No | New HTML content. Mutually exclusive with 'fabricJSData'. | |
| fabricJSData | No | New FabricJS canvas JSON. Mutually exclusive with 'html'. | |
| width | No | New width in pixels (1-4000) | |
| height | No | New height in pixels (1-4000) | |
| variableDefinitions | No | Updated variable definitions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses partial update behavior, mutual exclusivity of html and fabricJSData, and that updating content may change available variables. With no annotations, these behavioral traits are well covered, though side effects on variable definitions when not explicitly updated could be clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct information: purpose, partial update, mutual exclusivity and side effect. No redundancy, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, no output schema, nested objects), the description covers key behaviors and constraints. However, it is unclear whether providing variableDefinitions replaces all definitions or merges, and no return value info is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). Description adds value by summarizing partial update semantics and mutual exclusivity, reinforcing schema info but not adding significant new detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool updates an existing template's content, dimensions, name, or variable definitions. It distinguishes from sibling create/delete tools and explicitly notes partial update behavior and mutual exclusivity of html and fabricJSData.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for modifying existing templates but does not explicitly contrast with alternatives like pictify_create_template. No 'when to use' or 'when not to use' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
31 tool updates
v1.0.0- First observed
pictify_batch_render - First observed
pictify_cancel_batch - First observed
pictify_capture_gif - First observed
pictify_complete_experiment - First observed
pictify_create_canvas_image - First observed
pictify_create_experiment - First observed
pictify_create_gif - First observed
pictify_create_image - First observed
pictify_create_template - First observed
pictify_delete_experiment - First observed
pictify_delete_template - First observed
pictify_get_batch_results - First observed
pictify_get_experiment - First observed
pictify_get_experiment_quota - First observed
pictify_get_gif - First observed
pictify_get_image - First observed
pictify_get_template - First observed
pictify_get_template_variables - First observed
pictify_list_experiments - First observed
pictify_list_gifs - First observed
pictify_list_images - First observed
pictify_list_pdf_presets - First observed
pictify_list_templates - First observed
pictify_pause_experiment - First observed
pictify_render_multi_page_pdf - First observed
pictify_render_pdf - First observed
pictify_render_template - First observed
pictify_start_experiment - First observed
pictify_track_experiment_events - First observed
pictify_update_experiment - First observed
pictify_update_template
TDQS
Scored across 31 tools
Most tools have distinct purposes, but there is some overlap that could cause confusion. For example, pictify_create_gif and pictify_capture_gif both generate GIFs but from different sources (HTML vs. live URL), and pictify_render_template vs. pictify_create_canvas_image both render images but from saved templates vs. direct canvas JSON. The descriptions help clarify, but an agent might misselect without careful reading.
All tool names follow a consistent snake_case pattern with a 'pictify_' prefix and a clear verb_noun structure (e.g., pictify_create_image, pictify_list_templates). This predictability makes it easy for an agent to understand the action and resource involved across the entire set.
With 31 tools, the count feels heavy for a single server, potentially overwhelming for an agent. While the domain (image/GIF/PDF generation, templates, experiments) is broad, the tool set could be more streamlined, as some tools are highly specific (e.g., separate tools for getting quotas or listing PDF presets).
The tool set provides comprehensive coverage for the Pictify domain, including full CRUD for templates and experiments, rendering options (images, GIFs, PDFs, batches), and analytics tracking. There are no obvious gaps; workflows are well-supported with tools for creation, monitoring, updating, and deletion across all major features.
Maintenance
Related MCP Connectors
Generate images and PDFs from HTML/CSS, live websites, and reusable templates.
Screenshot, PDF and HTML-to-image rendering API so Claude and Cursor can see any web page.
Screenshot, PDF and HTML-to-image rendering API so Claude and Cursor can see any web page.
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to capture webpage screenshots, generate PDFs from URLs or HTML, and extract rich metadata like Open Graph and JSON-LD data. It provides tools for web-to-image/PDF conversion and structured data extraction through the Junipr API.6 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture website screenshots, automate browser interactions, and manage recurring screenshot configurations across 150+ global locations. It also supports AI-powered domain research and visual change monitoring for any web page.16 npmMIT
- AlicenseAqualityCmaintenanceCapture screenshots, generate PDFs, and render HTML to images via AI agents. Supports batch capture, geo-targeting, async webhooks, and CSS/JS injection.1154 npm7MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to generate images from HTML/CSS, capture URL screenshots, and manage reusable templates through the RendShot API. Provides tools for rendering visual content programmatically within AI workflows.6 npm-