Skip to main content
Glama

Xem Studio: Part Dimensions & CAD

Full record for one known slug: sources, licenses, related, FAQ

get_geometry
Read-onlyIdempotent

FULL RECORD for one object you already have the slug or exact name of (from a search or an alternative): its full sheet and mating features plus the basis of the numbers, every public CAD source with its license, related objects to traverse, FAQ, and paid-pack offers. Use it to cite or verify, check a license, or walk to related parts. Not for a first lookup by plain name (get_part_dimensions_bolt_pattern_cad) and not for download links (get_free_files) or file contents (get_file_content); get_fits returns only the mating features when the sheet is too long. Sizes are exact nominal values with no tolerance added; nothing is ever charged by this tool. An unknown slug is an error with a hint to search first. Read-only, no auth. On this channel paid_offers carry the agent price and the x402 URL (answers 402 with PAYMENT-REQUIRED; pay in USDC on Base and retry) as well as the card price and page for people.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "object": "<object>"
    },
    "name": "get_geometry"
  }
}

Input Schema

NameRequiredDescriptionDefault
objectYesObject slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first.

Output Schema

NameRequiredDescriptionDefault
faqNoFrequently asked questions about this object.
nameYesDisplay name.
slugYesObject slug.
filesNo
sheetYesThe dimension sheet: overall_mm, basis (where the numbers come from), notes, table (columns and rows), question answered.
matingNoMating features with exact sizes and fit classes.
relatedNoSlugs of related objects; call get_geometry on them to traverse.
sourcesNoPublic sources with licenses.
dimensionsNoHow to read the sizes: exact nominal, no tolerance added.
sheet_textNoThe same sheet as plain text, ready to quote.
paid_offersNoFiles sold for this object; nothing is charged by this tool.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / dimensions / description
      Previous value: -"How to read the sizes: exact nominal, no printing tolerance."New value: +"How to read the sizes: exact nominal, no tolerance added."
  2. Changed29 schema fields changed
    • changedInput schema / properties / object / description
      Previous value: -"Slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact name or alias also resolves."New value: +"Object slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first."
    • addedOutput schema / properties / dimensions / description
      Added value: +"How to read the sizes: exact nominal, no printing tolerance."
    • addedOutput schema / properties / faq / description
      Added value: +"Frequently asked questions about this object."
    • addedOutput schema / properties / faq / items / additionalProperties
      Added value: +true
    • addedOutput schema / properties / faq / items / description
      Added value: +"A question and its answer."
    • addedOutput schema / properties / files / properties / free_count / description
      Added value: +"Free files available."
    • addedOutput schema / properties / files / properties / how / description
      Added value: +"Which tool gets them."
    • addedOutput schema / properties / mating / description
      Added value: +"Mating features with exact sizes and fit classes."
    • addedOutput schema / properties / mating / items / additionalProperties
      Added value: +true
    • addedOutput schema / properties / mating / items / properties
      Added value: +{
      +  "exact": {
      +    "description": "Its exact size, in mm, with no clearance.",
      +    "type": "string"
      +  },
      +  "feature": {
      +    "description": "The feature, e.g. 'M3 mounting holes (4)'.",
      +    "type": "string"
      +  },
      +  "files": {
      +    "description": "Which of the object's files carry this feature ('all' or a file name).",
      +    "type": "string"
      +  },
      +  "fit": {
      +    "description": "Fit class: press | slide | run | socket | clamp | designed.",
      +    "type": "string"
      +  },
      +  "mates": {
      +    "description": "What it meets: another object, a standard part, or a fastener size.",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / mating / items / required
      Added value: +[
      +  "feature",
      +  "exact",
      +  "fit"
      +]
    • addedOutput schema / properties / name / description
      Added value: +"Display name."
    • addedOutput schema / properties / paid_offers / description
      Added value: +"Files sold for this object; nothing is charged by this tool."
    • addedOutput schema / properties / paid_offers / items / properties / buy_url / description
      Added value: +"Page where a person buys."
    • addedOutput schema / properties / paid_offers / items / properties / card_price_usd
      Added value: +{
      +  "description": "Price for a person paying by card.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / paid_offers / items / properties / file / description
      Added value: +"Pack or file identifier."
    • addedOutput schema / properties / paid_offers / items / properties / format / description
      Added value: +"What the purchase contains."
    • addedOutput schema / properties / paid_offers / items / properties / price_usd / description
      Added value: +"Price for this channel in USD."
    • addedOutput schema / properties / paid_offers / items / properties / status / description
      Added value: +"available | planned."
    • addedOutput schema / properties / paid_offers / items / properties / tolerance_mm / description
      Added value: +"Scan tolerance, for scanned objects."
    • addedOutput schema / properties / paid_offers / items / properties / x402_url / description
      Added value: +"Endpoint an agent pays with x402."
    • addedOutput schema / properties / related / description
      Added value: +"Slugs of related objects; call get_geometry on them to traverse."
    • addedOutput schema / properties / sheet / additionalProperties
      Added value: +true
    • addedOutput schema / properties / sheet / description
      Added value: +"The dimension sheet: overall_mm, basis (where the numbers come from), notes, table (columns and rows), question answered."
    • addedOutput schema / properties / sheet_text / description
      Added value: +"The same sheet as plain text, ready to quote."
    • addedOutput schema / properties / slug / description
      Added value: +"Object slug."
    • addedOutput schema / properties / sources / description
      Added value: +"Public sources with licenses."
    • addedOutput schema / properties / sources / items / additionalProperties
      Added value: +true
    • addedOutput schema / properties / sources / items / description
      Added value: +"A public CAD or dimension source: publisher, title, url, formats, license, whether Xem hosts it."
  3. Changed1 schema field changed
    • addedOutput schema / properties / paid_offers
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "buy_url": {
      +        "type": "string"
      +      },
      +      "file": {
      +        "type": "string"
      +      },
      +      "format": {
      +        "type": "string"
      +      },
      +      "price_usd": {
      +        "type": "number"
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "tolerance_mm": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "x402_url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Changed1 schema field changed
    • removedOutput schema / properties / paid_offers
      Removed value: -{
      -  "items": {
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
  5. Changed2 schema fields changed
    • changedInput schema / properties / object / description
      Previous value: -"The object's slug exactly as find_geometry or find_by_dimensions returns it (e.g. '4080-aluminum-extrusion'). A name or alias also works; slugs are safest."New value: +"Slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact name or alias also resolves."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "dimensions": {
      +      "type": "string"
      +    },
      +    "faq": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "files": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "free_count": {
      +          "type": "integer"
      +        },
      +        "how": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [],
      +      "type": "object"
      +    },
      +    "mating": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "paid_offers": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "related": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "sheet": {
      +      "type": "object"
      +    },
      +    "sheet_text": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "slug": {
      +      "type": "string"
      +    },
      +    "sources": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "slug",
      +    "name",
      +    "sheet"
      +  ],
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / object / description
      Previous value: -"Slug from find_geometry, e.g. 'tri-clamp-ferrule', 'raspberry-pi-5', 'heat-set-inserts'"New value: +"The object's slug exactly as find_geometry or find_by_dimensions returns it (e.g. '4080-aluminum-extrusion'). A name or alias also works; slugs are safest."
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: states that sizes are exact nominal values with no tolerance added, that nothing is charged by this call, that an unknown slug returns an error with a search hint, and that on this channel paid_offers carry agent pricing plus an x402 URL that answers 402 with PAYMENT-REQUIRED and requires USDC on Base to retry. The 'read-only, no auth' clause does restate the annotations, but the surrounding disclosure is far richer than the structured fields.

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?

Front-loaded with the core purpose in the opening clause and every subsequent clause carries a distinct fact (contents, exclusions, tolerances, error behavior, payment flow). It is dense and semicolon-chained rather than cleanly segmented, which costs a point but not readability.

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?

For a single-parameter read tool with a full output schema and read-only annotations, this covers everything an agent needs: what comes back, what the numbers mean, failure behavior, cost behavior, and where to go instead. Nothing material is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 100% and a single required parameter, the schema already documents that the input is a slug from find_geometry or find_by_dimensions and that exact names or aliases resolve. The description repeats that aliases resolve and that unknown values error, adding only marginal meaning beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource and enumerates the payload precisely: full sheet and mating features, basis of numbers, CAD sources with licenses, related objects, FAQ, and paid offers. It then names the sibling tools it is NOT (get_part_dimensions_bolt_pattern_cad, get_free_files, get_file_content, get_fits), so an agent can route correctly without opening another schema.

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 when-to-use triggers (cite, verify, check a license, traverse to related parts) and explicit exclusions with the alternative named for each: first lookup by plain name goes elsewhere, download links to get_free_files, file contents to get_file_content, and get_fits when only mating features are needed. This is the strongest possible routing 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