Skip to main content
Glama

photoshop_recipe_csv_to_cards

Convert CSV rows into personalized images by applying each row to a Photoshop template and exporting one image per row. Turn spreadsheets into name cards, badges, certificates, or banners.

Instructions

Data-driven graphics batch: convert a CSV file into Photoshop data sets, apply each row to the active template document and export one image per row. "Mail merge for images" — name cards, badges, certificates, personalized banners.

Users often say: csv to images, batch name cards, personalized banners, generate badges from spreadsheet, sertifika bastır.

CSV rules: first row = variable names matching the variables defined in the template PSD (Image > Variables > Define). A cell holding an absolute path to an image file (.png/.jpg/.webp/.tif/.psd) is treated as a pixel-replacement variable.

Use when: the user has a template PSD with variable-bound layers and a CSV of rows. Do NOT use when: the document has no variables defined — define them in Photoshop first (Image > Variables > Define).

Returns: { ok, summary, details: { rows, exported, output_paths, xml_path } }.

Preconditions: active document with variable-bound layers; readable CSV file. Side effects: writes a temp variables XML and one output file per row into output_dir.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (default JPEG)JPEG
csv_pathYesAbsolute path to the CSV file (first row = variable names)
output_dirYesDirectory for generated files (created if missing)
document_idNoOptional Photoshop document id from photoshop_get_state / photoshop_list_documents. When set, the tool activates that document before running so a UI tab switch cannot retarget the edit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description clearly discloses side effects: 'writes a temp variables XML and one output file per row into output_dir'. It also states preconditions and the fact that it writes files. It doesn't mention possible failure modes or rate limits, but the side-effect disclosure is strong. Not a contradiction; it's a write operation and that is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with headers ('CSV rules', 'Use when', 'Do NOT use when', 'Returns', 'Preconditions', 'Side effects'), making it highly scannable. It is a bit long but each section adds value. The front-loaded 'mail merge for images' analogy is helpful. Minor redundancy but overall well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description spells out the return object: '{ ok, summary, details: { rows, exported, output_paths, xml_path } }'. It also lists all preconditions and side effects. For a batch operation with 4 parameters, this is complete: an agent knows exactly what to expect and what is required to call it successfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage, so the baseline is 3. The description adds key semantic context beyond the schema: it explains that the CSV first row defines variable names and that image paths are treated as pixel replacements. The document_id's purpose is well explained in the schema itself, and the description doesn't need to add more. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (convert -> export), the resource (CSV to data sets/template), and the specific action: 'apply each row to the active template document and export one image per row'. It also includes common user phrasings, which strongly helps an agent map intent to this tool and distinguishes it from generic export or dataset tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use ('when the user has a template PSD with variable-bound layers and a CSV of rows') and when not to use ('Do NOT use when: the document has no variables defined — define them in Photoshop first'). It also provides prerequisites and clarifies the CSV first-row rule, leaving no ambiguity about the required setup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools