Skip to main content
Glama
RAEN-DT

PyNet Bridge

by RAEN-DT

viewer_get_properties

Read-only

Retrieve element properties (name, model, psets) from properties.json by pnt_ids, or page/filter a lightweight index by model or name search.

Instructions

Reads element properties (name, model, psets) from the loaded package's properties.json.

Pass one or more pnt_ids to get their full properties (including psets) directly.

Called with no pnt_ids, returns a paginated lightweight index (pnt_id, name, model) instead of every element — narrow it with model (exact model/discipline name, e.g. "Snowdon Towers Sample HVAC") and/or search (case-insensitive substring of the element name), and page through with limit/offset (default 200 per page, capped at 500). On a federated model the unfiltered index can have tens of thousands of entries — always pass model or search when you can, and use offset to page through the rest.

The data source is the .pnt's properties.json, NOT the viewer or IFC.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
modelNo
offsetNo
searchNo
pnt_idsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.5.6
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 200,
      +  "title": "Limit",
      +  "type": "integer"
      +}
    • addedInput schema / properties / model
      Added value: +{
      +  "default": null,
      +  "title": "Model",
      +  "type": "string"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
    • addedInput schema / properties / search
      Added value: +{
      +  "default": null,
      +  "title": "Search",
      +  "type": "string"
      +}
  2. Addedv1.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint, so the description carries most of the burden and fills it well: it discloses the return shape of each mode (full psets vs pnt_id/name/model index), the default page size (200) and hard cap (500), the scale risk on federated models (tens of thousands of entries), and the crucial provenance constraint that data comes from properties.json rather than the viewer or IFC.

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?

Content is front-loaded on the core read behavior, then mode-specific guidance, then the data-source caveat. It is four paragraphs and slightly longer than strictly necessary, but each paragraph adds distinct, non-redundant information, so no sentence is wasted.

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?

Covers both invocation modes, filtering, pagination, scale caveats, and the data source; an output schema exists so return values need not be explained. Nothing required to call this read-only tool correctly is missing.

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?

Schema description coverage is 0%, so the description must compensate and does: pnt_ids as full-property lookup keys, model as an exact model/discipline name with a concrete example, search as a case-insensitive substring of element name, and limit/offset semantics including the 200 default and 500 cap. Every parameter gains meaning beyond its bare title and type.

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 ('Reads element properties ... from properties.json') and clearly splits behavior into two modes (pnt_ids for full properties, no pnt_ids for a lightweight paginated index). It does not name any sibling tool, so the differentiation from tools like viewer_get_state or viewer_list_clashes is left implicit.

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

Usage Guidelines5/5

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

Gives explicit branch conditions: pass one or more pnt_ids for full properties, call with no pnt_ids for the index. It further instructs to narrow with model and/or search, page with limit/offset, and warns to 'always pass model or search when you can' on federated models. This is actionable when-to-use guidance with a concrete heuristic.

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