ai.structupath/steel-tools
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Steel takeoff, weight and gauge calculators plus RFQ, RFI, NCR and Bluebeam markup generators.
| Author | ai.structupath |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2095 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"steel-tools": {
"url": "https://www.structupath.ai/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
steel_gauge_thicknessLook up sheet steel gauge thickness (gauges 3-28) in inches and mm with lb/ft², for plain, galvanized or stainless series. Published nominal values for estimating and orientation, not design guidance.
Parameters:
gauge(required) — integer — Sheet steel gauge number, 3 through 28material— string — Gauge series — the same number is a different thickness each
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_plate_weightCompute carbon steel plate weight from thickness (decimal or fraction) and width/length in inches, with optional material cost via price_per_lb. Published nominal values for estimating and orientation, not design guidance.
Parameters:
thickness_in(required) — Plate thickness in inches — decimal or fraction ("3/4", "1-1/8")width_in(required) — number — Plate width in INCHES (a 4x8 ft plate is 48 x 96 in)length_in(required) — number — Plate length in INCHESprice_per_lb— number — Optional material price in $/lb, to include a cost estimate
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_shape_weightLook up an AISC shape designation (W, C, MC, L, HSS, PIPE) for lb/ft, depth and area, with optional piece weight. 14th-Edition-era data. Published nominal values for estimating and orientation, not design guidance.
Parameters:
designation(required) — string — AISC designation, e.g. "W21X50", "HSS6X6X3/8", "L4X4X3/8"qty— integer — Optional piece countlength_ft— number — Optional piece length in feet, for a piece weight
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_connection_referenceDescribe a structural steel connection type (behaviour, use, what goes wrong) by name, alias or slug — or look up a structural bolt grade (A325, A490, A307). Published nominal values for estimating and orientation, not design guidance.
Parameters:
name_or_slug(required) — string — Connection name, alias or slug (e.g. "clip angle", "base-plate") or a bolt grade (e.g. "A490")
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_bolt_pretensionRCSC minimum pretension for A325/A490 structural bolts by diameter, with the turn-of-the-nut rotation when a bolt length is given. Published nominal values for estimating and orientation, not design guidance.
Parameters:
dia(required) — string — Bolt diameter in inches — fraction ("3/4") or decimal (0.75)length_in— number — Optional bolt length in inches, for the turn-of-the-nut rotation
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_pipe_scheduleSteel pipe dimensions by NPS and schedule: OD, wall, inside diameter and lb/ft for schedules 5, 10, 40/STD, 80/XS, 160 and XXS. Omit the schedule to list them all. Published nominal values for estimating and orientation, not design guidance.
Parameters:
nps(required) — string — Nominal pipe size, e.g. "2", "1/2", "1-1/4"schedule— string — Optional schedule: "40", "80", "160", "STD", "XS", "XXS", "5", "10"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_section_weightWeight of round bar, square bar, flat bar or round tube from dimensions in inches — lb/ft and optional piece weight, in carbon, stainless or aluminum. For AISC designations use steel_shape_weight; for plate use steel_plate_weight. Published nominal values for estimating and orientation, not design guidance.
Parameters:
section(required) — string — Cross-section typedim1_in(required) — number — First dimension in inches: diameter (round bar), side (square bar), width (flat bar) or OD (round tube)dim2_in— number — Second dimension in inches: thickness (flat bar) or wall (round tube); unused for round and square barmaterial— string — Default carbon steel; stainless is +2%, aluminum ×0.35length_ft— number — Optional length in feet for a piece weight
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_mtr_checkScreen a mill cert's yield and tensile against the specified limits for A992, A572 Gr. 50 or A36 — a screening aid, not acceptance. Published nominal values for estimating and orientation, not design guidance.
Parameters:
grade(required) — string — Steel grade: "A992", "A572 Gr. 50" or "A36"yield_ksi(required) — number — Reported yield, ksitensile_ksi(required) — number — Reported tensile, ksi
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_takeoff_weightRoll a member list (AISC designation, length in feet, piece count — up to 500 lines) into a bill-of-steel ledger: weight per line, total pounds and tons, piece and lineal-foot counts. Net weight only; unmatched designations are listed, not guessed. Published nominal values for estimating and orientation, not design guidance.
Parameters:
members(required) — array — The member list to roll up, one line per mark/size
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_coating_areaSurface area to coat for an AISC shape: ft² per foot from the cross-section perimeter, piece/lot area with length and qty, optional interior faces for galvanized tubes and gallons at a supplied coverage rate. Published nominal values for estimating and orientation, not design guidance.
Parameters:
designation(required) — string — AISC designation, e.g. W21X50, HSS6X6X3/8, Pipe4STDqty— integer — Optional piece count (default 1) when a length is givenlength_ft— number — Optional length in feet for a piece/lot areainclude_inside_faces— boolean — Tubes only: add interior surface, as hot-dip galvanizing coats vented HSS/pipe interiors. Default false (outside only).coverage_sqft_per_gal— number — Optional practical coverage rate from the coating datasheet, to estimate gallons
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_rfq_generateGenerate a vendor-ready Request for Quotation (.xlsx) from structured takeoff line items — grouped by material, with vendor pricing columns, totals and standard terms. You pass parsed line items and a company name; returns a download link that expires within ~48 hours. Nothing you submit is stored.
Parameters:
company_name(required) — string — Buyer company on the RFQ header and terms — requiredproject_name(required) — string — Project name for the header and filenameline_items(required) — array — Parsed takeoff line items — the calling agent reads the estimateterms— array — Override the eight default terms; omit for the standard setdate_issued— string — Free-form issue date; a blank line is used if omittednesting_rows— array — Optional fabricator-facing nesting/drop reference rowscompany_location— string — City, state under the company name, e.g. "Denver, CO"project_location— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_pdf_markupAdd real Bluebeam-compatible annotation objects to a drawing PDF — counts, length/area measurements with live scales, RFI clouds, callouts — from a markups JSON you supply plus placement coordinates. Pass the PDF as an https URL or small base64; returns a marked PDF download link that expires within ~48 hours. Markups appear in Bluebeam Revu's Markups List. You decide placement; the tool guarantees the format. Nothing you submit is stored.
Parameters:
markups(required) — array — Markups to place — geometry in ratio (0–1 from top-left) or pdf coordinatesscale— string — Document scale for measurements, e.g. "1/4 in = 1 ft" or "1:100"author— string — Markups List author columnpdf_url— string — HTTPS URL of the source drawing PDF (fetched server-side, SSRF-guarded)pdf_base64— string — Base64 PDF for small files (~3 MB max decoded); prefer pdf_url for drawing setspage_scales— object — Per-page scale overrides, keyed by page number stringcoordinate_space— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_rfi_generateGenerate a formal Request for Information PDF from structured fields — header, meta grid, subject, description, proposed solution, attachments, and a blank response block for the design team. You do the judgement (one issue per RFI, exact drawing references, a proposed path forward); the tool guarantees the format. Returns a download link that expires within ~48 hours. Nothing you submit is stored.
Parameters:
company_name(required) — string — Contractor issuing the RFI — appears in the headerrfi_number(required) — string — RFI number from the project register, e.g. "RFI-017"date(required) — string — Submission dateproject_name(required) — stringsubmitted_to(required) — string — The party who must respond — engineer, architect, GCsubmitted_by(required) — string — Name — companysubject(required) — string — One-line subject — one issue per RFIdescription(required) — string — The issue: specific references, what is missing or conflicting, why it matters. Newlines respected.reason— string — Category: Design Omission, Design Error, Constructability Issue, Scope Clarification, Site Condition, Missing Information, Coordination Conflict — or free textspec_refs— arrayattachments— arraydrawing_refs— array — Exact drawing numbers with revisionsproject_number— stringcompany_location— stringproposed_solution— string — Suggested path forward, framed as a proposalresponse_needed_by— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
steel_ncr_generateGenerate a formal Nonconformance Report PDF: identification, description, the violated requirement, containment, root cause (prose or 5-Whys chain), disposition (accept-as-is/repair/rework/reject) with actions, and blank quality-review and sign-off blocks. Flags accept-as-is dispositions whose corrective action describes physical work. The disposition decision belongs to the responsible quality authority. Returns a download link that expires within ~48 hours. Nothing you submit is stored.
Parameters:
company_name(required) — string — Contractor raising the NCR — appears in the headerncr_number(required) — string — NCR number from the project register, e.g. "NCR-008"date(required) — string — Date raisedproject_name(required) — stringraised_by(required) — string — Name — roledescription(required) — string — What was found, measured against what was requiredrequirement_violated(required) — string — The cited requirement — spec section, drawing/detail, or code clause. An NCR without a cited requirement is dispute fuel.resolution(required) — string — Disposition: accept-as-is (no physical work), repair, rework, or rejectlocation— string — Area, level, grid, or piece markroot_cause— stringcontainment— string — What was done on the spot — quarantine, stop work, tagproject_number— stringroot_cause_whys— array — 5-Whys chain, first why to root; overrides root_causecompany_location— stringcorrective_action— string — Bringing this instance into compliancepreventive_action— string — Stopping recurrence — procedure, inspection, suppliertrade_or_supplier— stringresolution_justification— string — Required in practice for accept-as-is — the concession basis
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.