Skip to main content
Glama

Server Details

Fill templates from product data and render banners, ads and listing images in bulk.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

Score is being calculated.

Available Tools

18 tools
cancel_batchCancel a batch's unfinished jobs
DestructiveIdempotent
Inspect

Stops a batch: every job still pending or processing becomes cancelled. A cancelled job is final and is not charged; a render already under way may finish, but its result is discarded. Jobs that already rendered keep their output and their charge. Cancelled jobs cannot be resumed; to render them again, create_batch a new batch with those rows. get_batch shows the cancelled count, and repeating the call cancels nothing more. Needs batches:create on the connection and renders:create in the user's workspace role.

ParametersJSON Schema
NameRequiredDescriptionDefault
batchIdYesBatch ID returned by create_batch or list_batches

Output Schema

ParametersJSON Schema
NameRequiredDescription
cancelledYesJobs this call cancelled; 0 when they had all finished
stoppedMessagesYesQueued renders removed before they started
cancel_jobCancel one unfinished job
DestructiveIdempotent
Inspect

Stops one job that is pending or processing: it becomes cancelled, final and not charged; a render already under way may finish, but its result is discarded. A job that already finished is left as it is. Other jobs in its batch keep rendering; cancel_batch stops them all. Needs batches:create on the connection and renders:create in the user's workspace role.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID from get_batch_jobs

Output Schema

ParametersJSON Schema
NameRequiredDescription
cancelledYesJobs this call cancelled; 0 when they had all finished
stoppedMessagesYesQueued renders removed before they started
create_batchCreate a draft batchInspect

Saves a new draft batch in the template's workspace with one pending job per row, an image, or a video when outputFormat is mp4, gif, webm or mov; nothing renders and no credits are spent until run_batch. The result's creditCost is the exact number of credits run_batch will spend on these jobs. Every call creates a separate batch, so repeating a call duplicates it; changing an existing draft is update_batch's job. Rows are checked as in validate_batch, and one invalid row rejects the whole request with nothing saved. An animated template renders each image at one moment of its motion: stillTime, else the page's own still time, else the last frame; a video renders all of it and takes no stillTime. Needs templates:read and batches:create.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBatch name shown in Kalpana and used in output filenames, 1 to 200 characters
rowsYes1 to 500 rows. Each keys a layer by its name (case aside) or id, the key get_template_inputs gives, to a plain value: text as a string, an image as an asset id or file name, or { asset, fit, zoom, panX, panY } and { text, visible } when framing or visibility changes. rowExample in get_template_inputs is a ready row. With columns, a row is instead an array of cells in column order, which keeps large batches small. null leaves a layer at the template's own value. Layers left out keep the template's value, or the one in defaults.
pageIdNoOne page of the template (the designer connection's page_id). A template's pages are separate designs, each with its own inputs; the first page when omitted.
columnsNoFor array rows: the layer key of each cell, in order, like a spreadsheet header
defaultsNoValues every row gets unless it gives its own, such as a logo or call to action shared by all rows
stillTimeNoAnimated templates only: the second of the motion that each image shows. Omit it to use the page's own still time (get_template_inputs stillTime), else the last frame. If the page has no still time, ask the user, because an outro or a loop can make the last frame a bad image.
templateIdYesTemplate ID returned by search_templates
outputFormatNoOutput format. png, jpeg and webp render one image per row and pdf one vector page; mp4 and gif render each row's whole motion as a video, and webm (VP9) and mov (ProRes 4444) as a transparent video for overlaying on other footage. Video needs an animated template (get_template_inputs isAnimated) and costs more credits per rowpng

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesbatchId for run_batch and the other batch tools
rowCountYesJobs created, one per row
creditCostYesActual credit cost to run every job in this batch.
workspaceIdYes
get_batchCheck batch progress
Read-onlyIdempotent
Inspect

Returns one batch's overall status with its total, completed, failed, and processing job counts. Rendering after run_batch happens in the background, so repeated calls track it until processing reaches 0. list_batches gives the same counts for many batches at once; per-job values and render errors are in get_batch_jobs, and download URLs in get_batch_outputs. Needs batches:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
batchIdYesBatch ID returned by create_batch or list_batches

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
totalYesJobs in the batch
failedYesJobs that failed
statusYesprocessing while any job renders; pending while jobs wait for run_batch; once every job has finished: completed when all rendered, partial when some rendered and others failed or were cancelled, failed when none rendered and at least one failed, cancelled when none rendered, none failed and at least one was cancelled. The counts carry the detail
cancelledNoJobs cancelled
completedYesJobs rendered
createdAtYesCreation time, ISO 8601
processingYesJobs rendering now
workspaceIdYes
get_batch_jobsList jobs in a batch
Read-onlyIdempotent
Inspect

Lists a batch's jobs in row order, one page at a time, with each job's ID, template, current row (keyed and shaped as rows are written), status, render error, and whether it can still be edited. These job IDs and values are the input for update_batch and update_job, and error explains why a render failed. Download URLs are not included (get_batch_outputs has them), and get_batch is lighter for overall progress. Needs batches:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page (default 10); values above 20 are capped at 20
batchIdYesBatch ID returned by create_batch or list_batches

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
limitYesPage size actually applied
totalYesCount of all matches across every page
batchStatusYesdraft until run_batch first succeeds; update_batch adds and removes jobs only in drafts
get_batch_outputsGet rendered images
Read-onlyIdempotent
Inspect

Returns the download URLs of a batch's rendered images, one page of jobs at a time, with each job's status and format; downloadUrl is null until that job has rendered. URLs are temporary, so a later call returns fresh ones. Row values and render errors are not included (get_batch_jobs has them), and get_batch is lighter for checking progress. inspect_image can view a downloadUrl. Needs batches:read, renders:read, and creatives:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page (default 10); values above 20 are capped at 20
batchIdYesBatch ID returned by create_batch or list_batches

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
limitYesPage size actually applied
get_template_inputsDescribe a template's fillable inputs
Read-onlyIdempotent
Inspect

Returns the inputs of one template that batch rows can fill: each input's id, label, text or image type, whether it is required, its default (a text input's value, an image input's asset and preview), image slot size and fit, the key rows use for it (its name, or its id when two layers share the name), a text input's styles (s1, s2, ...) when it has several, and a valueExample; rowExample is a whole ready row. Those keys and values are what validate_batch, create_batch, update_batch, and update_job accept. It needs a template ID; finding templates is search_templates' job. Inputs the author turned off or placed on hidden layers are left out unless requested, and omittedInputs names them: their template text still renders, so check them (dates, terms, links) when the copy changes theme; a row can fill them by key. The template's internal layout is not returned. An animated template also gives its duration and its stillTime, the second its images show unless create_batch gives another. Needs templates:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdNoOne page of the template (the designer connection's page_id). A template's pages are separate designs, each with its own inputs; the first page when omitted.
templateIdYesTemplate ID returned by search_templates
includeHiddenNoAlso return inputs on layers hidden in the template
includeDisabledNoAlso return inputs the template author turned off

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
pagesNoThe template's pages; each is a separate design with its own inputs
widthYesWidth in pixels; null if unknown
heightYesHeight in pixels; null if unknown
inputsYes
pageIdNoThe page these inputs are from (pass it as pageId to the batch tools)
openUrlYesLink that opens the template in the Kalpana app
durationNoAn animated template's timeline length in seconds
stillTimeNoThe second the page's still image shows, set by its designer. Images use it unless create_batch gives stillTime; without either, they show the last frame
isAnimatedNoTrue when the template moves; each image shows one moment of the motion
rowExampleNoA row filling every input, keyed and shaped as rows are: copy and edit it
descriptionYes
omittedInputsNoInputs left out of `inputs`. Their template text renders as designed unless a row fills them by key; check them when the copy changes theme (dates, terms, links)
inspect_imageView an image
Read-onlyIdempotent
Inspect

Fetches one PNG, JPEG, or WebP image from a Kalpana URL (a template or asset previewUrl, or a downloadUrl from get_batch_outputs) and returns it as image content with its content type and byte size. Other hosts, other file types, and files over 5 MB are rejected, and a fetch gives up after 15 seconds. It shows one image per call; it does not build contact sheets or render templates, whose look comes from their previewUrl.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYespreviewUrl or downloadUrl returned by another Kalpana tool

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeBytesYes
contentTypeYesMIME type of the returned image
list_asset_collectionsList image collections
Read-onlyIdempotent
Inspect

Lists the image collections (named groups of images) in the workspace, most recently updated first, with each collection's ID, description, and image count. All matches come back in one response, without pages. A collection ID only narrows search_assets to that collection; finding images by filename, or across the whole workspace, is search_assets alone. Needs assets:read in the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoText matched against collection names; omit to list all collections

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
list_batchesList batches
Read-onlyIdempotent
Inspect

Lists the workspace's batches, newest first, one page at a time, with each batch's ID, name, status, and total, completed, failed, and processing job counts; total counts every match, so it also answers how many batches exist. Filters narrow by batch name or template. For one known batch ID, get_batch returns the same counts, and job details are in get_batch_jobs. Needs batches:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page (default 10); values above 20 are capped at 20
searchNoText matched against batch names
templateIdNoOnly batches with jobs for this template

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
limitYesPage size actually applied
totalYesCount of all matches across every page
list_workspacesThe connected workspace
Read-onlyIdempotent
Inspect

Returns the one Kalpana workspace this connection covers, chosen when the user connected: its ID, name, slug, the user's role, and what that role allows here, both as permission codes and in plain words (for example whether it can render batches). Every other tool works in this workspace, so none takes a workspace ID. A missing permission explains a 403 from another tool, such as run_batch without renders:create. Working in another workspace needs a reconnect that chooses it. Needs workspaces:read.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
run_batchRender a batch (spends credits)
DestructiveIdempotent
Inspect

Queues every pending job in a batch for rendering and returns once they are queued; images render in the background, tracked by get_batch and collected with get_batch_outputs. It spends the workspace organization's credits equal to the pending jobs' cost, which is create_batch's creditCost unless jobs were added or removed since. When the balance is too low nothing is queued, the error says not enough credits, and the batch stays a draft. A successful run publishes a draft, which ends add and remove edits through update_batch; archived batches return an error. Only pending jobs are queued, so a repeat call adds no work and no cost, and jobs reset to pending by update_batch or update_job render on the next call. If the workspace has webhook endpoints, the run's results are sent to them unless webhooks is false. Needs batches:create on the connection and renders:create in the user's workspace role.

ParametersJSON Schema
NameRequiredDescriptionDefault
batchIdYesBatch ID returned by create_batch or list_batches
webhooksNoWhether this run sends its results (batch.completed, job.completed) to the workspace's webhook endpoints. Omit to keep the batch's setting, which is on; pass false only when the user asks not to notify their endpoints

Output Schema

ParametersJSON Schema
NameRequiredDescription
failedYesJobs that could not be queued
messageYes
dispatchedYesPending jobs queued by this call; 0 on a repeat call
search_assetsFind image assets
Read-onlyIdempotent
Inspect

Finds images to put into template image inputs: the ready PNG, JPEG, and WebP files under 5 MB in the workspace, one page at a time, with a previewUrl each. With no filters it lists the most recently updated images; collectionId limits results to one collection, query matches filenames, and both combine. An asset's id is the asset_id of an image input in batch rows. Collection IDs come from list_asset_collections; inspect_image shows a previewUrl; the user's own files are added with upload_images. Needs assets:read in the workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page (default 8); values above 12 are capped at 12
queryNoFilename text to search for, 2 to 100 characters; omit to browse
collectionIdNoCollection ID from list_asset_collections; limits results to that collection

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
limitYesPage size actually applied
totalYesCount of all matches across every page
search_templatesFind templates
Read-onlyIdempotent
Inspect

Finds the workspace's templates to fill with data, one page at a time, with each template's ID, workspace, pixel size, input count, previewUrl, and a link that opens it in Kalpana. Without query it lists recently updated templates; query matches an exact template ID, name, description, or campaign topic, and the filters narrow by preview availability or exact size. Animated templates are included and marked isAnimated: their images show one moment of the motion. A template's fillable inputs are not included; get_template_inputs returns them for one ID, and inspect_image shows a previewUrl. Needs templates:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page (default 10); values above 20 are capped at 20
queryNoExact template UUID or name, description, or campaign topic; at least 3 characters. Omit to browse.
widthNoExact template width in pixels
heightNoExact template height in pixels
hasPreviewNoSet true to exclude templates without a preview URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
limitYesPage size actually applied
totalYesCount of all matches across every page
update_batchEdit a draft batch
Destructive
Inspect

Renames a batch and, while it is a draft (until run_batch first succeeds), changes, adds, or removes its editable jobs (pending, or failed with no output) in one request. update merges the given fields into each listed job's values and resets it to pending; unlisted jobs are untouched. remove deletes those jobs permanently, and each add creates new jobs, so repeating a request with add duplicates them. Processing and rendered jobs cannot change. Nothing renders until run_batch, and adding or removing jobs changes what it costs. One pending job in a batch that is no longer a draft is update_job's case. Needs templates:read and batches:create.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoNew jobs to append, up to 500
nameNoNew batch name, 1 to 200 characters; omit to keep it
removeNoIDs of editable jobs to delete permanently
updateNoJobs to change, up to 500
batchIdYesBatch ID returned by create_batch or list_batches

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYesJobs removed
updatedYesJobs changed
insertedYesJobs added
update_jobEdit one pending job
DestructiveIdempotent
Inspect

Changes one pending job that has no output yet, in any batch, including batches that are no longer drafts. The given fields replace those fields' previous values and other fields stay as they are, so repeating the same request gives the same result. Failed, processing, and rendered jobs are rejected; a failed job in a draft can still change through update_batch. Nothing renders until run_batch. Several jobs at once, or adding and removing jobs, is update_batch's case. Needs templates:read and batches:create.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowYesOnly the layers to change, keyed and valued as create_batch rows are
jobIdYesPending job ID from get_batch_jobs
outputFormatNoNew output format; omit to keep the job's format. mp4, gif, webm or mov makes it a video, which needs an animated template and costs more credits.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
statusYespending waits for run_batch, processing is rendering, success has rendered, failed has a render error, cancelled was stopped by cancel_batch or cancel_job (final, not charged)
batchIdYes
creditCostYesCredits run_batch spends on this job
outputKindYesimage for still renders (png, jpeg, webp, pdf); video for mp4, gif, webm or mov
outputFormatYesFile format the job renders to
upload_imagesAdd the user's images
Idempotent
Inspect

Brings the user's own images (PNG, JPEG, or WebP, up to 5 MB each) into the workspace, optionally into a collection, which is made when no collection has that name. Without files it returns a link to the workspace's Images page (the collection's page with collection) for the user to drop the images into; after they say they are done, search_assets finds them. An agent that has the files (a shell, files on disk) passes files with each one's SHA-256 hash, content type, and size, PUTs each file's bytes to its uploadUrl with that Content-Type header, then calls again with done (each hash and file name) to record them. The recorded images come back with their id, the asset_id of an image input in batch rows. Image data is not accepted inline as base64. Needs assets:create.

ParametersJSON Schema
NameRequiredDescriptionDefault
doneNoFiles you uploaded, to record them
filesNoFiles you will upload yourself
collectionNoCollection to put the images in, by name

Output Schema

ParametersJSON Schema
NameRequiredDescription
linkNoThe workspace's Images page for the user
stepYeslink: give the user the link; uploads: PUT each file, then call with done; done: the images are recorded
failedNo
imagesNo
uploadsNo
collectionNo
validate_batchCheck rows before creating a batch
Read-onlyIdempotent
Inspect

Checks batch rows against a template and reports every problem by row index and field, without saving anything or spending credits. It runs the same row checks as create_batch, so rows that pass here are accepted there, while create_batch saves nothing if any row fails. Each row comes back as the server understood it (layer keys, text, and each image resolved to its asset id and file name), so a misread value shows before any credits are spent. A layer name two layers share is refused with their ids: fill each by id and tell the user, who can rename one. It does not measure text, so copy longer than the template's sample can still overflow its box. Needs templates:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes1 to 500 rows. Each keys a layer by its name (case aside) or id, the key get_template_inputs gives, to a plain value: text as a string, an image as an asset id or file name, or { asset, fit, zoom, panX, panY } and { text, visible } when framing or visibility changes. rowExample in get_template_inputs is a ready row. With columns, a row is instead an array of cells in column order, which keeps large batches small. null leaves a layer at the template's own value. Layers left out keep the template's value, or the one in defaults.
pageIdNoOne page of the template (the designer connection's page_id). A template's pages are separate designs, each with its own inputs; the first page when omitted.
columnsNoFor array rows: the layer key of each cell, in order, like a spreadsheet header
defaultsNoValues every row gets unless it gives its own, such as a logo or call to action shared by all rows
templateIdYesTemplate ID returned by search_templates

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNoEach row as the server understood it, keyed by layer key, images as { asset, name }
validYesTrue when every row passes
issuesYesEvery problem found; empty when valid
rowCountYes
validRowsYes
invalidRowsYes
sharedNamesNoLayer names more than one layer has; rows key those layers by id. Mention them to the user.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updates
    • First observedcancel_batch
    • First observedcancel_job
    • First observedcreate_batch
    • First observedget_batch
    • First observedget_batch_jobs
    • First observedget_batch_outputs
    • First observedget_template_inputs
    • First observedinspect_image
    • First observedlist_asset_collections
    • First observedlist_batches
    • First observedlist_workspaces
    • First observedrun_batch
    • First observedsearch_assets
    • First observedsearch_templates
    • First observedupdate_batch
    • First observedupdate_job
    • First observedupload_images
    • First observedvalidate_batch

Publisher details

Operator
Shreekaram Technologies · Publisher source
Vendor relationship
First-party
Trust center
Not applicable
Restrictions
Free Kalpana account at app.kalpana.one. Rendering batches spends render credits. Each connection covers one workspace chosen at sign-in, within the user’s role there. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Product mockup rendering API for e-commerce and print-on-demand. Upload Photoshop PSD templates, render photorealistic mockups by placing your designs onto smart object layers. 9 tools including AI-powered render (no PSD needed), template management, and account info. Supports remote HTTP (OAuth) and local stdio (npx) transports.
    169 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Generates logos, social media posts, app-store screenshots, comic panels, and visual-novel assets from natural-language prompts using 119 templates.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources