Skip to main content
Glama

Skill library

skills
Destructive

List, save, delete, and run reusable Luau programs by name, passing arguments to them. Get source and parameters to inspect before executing.

Instructions

Luau program library on disk (/skills/.luau with a --[[ studio-live skill … ]] header holding name, description and params). Save programs you will run again; run them with args (ARGS), same environment and result shape as run. action: list → [{name, description, params, builtin}]; get {name} → {source, …}; save {name, source | source_file (absolute path), description, params}; delete {name}; run {name, args, dm, undo_label, dry_run, geometry_policy, timeout_ms, response_format, wait_ms, session} → the run result (geometry checked exactly as for run). Builtins ship read-only (builtin: true): settle_physics, device_sim, profile_scripts, bulk_attributes, insert_asset, lighting_preset, list_scripts, remote_map — get one to read its params. Saving a skill with a builtin name overrides it; deleting the override restores it; builtins themselves cannot be deleted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dmNoTarget DataModel: 'edit' (default) | 'server' | 'client' (lowest-numbered) | 'client:N'
argsNoAvailable to the program as ARGS
nameNoSkill name: letters, digits, _ or - (max 64)
actionYes
paramsNosave: JSON describing the expected ARGS
sourceNosave: Luau program (same environment as run)
dry_runNorun: edit DM only: run, then roll back
sessionNoStudio session GUID or unique prefix (default: the active hub; required for writes when several Studios are connected)
wait_msNoWait this long for completion before returning a {job_id,status:"running"} handle (default 25000)
timeout_msNoExecutor deadline in ms (default 30000)
undo_labelNorun: ChangeHistory waypoint name (default "skill: <name>")
descriptionNosave: one-line description
source_fileNosave: instead of source: absolute path of a file holding the Luau (read by the bridge; UTF-8, BOM ok, ≤ 4 MB). No shell/JSON escaping touches it
geometry_policyNowarn (default; env STUDIO_LIVE_GEOMETRY_POLICY): overlapping/nested parts → result.geometry + warnings; reject: such a run is rolled back (error geometry_violation); off: no check. Play DMs check only when set
response_formatNorun: as for the run tool

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses important behavioral traits beyond the annotations: builtins are read-only, saving over a builtin overrides it, deleting the override restores it, and builtins themselves cannot be deleted. It also notes that run geometry is checked exactly as for `run`. The annotations already mark the tool destructive, and the description aligns with and expands on that.

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 dense but well-organized: it opens with a one-line definition and purpose, then compactly lists action signatures, then covers builtin behavior. Minor redundancy exists in repeating the run-result equivalence, but overall every sentence earns its place by conveying action-specific or behavioral information not present in 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?

Given the tool's complexity (15 parameters, five actions, no output schema), the description covers the main action modes, return shapes, builtin handling, override semantics, and geometry behavior. It leans on the sibling `run` for the full run result shape, which is acceptable given the context signals, but it is not entirely self-contained.

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?

With 93% schema description coverage, the schema does most parameter documentation work. The description adds action-specific parameter grouping (e.g., save uses source | source_file, run uses dm/undo_label/dry_run/etc.) and clarifies the relationship between source and source_file. This goes beyond the flat schema definitions and helps an agent assemble valid calls per action.

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 identifies the resource as a Luau program library on disk and enumerates five distinct actions (list, get, save, delete, run) with their signatures and result shapes. It also contrasts with the sibling `run` by noting skills run in the same environment and result shape as `run`, making the tool's purpose and scope unmistakable.

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?

The description gives practical guidance: 'Save programs you will run again; run them with args' and explicitly states that execution matches the `run` tool. It also explains builtin read-only behavior and override/restore semantics. It does not explicitly say when to prefer this over direct `run`, but the context strongly implies the distinction.

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