Skip to main content
Glama

Describe a template's fillable inputs

get_template_inputs
Read-onlyIdempotent

Returns the inputs of one template page that batch rows can fill; pageId picks a page other than the first, since each page has its own inputs. For each input: its 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. These keys and values are what validate_batch, create_batch, update_batch and update_job accept. Inputs the author turned off or put on hidden layers are left out unless includeDisabled or includeHidden asks for them; omittedInputs names them. Their template text still renders, so check them (dates, terms, links) when the copy changes theme; a row can still fill them by key. An animated template also gives its duration and its stillTime. The layout is not returned: to see the template use inspect_image on its previewUrl, and to find templates search_templates. Needs templates:read.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "templateId": "<templateId>"
    },
    "name": "get_template_inputs"
  }
}

Input Schema

NameRequiredDescriptionDefault
flowIdNoOne video of the template (from flows) instead of a page: its inputs, one per layer name across its pages
pageIdNoOne page of the template (the designer connection's page_id), for its inputs. A template's pages are separate designs, each with its own inputs; the first page when omitted.
templateIdYesThe whole template, from search_templates. Not a page or flow id.
includeHiddenNoAlso return inputs on layers hidden in the template
includeDisabledNoAlso return inputs the template author turned off

Output Schema

NameRequiredDescriptionDefault
idYes
nameYes
flowsNoThe template's videos, each joining its own pages with transitions. Pass an id as flowId here for its inputs, and as flow to the batch tools or a job to render it
pagesNoThe template's pages; each is a separate design with its own inputs
widthYesWidth in pixels; null if unknown
flowIdNoThe video these inputs are from, when flowId was given
heightYesHeight in pixels; null if unknown
inputsYes
pageIdNoThe page these inputs are from (pass it in pages to the batch tools, or as a job's page)
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
rowExampleNoModifications filling every input: copy and edit them as a row's or a job's modifications
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)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • removedInput schema / properties / flowId / format
      Removed value: -"uuid"
    • addedInput schema / properties / flowId / minLength
      Added value: +1
    • removedInput schema / properties / flowId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • removedInput schema / properties / pageId / format
      Removed value: -"uuid"
    • addedInput schema / properties / pageId / minLength
      Added value: +1
    • removedInput schema / properties / pageId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • removedInput schema / properties / templateId / format
      Removed value: -"uuid"
    • addedInput schema / properties / templateId / minLength
      Added value: +1
    • removedInput schema / properties / templateId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • changedOutput schema / properties / flows / description
      Previous value: -"The template's videos, each joining its own pages with transitions. Pass an id as flowId here for its inputs, and in flowIds to the batch tools to render it"New value: +"The template's videos, each joining its own pages with transitions. Pass an id as flowId here for its inputs, and as flow to the batch tools or a job to render it"
    • removedOutput schema / properties / id / format
      Removed value: -"uuid"
    • removedOutput schema / properties / id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • changedOutput schema / properties / inputs / items / properties / key / description
      Previous value: -"What batch rows key this input by: the layer's name, or its id when another layer has the same name. A video's inputs are keyed by page, as page2@title; a plain title fills every page without its own."New value: +"What modifications key this input by: the layer's name, or its id when another layer has the same name. A video's inputs are keyed by page, as <pageId>@title; a plain title fills every page without its own."
    • changedOutput schema / properties / pageId / description
      Previous value: -"The page these inputs are from (pass it in pageIds to the batch tools)"New value: +"The page these inputs are from (pass it in pages to the batch tools, or as a job's page)"
    • changedOutput schema / properties / rowExample / description
      Previous value: -"A row filling every input, keyed and shaped as rows are: copy and edit it"New value: +"Modifications filling every input: copy and edit them as a row's or a job's modifications"
  2. Changed1 schema field changed
    • changedOutput schema / properties / inputs / items / properties / key / description
      Previous value: -"What batch rows key this input by: the layer's name, or its id when another layer has the same name"New value: +"What batch rows key this input by: the layer's name, or its id when another layer has the same name. A video's inputs are keyed by page, as page2@title; a plain title fills every page without its own."
  3. Changed6 schema fields changed
    • addedInput schema / properties / flowId
      Added value: +{
      +  "description": "One video of the template (from flows) instead of a page: its inputs, one per layer name across its pages",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +  "type": "string"
      +}
    • changedInput schema / properties / pageId / description
      Previous value: -"One 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."New value: +"One page of the template (the designer connection's page_id), for its inputs. A template's pages are separate designs, each with its own inputs; the first page when omitted."
    • changedInput schema / properties / templateId / description
      Previous value: -"Template ID returned by search_templates"New value: +"The whole template, from search_templates. Not a page or flow id."
    • addedOutput schema / properties / flowId
      Added value: +{
      +  "description": "The video these inputs are from, when flowId was given",
      +  "type": "string"
      +}
    • addedOutput schema / properties / flows
      Added value: +{
      +  "description": "The template's videos, each joining its own pages with transitions. Pass an id as flowId here for its inputs, and in flowIds to the batch tools to render it",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "duration": {
      +        "description": "Seconds",
      +        "type": "number"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "pageIds": {
      +        "description": "The pages it visits, in order",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "name",
      +      "description",
      +      "duration",
      +      "pageIds"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / pageId / description
      Previous value: -"The page these inputs are from (pass it as pageId to the batch tools)"New value: +"The page these inputs are from (pass it in pageIds to the batch tools)"
  4. Changed8 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / pageId / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedInput schema / properties / templateId / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedOutput schema / properties / id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • addedOutput schema / properties / inputs / items / properties / dimensions / properties / height / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / inputs / items / properties / dimensions / properties / width / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / inputs / items / properties / styles / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / rowExample / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description layers on substantive context: disabled and hidden-layer inputs are excluded unless includeDisabled/includeHidden is set, omittedInputs names the exclusions, those omitted inputs still render and can still be filled by key, and animated templates additionally report duration and stillTime. It also discloses the templates:read scope requirement, which annotations do not cover.

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?

Front-loaded with the core answer and organized as a walk through the returned shape, exclusions, then related tools. It is dense but not padded, though the aside about checking dates, terms and links when copy changes theme is advisory rather than definitional and could be trimmed.

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?

For a read tool with a full input schema, output schema and annotation set, the description covers everything an agent needs: scope, exclusion flags, key semantics, downstream consumers, and pointers to sibling tools for the visual layout it intentionally omits.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: pageId selects a page other than the first, the per-input key is the layer name or the id when two layers collide, text styles s1/s2 appear only when several exist, and the default carries different payloads for text versus image inputs. It does not mention flowId, leaving that parameter's scope entirely to the schema.

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?

Opens with a specific verb and resource: 'Returns the inputs of one template page that batch rows can fill.' It immediately distinguishes template-level from page-level and flow-level input retrieval, so an agent knows exactly which scope this call resolves.

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?

Names the sibling tools that answer adjacent questions (search_templates to find templates, inspect_image on previewUrl to see layout) and states the layout is deliberately not returned. It also tells the agent that the returned keys/values are exactly what validate_batch, create_batch, update_batch and update_job accept, which routes work into the right downstream tools.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources