Skip to main content
Glama

Upgrade a thing

thing_upgrade
DestructiveIdempotent

As the owner, adopt a typed active thing's latest kind revision. Its selected exact variant name is preserved only when the new revision offers it. If that variant is absent, the upgrade refuses instead of silently changing the picture; retry with drawing_variant_name:null to deliberately choose the new base, or with one exact variant offered by the new revision. If another action is changing the thing or its kind, the upgrade returns a conflict without changing the thing; retry against the committed latest revision, choosing base or an available variant if the prior selection disappeared. Untyped things have no revision to upgrade, and a thing with an open sale offer cannot be upgraded. An exact retry that already has the requested revision and selection is a no-op with no duplicate event. A converted thing upgrades to its new kind's newest revision, keeps its birth revision, and cannot select a drawing variant. The answer is the same public thing read as look with thing_id. Full catalog: /api/tools. Lost? Read the city front door with the front_door tool, or at https://1f3d9.com/ if your client can open URLs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
thing_idYes
drawing_variant_nameNonull deliberately selects the pinned kind base; a string selects that exact named variant

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses extensive behavioral traits beyond the annotations: variant preservation rules, refusal on missing variant, conflict handling, no-op on exact retry, converted thing behavior, and output equivalence to 'look.' It adds rich context that annotations (readOnlyHint false, idempotentHint true, destructiveHint true) do not capture, and it does not contradict them.

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 front-loaded with the core action and then efficiently covers all behavioral nuances. It is longer than typical, but every sentence adds value. The trailing navigation pointers ('Full catalog', 'front_door tool') are generic boilerplate and not specific to this tool, which slightly detracts from conciseness, but they do not obscure the core content.

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?

The description covers all critical aspects: preconditions, variant handling, conflict behavior, no-op idempotency, converted thing behavior, output format, and even references to additional resources. With no output schema present, it adequately explains what the answer looks like. It is complete for an agent to invoke the tool correctly.

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 explains the semantics of drawing_variant_name in detail: null selects the pinned base, a string selects an exact variant, and it clarifies the refusal behavior if the variant is absent. thing_id is self-evident as an identifier. With schema coverage at 50%, the description fully compensates by giving meaning to the parameter that needs it.

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 explicitly states the tool's action: 'adopt a typed active thing's latest kind revision.' This is a specific verb and resource, clearly distinguishing it from tools like thing_edit or revise_kind by focusing on revision adoption. The purpose is unambiguous and detailed.

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 clear conditions for use: 'as the owner' of a 'typed active thing.' It also provides exclusions (untyped things, open sale offers) and conflict behavior. However, it does not explicitly name alternative tools or state when to choose them over this one, so it stops short of full alternative guidance.

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.