Skip to main content
Glama

Get Upload Link

get_upload_link

Get a link to the ARCNM upload page that works without signing in, for the person to open in a browser. Use it when the CAD file is on the person's computer and you cannot send its content, as in a chat app. They drop one STEP file per part, a PDF drawing optional; ARCNM files and prices each part in the folder and costing environment named here. Issuing is free; each different part uploaded is billable, one calculation if it succeeds (an assembly one per different part, counted once the file is read). The link works for 30 minutes and max_uploads parts; whoever has it can upload, so it is for that person only. Returns the url, upload_session_id, expiry and the calculations left. Afterwards list_calculations with upload_session_id finds exactly the calculations they started. If you can send the file content, use upload_and_quote instead.

Input Schema

NameRequiredDescriptionDefault
folder_idNoFolder to file the uploaded parts into (optional).
max_uploadsNoHow many parts the person may upload through the link, 1 to 20 (default 1). Each part is one STEP file with an optional drawing.
environment_idNoCosting environment to price the uploaded parts in (optional; the organization's default when omitted).

Output Schema

NameRequiredDescriptionDefault
urlYesThe arcnm upload page. The person opens it in a browser, without signing in, and drops one STEP (3D) file per part, a PDF drawing optional; arcnm files and prices each part in the folder and costing environment below. Whoever has the URL can upload into this organization until it expires, so it is for that person only.
folder_idNoThe folder the parts are filed into; null for the root.
issued_atYesWhen this link was issued (RFC 3339, UTC).
next_stepYesHow to find the new calculations once the person says the upload is done.
expires_atYesWhen the link stops working (RFC 3339, UTC).
max_uploadsYesHow many parts the person may upload through the link.
environment_idNoThe costing environment the parts are priced in.
upload_session_idYesThe link's id. Every calculation an upload on the page creates carries it, and list_calculations with upload_session_id set to it lists exactly those calculations, and no one else's.
calculations_remainingNoCalculations left in this billing window. Each different part priced from the page uses one, and an assembly uses one per different part once the file is read. Null when the plan states no limit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / calculations_remaining / description
      Previous value: -"Calculations left in this billing window: each part priced from the page uses one. Null when the plan states no limit."New value: +"Calculations left in this billing window. Each different part priced from the page uses one, and an assembly uses one per different part once the file is read. Null when the plan states no limit."
  2. Changed12 schema fields changed
    • changedInput schema / properties / environment_id / description
      Previous value: -"Costing environment to price the uploads in (optional; the organization's default when omitted)."New value: +"Costing environment to price the uploaded parts in (optional; the organization's default when omitted)."
    • changedInput schema / properties / folder_id / description
      Previous value: -"Folder to file the uploads into (optional)."New value: +"Folder to file the uploaded parts into (optional)."
    • addedInput schema / properties / max_uploads
      Added value: +{
      +  "default": 1,
      +  "description": "How many parts the person may upload through the link, 1 to 20 (default 1). Each part is one STEP file with an optional drawing.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedOutput schema / description
      Previous value: -"A link to the arcnm upload page, for the person to open in a browser.\nThe files go from their computer straight to arcnm; nothing passes\nthrough the agent."New value: +"A link to the arcnm upload page that works without signing in, for the\nperson to open in a browser. The files go from their computer straight\nto arcnm; nothing passes through the agent."
    • changedOutput schema / properties / environment_id / description
      Previous value: -"The costing environment the uploads are priced in; omitted means the organization's default."New value: +"The costing environment the parts are priced in."
    • addedOutput schema / properties / expires_at
      Added value: +{
      +  "description": "When the link stops working (RFC 3339, UTC).",
      +  "type": "string"
      +}
    • changedOutput schema / properties / folder_id / description
      Previous value: -"The folder the uploads are filed into."New value: +"The folder the parts are filed into; null for the root."
    • changedOutput schema / properties / issued_at / description
      Previous value: -"When this link was issued (RFC 3339, UTC). As list_calculations' created_after, it lists the calculations the person starts on the page."New value: +"When this link was issued (RFC 3339, UTC)."
    • addedOutput schema / properties / max_uploads
      Added value: +{
      +  "description": "How many parts the person may upload through the link.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / upload_session_id
      Added value: +{
      +  "description": "The link's id. Every calculation an upload on the page creates carries it, and list_calculations with upload_session_id set to it lists exactly those calculations, and no one else's.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / url / description
      Previous value: -"The arcnm upload page, scoped to the folder and environment named in the call. The person opens it while signed in to arcnm, drops the STEP (3D) and PDF (drawing) files, and arcnm files and prices each part."New value: +"The arcnm upload page. The person opens it in a browser, without signing in, and drops one STEP (3D) file per part, a PDF drawing optional; arcnm files and prices each part in the folder and costing environment below. Whoever has the URL can upload into this organization until it expires, so it is for that person only."
    • changedOutput schema / required
      Previous value: -[
      -  "url",
      -  "issued_at",
      -  "next_step"
      -]New value: +[
      +  "url",
      +  "upload_session_id",
      +  "expires_at",
      +  "max_uploads",
      +  "issued_at",
      +  "next_step"
      +]
  3. Changed3 schema fields changed
    • addedOutput schema / properties / issued_at
      Added value: +{
      +  "description": "When this link was issued (RFC 3339, UTC). As list_calculations' created_after, it lists the calculations the person starts on the page.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / next_step / description
      Previous value: -"How to find the new parts and calculations once the person says the upload is done."New value: +"How to find the new calculations once the person says the upload is done."
    • changedOutput schema / required
      Previous value: -[
      -  "url",
      -  "next_step"
      -]New value: +[
      +  "url",
      +  "issued_at",
      +  "next_step"
      +]
  4. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare it is not read-only and not idempotent; the description carries far more: the link is unauthenticated so 'whoever has it can upload', it expires in 30 minutes and caps at max_uploads parts, issuing is free but each distinct uploaded part is billable (one calculation on success, assemblies counted per part), and it names the returned fields and the follow-up query (list_calculations with upload_session_id). That is substantive behavioral context an agent cannot get from 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?

The purpose and the person-facing constraint are front-loaded, the alternative tool is named at the end, and every sentence carries information (expiry, cap, billing model, returns). It is dense and somewhat long for a three-parameter tool, but there is no filler or repetition.

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 tool that hands an unauthenticated upload session to a human, the description covers the essential unknowns: lifetime, upload cap, sharing risk, billing consequences, and how to retrieve the resulting calculations. An output schema exists, and the description only summarizes its fields rather than duplicating them.

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 description coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: the folder and environment 'named here' are where ARCNM files and prices the parts, and max_uploads is framed as 'one STEP file per part, a PDF drawing optional' rather than just a count. It stops short of explaining what happens when folder_id/environment_id are omitted versus defaulted.

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 states a concrete verb and resource — 'Get a link to the ARCNM upload page that works without signing in' — and immediately scopes who uses it (a person opening it in a browser). It also explicitly distinguishes itself from the sibling upload_and_quote, so an agent can choose between them without reading either 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?

It gives an explicit selection condition ('when the CAD file is on the person's computer and you cannot send its content, as in a chat app') and an explicit counter-case with the named alternative ('If you can send the file content, use upload_and_quote instead'). Nothing about when-to-use is left to inference.

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.