Skip to main content
Glama

create_object

Create any Chorono object kind—shapes, text, groups, media, splines, paths, repeaters, or particle emitters—by supplying a kind and optional layer patch; discover properties with get_capabilities.

Instructions

Create ANY registered object kind, including shapes, text, group, media, spline, path, repeater or particle emitter. patch is a Partial. Discover kinds and properties with get_capabilities.

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": {
      "kind": "<kind>"
    },
    "name": "create_object"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindYes
patchNo
requestIdNo
sessionIdNo
expectedRevisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already establish that this is a non-read-only, closed-world mutation, so the safety profile is covered. The description adds the important merge semantics that patch is a Partial<Layer>, i.e. a partial update of the new object rather than a full definition. However, it says nothing about how expectedRevision conflicts are handled or what requestId does on retry, which are the real behavioral risks for a mutation tool with these parameters.

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?

Two short sentences, front-loaded with the core action and the enumerated kinds, followed by the type note and the discovery pointer. Nothing is padded, though the all-caps "ANY" does no informational work.

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

Completeness2/5

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

For a five-parameter mutation with a nested object payload, no output schema, and zero schema descriptions, the definition is thin. It never states what is returned (an id? the created object?), how revision conflicts surface, or whether the call is idempotent under requestId, all of which an agent needs before invoking a create operation in a concurrent editing session.

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

Parameters2/5

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

Schema description coverage is 0% across five parameters, so the description carries the full burden and largely fails it. It explains only patch, and even then only its type (Partial<Layer>), leaving kind, requestId, sessionId, and expectedRevision entirely undefined in both the schema and the description; an agent cannot tell from this text that expectedRevision is an optimistic-concurrency guard or that requestId provides idempotency.

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

Purpose4/5

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

The description names a specific verb ("Create") and a specific resource class ("ANY registered object kind"), then enumerates concrete kinds: shapes, text, group, media, spline, path, repeater, particle emitter. It implicitly distinguishes itself from narrow siblings like add_layer, add_path, add_spline, and add_particle_emitter by claiming to cover any registered kind, but it never names those siblings directly.

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

Usage Guidelines3/5

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

It gives one genuinely useful routing instruction: use get_capabilities to discover valid kinds and properties before calling. Beyond that there is no guidance on when to prefer this generic creator over the many specialized add_* siblings, and no mention of preconditions such as an active session or scene.

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