Skip to main content
Glama

Edit a thing

thing_edit

As the owner, edit one active thing. Send thing_id plus at least one changed field. name is one safe line of 1 to 120 characters; body may be empty and is at most 65,536 UTF-8 bytes; open_to_use and shared_use_may_destroy are boolean, and only you may change either. Closing shared_use_may_destroy again stops a destroy a visitor already scheduled with wait. An untyped thing accepts the exact null/REFUSE/pixel drawing shapes stated by draw_self. A typed thing shows its pinned kind revision and cannot take arbitrary instance pixels: it accepts exact REFUSE with an owner-written drawing_description, or drawing:null to clear that refusal and return to the pinned kind source. drawing_variant_name deliberately selects null for the pinned kind base or one exact named variant offered by that pinned revision. The selection stays with the thing across transfer. Every real drawing or selection change appends immutable history; an exact no-op appends nothing. open_to_reach, open_to_convert, and wake_enabled are boolean and owner-only; a thing you receive arrives with all three false, a converted thing arrives with wake_enabled false, and a converted thing cannot select a drawing variant. The answer is the same public thing read as look with thing_id. state_clear true empties the thing's state box and records the clear. A thing with an open sale offer cannot be edited. Lost? Call front_door.

Input Schema

NameRequiredDescriptionDefault
bodyNosafe text no larger than 65,536 UTF-8 bytes
nameNo
drawingNo
thing_idYes
open_to_useNo
state_clearNotrue empties this thing's state box
wake_enabledNo
drawing_stateNo
open_to_reachNo
open_to_convertNo
drawing_descriptionNoHTTP/MCP runtime enforces safe public text and at most 280 UTF-8 bytes; HTTP is authoritative and MCP forwards its exact errors
drawing_variant_nameNonull deliberately selects the pinned kind base; a string selects that exact named variant
shared_use_may_destroyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / open_to_convert
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / open_to_reach
      Added value: +{
      +  "type": "boolean"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / state_clear
      Added value: +{
      +  "const": true,
      +  "description": "true empties this thing's state box"
      +}
    • addedInput schema / properties / wake_enabled
      Added value: +{
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / shared_use_may_destroy
      Added value: +{
      +  "type": "boolean"
      +}
  4. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true; the description goes well beyond them with real behavioral context: immutable history appended on real changes while exact no-ops append nothing, 'closing shared_use_may_destroy again stops a destroy a visitor already scheduled with wait', inherited defaults for received/converted things, and the open-sale-offer edit block. This is exactly the kind of side-effect and state-transition disclosure the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly with the core action and the required payload in the first sentence, and most clauses carry rule content rather than filler. However the body is a single dense paragraph of very long, hard-to-parse sentences, so structure hurts readability even if the raw content is justified by a complex 13-parameter conditional 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 mutation tool with no output schema and a heavily conditional allOf schema, the description covers the main states (untyped vs typed thing, converted thing, sale-offer block, history append rules) and substitutes for a return schema via the look equivalence. Errors for non-owner attempts and the exact permitted values for drawing_state are the remaining gaps.

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 schema description coverage at only 31% across 13 params, the description has to compensate, and it largely does: name length limits, body emptiness and 65,536-byte cap, the owner-only boolean trio, drawing_variant_name meaning null vs named variant, and state_clear behaviour. It adds genuine meaning beyond the schema, though a few semantics (e.g. drawing_state enum values, open_to_use versus shared_use_may_destroy interplay) remain only implicitly covered.

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?

States a specific verb+resource ('as the owner, edit one active thing') with scope constraints (owner-only, one active thing, at least one changed field). It even clarifies the return relationship ('the same public thing read as look with thing_id'). It does not, however, distinguish itself from adjacent edit tools such as place_edit, thing_upgrade, or revise_kind, so it stops short of 5.

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?

Usage is implied through preconditions rather than an explicit when/when-not statement: owner-only fields, 'only you may change either', and 'A thing with an open sale offer cannot be edited'. The 'Lost? Call front_door' pointer is a help route, not an alternative-tool route. No guidance on when to pick thing_edit over sibling edit/upgrade 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.