Skip to main content
Glama

Create walls, lights and other canvas elements

create-canvas-elements

Create up to 200 walls, lights, sounds, tiles, drawings, or regions on a Foundry VTT scene in one call. Validate all entries first; any invalid element aborts the entire batch.

Instructions

Create up to 200 elements of one type on a scene in one call, as Foundry data. Walls: c [x0, y0, x1, y1], door none, door or secret, doorState closed, open or locked, move none or normal, sight, light and sound none, limited, normal, proximity or distance, dir both, left or right. Lights: x, y, config { dim, bright, color, angle }. Sounds: x, y, radius, path. Tiles: x, y, width, height, texture { src }. Drawings: x, y, shape { type, width, height, points }. Regions: name, shapes, behaviors. One bad entry creates nothing. Needs the level "change" for scenes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoOnly check and report what would happen, including a refusal; change nothing
elementsYesThe elements, 1 to 200, each an object of Foundry fields
elementTypeYesType of all elements in this call
sceneIdentifierNoScene id or name; default the scene that is active for everyone

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv14.2609.4

TDQS

A4.4/5.0
Behavior4/5

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

The description attributes a key non-schema detail: 'One bad entry creates nothing' (atomicity), which prevents partial writes. It also adds a permission gate and the 200-element batch limit. Annotations only carry false hints, so this add value.

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 text is dense but organized as a list separated by semicolons, with the most useful batch/permission facts at the end. All content is functional and none is redundant with the schema.

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

Completeness4/5

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

For a complex multi-type batch-creation tool, this is enough: per-type structures, atomicity, permission requirement, and size cap. Lack of output details is minor because no output schema exists and the rule is not to duplicate output definitions; still missing are return-value or confirmation semantics.

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

Parameters5/5

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

The description substantially enriches the schema. For each elementType it gives precise field layouts (e.g., Wall: c [x0,y0,x1,y1], door state options, light/sound fields, tile texture src, drawing shape). This goes far beyond the schema's generic 'Foundry fields' placeholder.

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 states a specific verb and resource: create canvas elements, up to 200, on a scene, and lists the six element types. It clearly stands apart from sibling update-canvas-elements, delete-canvas-elements, and list-canvas-elements.

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

Usage Guidelines4/5

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

It gives batch size, one-type-per-call, and permission prerequisites ('Needs the level change for scenes'), plus an atomic failure mode. It does not explicitly spell out 'use update for existing elements' but the naming makes it obvious.

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