{"serverId":"mcp-registry/ai.structupath/steel-tools","tools":[{"name":"steel_mtr_check","fixed":{"name":"steel_mtr_check","description":"Screen 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.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["grade","yield_ksi","tensile_ksi"],"properties":{"grade":{"type":"string","maxLength":24,"minLength":2,"description":"Steel grade: \"A992\", \"A572 Gr. 50\" or \"A36\""},"yield_ksi":{"type":"number","maximum":200,"description":"Reported yield, ksi","exclusiveMinimum":0},"tensile_ksi":{"type":"number","maximum":200,"description":"Reported tensile, ksi","exclusiveMinimum":0}}},"annotations":{"readOnlyHint":true},"title":"Mill Test Report Mechanicals Screen"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"steel_pdf_markup","fixed":{"name":"steel_pdf_markup","description":"Add 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.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["markups"],"properties":{"scale":{"type":"string","maxLength":40,"description":"Document scale for measurements, e.g. \"1/4 in = 1 ft\" or \"1:100\""},"author":{"type":"string","maxLength":120,"description":"Markups List author column"},"markups":{"type":"array","items":{"type":"object","required":["page"],"properties":{"at":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"maxItems":2000}]},"bump":{"type":"number","maximum":200},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"fill":{"type":"string","maxLength":9},"page":{"type":"integer","maximum":5000,"minimum":1,"description":"1-based page number"},"rect":{"type":"array","description":"[x, y, w, h] in the markup's coordinate space","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]},"size":{"type":"number","maximum":1000},"tool":{"type":"string","maxLength":60,"description":"A steel takeoff preset key, e.g. hss-ea, w-beam-lf, rfi-cloud"},"type":{"type":"string","maxLength":40,"description":"Annotation type when not using a preset tool"},"arrow":{"type":"boolean"},"box_h":{"type":"number","maximum":10000},"box_w":{"type":"number","maximum":10000},"color":{"type":"string","maxLength":9,"description":"Hex color, e.g. #FF0000"},"label":{"type":"string","maxLength":200},"scale":{"type":"string","maxLength":40,"description":"Per-markup scale, e.g. \"1/4 in = 1 ft\""},"width":{"type":"number","maximum":100},"author":{"type":"string","maxLength":120},"points":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"maxItems":2000},"opacity":{"type":"number","maximum":1,"minimum":0},"subject":{"type":"string","maxLength":120},"arrow_at":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"contents":{"type":"string","maxLength":2000},"font_size":{"type":"number","maximum":200},"column_data":{"type":"array","items":{},"maxItems":50},"fill_opacity":{"type":"number","maximum":1,"minimum":0},"coordinate_space":{"enum":["ratio","pdf"],"type":"string"}}},"maxItems":500,"minItems":1,"description":"Markups to place — geometry in ratio (0–1 from top-left) or pdf coordinates"},"pdf_url":{"type":"string","format":"uri","maxLength":2000,"description":"HTTPS URL of the source drawing PDF (fetched server-side, SSRF-guarded)"},"pdf_base64":{"type":"string","maxLength":4800000,"description":"Base64 PDF for small files (~3 MB max decoded); prefer pdf_url for drawing sets"},"page_scales":{"type":"object","description":"Per-page scale overrides, keyed by page number string","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"coordinate_space":{"enum":["ratio","pdf"],"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Bluebeam PDF Markup Writer"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":950,"tokensAfter":950},{"name":"steel_pipe_schedule","fixed":{"name":"steel_pipe_schedule","description":"Steel 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.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["nps"],"properties":{"nps":{"type":"string","maxLength":8,"minLength":1,"description":"Nominal pipe size, e.g. \"2\", \"1/2\", \"1-1/4\""},"schedule":{"type":"string","maxLength":8,"minLength":1,"description":"Optional schedule: \"40\", \"80\", \"160\", \"STD\", \"XS\", \"XXS\", \"5\", \"10\""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Pipe Schedule Lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":191,"tokensAfter":191}],"toolsChanged":3,"tokensSaved":0,"todo":[{"tool":"steel_ncr_generate","params":["root_cause","project_name","project_number","company_location","trade_or_supplier"]},{"tool":"steel_pdf_markup","params":["coordinate_space"]},{"tool":"steel_rfi_generate","params":["spec_refs","attachments","project_name","project_number","company_location","response_needed_by"]},{"tool":"steel_rfq_generate","params":["project_location"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}