Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted just now
teppi

Server definition

Hash
sha256:2b9912ace66a88f10f6d30228abdbfecd9f5d8d7a941755b17b47c3e25486eb1
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "RCSC 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "dia": { "description": "Bolt diameter in inches — fraction (\"3/4\") or decimal (0.75)", "maxLength": 8, "minLength": 1, "type": "string" }, "length_in": { "description": "Optional bolt length in inches, for the turn-of-the-nut rotation", "exclusiveMinimum": 0, "maximum": 60, "type": "number" } }, "required": [ "dia" ], "type": "object" }, "name": "steel_bolt_pretension", "outputSchema": null }, { "description": "Surface 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "coverage_sqft_per_gal": { "description": "Optional practical coverage rate from the coating datasheet, to estimate gallons", "exclusiveMinimum": 0, "maximum": 2000, "type": "number" }, "designation": { "description": "AISC designation, e.g. W21X50, HSS6X6X3/8, Pipe4STD", "maxLength": 32, "type": "string" }, "include_inside_faces": { "description": "Tubes only: add interior surface, as hot-dip galvanizing coats vented HSS/pipe interiors. Default false (outside only).", "type": "boolean" }, "length_ft": { "description": "Optional length in feet for a piece/lot area", "exclusiveMinimum": 0, "maximum": 10000, "type": "number" }, "qty": { "description": "Optional piece count (default 1) when a length is given", "exclusiveMinimum": 0, "maximum": 100000, "type": "integer" } }, "required": [ "designation" ], "type": "object" }, "name": "steel_coating_area", "outputSchema": null }, { "description": "Describe 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "name_or_slug": { "description": "Connection name, alias or slug (e.g. \"clip angle\", \"base-plate\") or a bolt grade (e.g. \"A490\")", "maxLength": 80, "minLength": 1, "type": "string" } }, "required": [ "name_or_slug" ], "type": "object" }, "name": "steel_connection_reference", "outputSchema": null }, { "description": "Look 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "gauge": { "description": "Sheet steel gauge number, 3 through 28", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "material": { "default": "steel", "description": "Gauge series — the same number is a different thickness each", "enum": [ "steel", "galvanized", "stainless" ], "type": "string" } }, "required": [ "gauge" ], "type": "object" }, "name": "steel_gauge_thickness", "outputSchema": null }, { "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": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "grade": { "description": "Steel grade: \"A992\", \"A572 Gr. 50\" or \"A36\"", "maxLength": 24, "minLength": 2, "type": "string" }, "tensile_ksi": { "description": "Reported tensile, ksi", "exclusiveMinimum": 0, "maximum": 200, "type": "number" }, "yield_ksi": { "description": "Reported yield, ksi", "exclusiveMinimum": 0, "maximum": 200, "type": "number" } }, "required": [ "grade", "yield_ksi", "tensile_ksi" ], "type": "object" }, "name": "steel_mtr_check", "outputSchema": null }, { "description": "Generate 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "company_location": { "maxLength": 120, "type": "string" }, "company_name": { "description": "Contractor raising the NCR — appears in the header", "maxLength": 120, "minLength": 1, "type": "string" }, "containment": { "description": "What was done on the spot — quarantine, stop work, tag", "maxLength": 1000, "type": "string" }, "corrective_action": { "description": "Bringing this instance into compliance", "maxLength": 2000, "type": "string" }, "date": { "description": "Date raised", "maxLength": 60, "minLength": 1, "type": "string" }, "description": { "description": "What was found, measured against what was required", "maxLength": 4000, "minLength": 1, "type": "string" }, "location": { "description": "Area, level, grid, or piece mark", "maxLength": 200, "type": "string" }, "ncr_number": { "description": "NCR number from the project register, e.g. \"NCR-008\"", "maxLength": 40, "minLength": 1, "type": "string" }, "preventive_action": { "description": "Stopping recurrence — procedure, inspection, supplier", "maxLength": 2000, "type": "string" }, "project_name": { "maxLength": 160, "minLength": 1, "type": "string" }, "project_number": { "maxLength": 60, "type": "string" }, "raised_by": { "description": "Name — role", "maxLength": 160, "minLength": 1, "type": "string" }, "requirement_violated": { "description": "The cited requirement — spec section, drawing/detail, or code clause. An NCR without a cited requirement is dispute fuel.", "maxLength": 500, "minLength": 1, "type": "string" }, "resolution": { "description": "Disposition: accept-as-is (no physical work), repair, rework, or reject", "enum": [ "accept-as-is", "repair", "rework", "reject" ], "type": "string" }, "resolution_justification": { "description": "Required in practice for accept-as-is — the concession basis", "maxLength": 1000, "type": "string" }, "root_cause": { "maxLength": 2000, "type": "string" }, "root_cause_whys": { "description": "5-Whys chain, first why to root; overrides root_cause", "items": { "maxLength": 300, "type": "string" }, "maxItems": 5, "type": "array" }, "trade_or_supplier": { "maxLength": 160, "type": "string" } }, "required": [ "company_name", "ncr_number", "date", "project_name", "raised_by", "description", "requirement_violated", "resolution" ], "type": "object" }, "name": "steel_ncr_generate", "outputSchema": null }, { "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": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "author": { "description": "Markups List author column", "maxLength": 120, "type": "string" }, "coordinate_space": { "enum": [ "ratio", "pdf" ], "type": "string" }, "markups": { "description": "Markups to place — geometry in ratio (0–1 from top-left) or pdf coordinates", "items": { "properties": { "arrow": { "type": "boolean" }, "arrow_at": { "prefixItems": [ { "type": "number" }, { "type": "number" } ], "type": "array" }, "at": { "anyOf": [ { "prefixItems": [ { "type": "number" }, { "type": "number" } ], "type": "array" }, { "items": { "prefixItems": [ { "type": "number" }, { "type": "number" } ], "type": "array" }, "maxItems": 2000, "type": "array" } ] }, "author": { "maxLength": 120, "type": "string" }, "box_h": { "maximum": 10000, "type": "number" }, "box_w": { "maximum": 10000, "type": "number" }, "bump": { "maximum": 200, "type": "number" }, "color": { "description": "Hex color, e.g. #FF0000", "maxLength": 9, "type": "string" }, "column_data": { "items": {}, "maxItems": 50, "type": "array" }, "contents": { "maxLength": 2000, "type": "string" }, "coordinate_space": { "enum": [ "ratio", "pdf" ], "type": "string" }, "data": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "fill": { "maxLength": 9, "type": "string" }, "fill_opacity": { "maximum": 1, "minimum": 0, "type": "number" }, "font_size": { "maximum": 200, "type": "number" }, "label": { "maxLength": 200, "type": "string" }, "opacity": { "maximum": 1, "minimum": 0, "type": "number" }, "page": { "description": "1-based page number", "maximum": 5000, "minimum": 1, "type": "integer" }, "points": { "items": { "prefixItems": [ { "type": "number" }, { "type": "number" } ], "type": "array" }, "maxItems": 2000, "type": "array" }, "rect": { "description": "[x, y, w, h] in the markup's coordinate space", "prefixItems": [ { "type": "number" }, { "type": "number" }, { "type": "number" }, { "type": "number" } ], "type": "array" }, "scale": { "description": "Per-markup scale, e.g. \"1/4 in = 1 ft\"", "maxLength": 40, "type": "string" }, "size": { "maximum": 1000, "type": "number" }, "subject": { "maxLength": 120, "type": "string" }, "tool": { "description": "A steel takeoff preset key, e.g. hss-ea, w-beam-lf, rfi-cloud", "maxLength": 60, "type": "string" }, "type": { "description": "Annotation type when not using a preset tool", "maxLength": 40, "type": "string" }, "width": { "maximum": 100, "type": "number" } }, "required": [ "page" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" }, "page_scales": { "additionalProperties": { "type": "string" }, "description": "Per-page scale overrides, keyed by page number string", "propertyNames": { "type": "string" }, "type": "object" }, "pdf_base64": { "description": "Base64 PDF for small files (~3 MB max decoded); prefer pdf_url for drawing sets", "maxLength": 4800000, "type": "string" }, "pdf_url": { "description": "HTTPS URL of the source drawing PDF (fetched server-side, SSRF-guarded)", "format": "uri", "maxLength": 2000, "type": "string" }, "scale": { "description": "Document scale for measurements, e.g. \"1/4 in = 1 ft\" or \"1:100\"", "maxLength": 40, "type": "string" } }, "required": [ "markups" ], "type": "object" }, "name": "steel_pdf_markup", "outputSchema": null }, { "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": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "nps": { "description": "Nominal pipe size, e.g. \"2\", \"1/2\", \"1-1/4\"", "maxLength": 8, "minLength": 1, "type": "string" }, "schedule": { "description": "Optional schedule: \"40\", \"80\", \"160\", \"STD\", \"XS\", \"XXS\", \"5\", \"10\"", "maxLength": 8, "minLength": 1, "type": "string" } }, "required": [ "nps" ], "type": "object" }, "name": "steel_pipe_schedule", "outputSchema": null }, { "description": "Compute 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "length_in": { "description": "Plate length in INCHES", "exclusiveMinimum": 0, "maximum": 2000, "type": "number" }, "price_per_lb": { "description": "Optional material price in $/lb, to include a cost estimate", "exclusiveMinimum": 0, "maximum": 1000, "type": "number" }, "thickness_in": { "anyOf": [ { "maxLength": 16, "type": "string" }, { "type": "number" } ], "description": "Plate thickness in inches — decimal or fraction (\"3/4\", \"1-1/8\")" }, "width_in": { "description": "Plate width in INCHES (a 4x8 ft plate is 48 x 96 in)", "exclusiveMinimum": 0, "maximum": 2000, "type": "number" } }, "required": [ "thickness_in", "width_in", "length_in" ], "type": "object" }, "name": "steel_plate_weight", "outputSchema": null }, { "description": "Generate 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "attachments": { "items": { "maxLength": 160, "type": "string" }, "maxItems": 20, "type": "array" }, "company_location": { "maxLength": 120, "type": "string" }, "company_name": { "description": "Contractor issuing the RFI — appears in the header", "maxLength": 120, "minLength": 1, "type": "string" }, "date": { "description": "Submission date", "maxLength": 60, "minLength": 1, "type": "string" }, "description": { "description": "The issue: specific references, what is missing or conflicting, why it matters. Newlines respected.", "maxLength": 4000, "minLength": 1, "type": "string" }, "drawing_refs": { "description": "Exact drawing numbers with revisions", "items": { "maxLength": 80, "type": "string" }, "maxItems": 20, "type": "array" }, "project_name": { "maxLength": 160, "minLength": 1, "type": "string" }, "project_number": { "maxLength": 60, "type": "string" }, "proposed_solution": { "description": "Suggested path forward, framed as a proposal", "maxLength": 2000, "type": "string" }, "reason": { "description": "Category: Design Omission, Design Error, Constructability Issue, Scope Clarification, Site Condition, Missing Information, Coordination Conflict — or free text", "maxLength": 60, "type": "string" }, "response_needed_by": { "maxLength": 60, "type": "string" }, "rfi_number": { "description": "RFI number from the project register, e.g. \"RFI-017\"", "maxLength": 40, "minLength": 1, "type": "string" }, "spec_refs": { "items": { "maxLength": 80, "type": "string" }, "maxItems": 20, "type": "array" }, "subject": { "description": "One-line subject — one issue per RFI", "maxLength": 160, "minLength": 1, "type": "string" }, "submitted_by": { "description": "Name — company", "maxLength": 160, "minLength": 1, "type": "string" }, "submitted_to": { "description": "The party who must respond — engineer, architect, GC", "maxLength": 160, "minLength": 1, "type": "string" } }, "required": [ "company_name", "rfi_number", "date", "project_name", "submitted_to", "submitted_by", "subject", "description" ], "type": "object" }, "name": "steel_rfi_generate", "outputSchema": null }, { "description": "Generate 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "company_location": { "description": "City, state under the company name, e.g. \"Denver, CO\"", "maxLength": 120, "type": "string" }, "company_name": { "description": "Buyer company on the RFQ header and terms — required", "maxLength": 120, "minLength": 1, "type": "string" }, "date_issued": { "description": "Free-form issue date; a blank line is used if omitted", "maxLength": 60, "type": "string" }, "line_items": { "description": "Parsed takeoff line items — the calling agent reads the estimate", "items": { "properties": { "category": { "description": "Shop category, e.g. \"Columns\", \"Plate\", \"Flat Bar\"", "maxLength": 60, "type": "string" }, "description": { "description": "Full description; a row containing \"BY OTHERS\" is excluded", "maxLength": 300, "type": "string" }, "grade": { "description": "Material grade, e.g. \"A992 Gr.50\", \"A36\"", "maxLength": 40, "type": "string" }, "is_stock_purchase": { "description": "True for consolidated stock items that supersede piece-level plate/flat-bar rows", "type": "boolean" }, "item": { "description": "Estimate item number, e.g. \"A-01\"", "maxLength": 40, "type": "string" }, "material_type": { "description": "Grouping key: w-shape, plate, or flat-bar", "enum": [ "w-shape", "plate", "flat-bar" ], "type": "string" }, "notes": { "maxLength": 300, "type": "string" }, "purchase_wt_lbs": { "description": "Estimated purchase weight in pounds", "maximum": 10000000, "minimum": 0, "type": "number" }, "qty": { "description": "Piece or stick count; a zero-qty row is excluded", "maximum": 100000, "minimum": 0, "type": "integer" }, "size": { "description": "AISC designation or plate/bar dimensions", "maxLength": 80, "type": "string" }, "stock_length": { "description": "How it is purchased, e.g. \"3 sticks × 30′\"", "maxLength": 80, "type": "string" } }, "required": [ "item", "category", "description", "size", "grade", "qty", "stock_length", "purchase_wt_lbs", "material_type" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" }, "nesting_rows": { "description": "Optional fabricator-facing nesting/drop reference rows", "items": { "properties": { "drop_notes": { "maxLength": 300, "type": "string" }, "material": { "maxLength": 120, "type": "string" }, "nesting_plan": { "maxLength": 200, "type": "string" } }, "required": [ "material", "nesting_plan", "drop_notes" ], "type": "object" }, "maxItems": 100, "type": "array" }, "project_location": { "maxLength": 160, "type": "string" }, "project_name": { "description": "Project name for the header and filename", "maxLength": 160, "minLength": 1, "type": "string" }, "terms": { "description": "Override the eight default terms; omit for the standard set", "items": { "maxLength": 500, "type": "string" }, "maxItems": 30, "type": "array" } }, "required": [ "company_name", "project_name", "line_items" ], "type": "object" }, "name": "steel_rfq_generate", "outputSchema": null }, { "description": "Weight 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "dim1_in": { "description": "First dimension in inches: diameter (round bar), side (square bar), width (flat bar) or OD (round tube)", "exclusiveMinimum": 0, "maximum": 120, "type": "number" }, "dim2_in": { "description": "Second dimension in inches: thickness (flat bar) or wall (round tube); unused for round and square bar", "exclusiveMinimum": 0, "maximum": 60, "type": "number" }, "length_ft": { "description": "Optional length in feet for a piece weight", "exclusiveMinimum": 0, "maximum": 10000, "type": "number" }, "material": { "description": "Default carbon steel; stainless is +2%, aluminum ×0.35", "enum": [ "carbon", "stainless", "aluminum" ], "type": "string" }, "section": { "description": "Cross-section type", "enum": [ "round-bar", "square-bar", "flat-bar", "round-tube" ], "type": "string" } }, "required": [ "section", "dim1_in" ], "type": "object" }, "name": "steel_section_weight", "outputSchema": null }, { "description": "Look 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "designation": { "description": "AISC designation, e.g. \"W21X50\", \"HSS6X6X3/8\", \"L4X4X3/8\"", "maxLength": 40, "minLength": 1, "type": "string" }, "length_ft": { "description": "Optional piece length in feet, for a piece weight", "exclusiveMinimum": 0, "maximum": 500, "type": "number" }, "qty": { "description": "Optional piece count", "exclusiveMinimum": 0, "maximum": 10000, "type": "integer" } }, "required": [ "designation" ], "type": "object" }, "name": "steel_shape_weight", "outputSchema": null }, { "description": "Roll 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "members": { "description": "The member list to roll up, one line per mark/size", "items": { "properties": { "designation": { "description": "AISC designation, e.g. W21X50, L4X4X1/2, HSS6X6X3/8", "maxLength": 32, "type": "string" }, "length_ft": { "description": "Piece length, feet", "exclusiveMinimum": 0, "maximum": 10000, "type": "number" }, "qty": { "description": "Piece count", "exclusiveMinimum": 0, "maximum": 100000, "type": "integer" } }, "required": [ "designation", "length_ft", "qty" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" } }, "required": [ "members" ], "type": "object" }, "name": "steel_takeoff_weight", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2b9912ace66a88f10f6d30228abdbfecd9f5d8d7a941755b17b47c3e25486eb1 | sha256sum