Skip to main content
Glama

nwd_list_objects

List elements (objects) in the translated Navisworks model with their objectid, name, externalId, and full property bag, optionally filtered by a case-insensitive keyword matched against name and Category.

When to use: when answering "how many VAV boxes are on Level 3?", "list every steel column with mark C-*", or any per-element question; when dumping a quick takeoff of a discipline before handing off to an estimator; when an agent needs externalIds to cross-reference with a Revit or ACC issue.

When NOT to use: not for clash detection (use nwd_get_clashes); not for camera/viewpoint data (use nwd_get_viewpoints); not for full-model exports — results are capped at 100 objects per call, so use the filter argument to narrow.

APS scopes required: viewables:read data:read.

Rate limits: APS default ~50 req/min; two Model Derivative calls per invocation (metadata guid + properties). Properties endpoint may 202 "isProcessing" on first call after translation — the worker retries once after 3s. For very large models the properties payload can be tens of MB; expect higher latency.

Errors: 401 token (retry); 403 scope (report); 404 URN not found; 409 N/A; 422 property index not yet built — returns object_count:0 (poll via nwd_export_report); 429 rate limit (backoff); 5xx APS upstream (retry once). If property collection is legitimately empty the tool returns success with object_count:0 and an empty objects array.

Side effects: none. Pure read. Idempotent. Logs usage to D1 usage_log. Response includes a note field when the unfiltered collection exceeds the 100-object cap.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filterNoOptional case-insensitive substring. Matches if present in the element's name OR its Category property. Use Revit category names ("Ducts", "Pipes", "Structural Columns", "Walls") or mark/type fragments ("VAV", "W12x", "L3-"). Omit to return the first 100 elements of the model in property-collection order.
model_idYesBase64url-encoded URN of the translated Navisworks model as returned by nwd_upload.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed4 schema fields changed
    • changedInput schema / properties / filter / description
      Previous value: -"Optional keyword to filter objects by name/category"New value: +"Optional case-insensitive substring. Matches if present in the element's name OR its Category property. Use Revit category names (\"Ducts\", \"Pipes\", \"Structural Columns\", \"Walls\") or mark/type fragments (\"VAV\", \"W12x\", \"L3-\"). Omit to return the first 100 elements of the model in property-collection order."
    • addedInput schema / properties / filter / examples
      Added value: +[
      +  "VAV",
      +  "Ducts",
      +  "Structural Columns",
      +  "L3-"
      +]
    • changedInput schema / properties / model_id / description
      Previous value: -"Base64-encoded URN"New value: +"Base64url-encoded URN of the translated Navisworks model as returned by nwd_upload."
    • addedInput schema / properties / model_id / examples
      Added value: +[
      +  "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6c2NhbmJpbS1ud2QtMTcxMjM0NTY3OC9Ub3dlckFfTUVQU3RydWN0X1IwNy5ud2Q"
      +]
  2. First observed

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, but the description compensates fully. It discloses the 100-object limit, APS rate limits, required scopes, two Model Derivative calls per invocation, 202 retry behavior, error codes and handling, side effects (pure read, idempotent, logs usage), and even the response note when the cap is exceeded. This is comprehensive.

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?

The description is well-organized into clear sections (purpose, when to use, when not to use, scopes, rate limits, errors, side effects). Every sentence carries information; there is no redundancy or filler. Despite its length, it remains scannable and front-loads the core purpose.

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?

Given the tool's complexity (APS integration, error handling, rate limits, filtering behavior), the description covers all necessary context. It even mentions that the response includes a note field when the cap is exceeded, and there is no output schema so the description adequately describes the return content.

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 coverage is 100%, so baseline is 3. The description adds meaningful behavior beyond the schema: the filter matches against name OR Category, is case-insensitive, and omitting the filter returns the first 100 elements in property-collection order. It also explains model_id as a base64url URN from nwd_upload, enriching the schema.

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 opens with a specific verb and resource: 'List elements (objects) in the translated Navisworks model', and enumerates the exact fields returned (objectid, name, externalId, full property bag). It also distinguishes itself from sibling tools by explicitly stating what it is NOT for, such as clash detection and viewpoints.

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?

Provides explicit 'When to use' with concrete example queries and 'When NOT to use' with named alternatives (nwd_get_clashes, nwd_get_viewpoints). It also mentions the 100-object cap as a reason to use filters, giving clear decision 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.

Resources