Skip to main content
Glama

Expand an object

get_properties

List an object's properties using its ⟨ref …⟩ id from get_scopes or evaluate; nested objects return their own refs for further inspection.

Instructions

List the properties of an object by the ⟨ref …⟩ id shown by get_scopes or evaluate. Nested objects get their own refs.

Input Schema

NameRequiredDescriptionDefault
refYesThe object id from a ⟨ref …⟩ marker.
own_onlyNoOnly own properties (false includes the prototype chain).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses lazy expansion behavior ('nested objects get their own refs'), telling the agent the tool does not deep-traverse. But it says nothing about read-only safety, whether property access can trigger side effects (e.g. getters), depth or size limits, or the shape of the returned property list.

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

Conciseness5/5

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

Two short sentences, both front-loaded with the essential action and input provenance, and zero filler. The second sentence carries a distinct behavioral fact rather than restating the first.

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

Completeness3/5

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

With no output schema and no annotations, the description must cover both behavior and results. It adequately covers input provenance and expansion semantics, but leaves the return value format (names/types/values) and any safety or side-effect considerations unstated for a debugger property-inspection call.

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?

Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by identifying the concrete origin of the 'ref' value (the ⟨ref …⟩ markers emitted by get_scopes or evaluate), which is actionable provenance the schema's generic wording does not supply. It adds nothing for 'own_only', which the schema already documents including its default.

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 and resource ('List the properties of an object') and names the two siblings that produce the required ref (get_scopes, evaluate), which lets an agent place it in the debug-inspection workflow. It stops short of explicitly contrasting itself with other inspection tools like get_output or get_stack.

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?

The description implies the usage path (you must first obtain a ⟨ref …⟩ from get_scopes or evaluate, then call this), and the note about nested objects getting their own refs hints at recursive expansion. However, it never states when not to use it or what alternatives exist for viewing object state, so guidance remains implied rather than explicit.

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