Steady Steel

Quotes laser-cut steel, stainless and aluminum plate and catalog products. Newmarket, Ontario.

我該用這個嗎

品質與安全性

A
說明品質
97%
結構描述完整度
65%
命名品質
94%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,167Token(工具定義)
~3.4 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.47%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "steady-steel": {
      "url": "https://www.steadysteel.org/mcp"
    }
  }
}

遠端端點

https://www.steadysteel.org/mcpstreamable-http

它能做什麼

工具清單

工具(7)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢list_materials

List the plate materials Steady Steel laser cuts, each with every thickness sold in it (thickness_in, inches), whether it is stocked, and a lead time in business days. Call it before quote_plate: a plate quote takes a material id and a thickness_in exactly as listed here. Empty while plate is not quoted online.

輸入結構描述

{
  "type": "object",
  "properties": {}
}
🟢search_products(query)

Find the pre-designed steel products Steady Steel sells on steadysteel.org/products, by words in their name or description; send no query to list them all. Each lists its tiers: kit (the steel cut to our drawings) and welded (built in our shop), with a firm unit price in CAD cents before HST. Only a tier marked orderable can be quoted. Freight on a kit or a welded unit is quoted by Steady Steel after the order.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "anyOf": [
        {
          "maxLength": 80,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  }
}
🟡quote_plate(bends, holes, label, material, outline, ...)

Price one flat plate of steel, stainless or aluminum, laser cut to an outline with holes, slots and bends, at a firm price from the engine behind the plate quoter on steadysteel.org. Every length is inches, +x right and +y up. material and thickness_in must be exactly as list_materials gives them. The outline is a rectangle, circle, ring (a washer) or polygon; holes and bends use its frame, and for a rectangle, circle or ring the origin is the lower-left corner of the box around it. quantity is how many (1 to 999), and quantity_options prices up to five other quantities. A part that cannot be made as asked comes back blocked, with an issue saying why: change it and quote again. Amounts are CAD cents with HST as its own figure, firm until expires_at. Show the person the drawing at preview_url. Nothing is bought here: to order, make a link with create_handoff_link and give it to the person, who checks the part and pays on steadysteel.org.

輸入結構描述

{
  "type": "object",
  "properties": {
    "bends": {
      "items": {
        "additionalProperties": false,
        "description": "A straight fold across the whole part, on the line through start_in\nand end_in ([x, y] in the item's frame; any two points on the line).\nangle_deg is how far it folds: 90 is a square bend. direction is up (a\nmountain fold seen from above) or down (a valley fold); it does not\nchange the price.",
        "properties": {
          "angle_deg": {
            "default": 90,
            "exclusiveMinimum": 0,
            "maximum": 180,
            "type": "number"
          },
          "direction": {
            "default": "up",
            "enum": [
              "up",
              "down"
            ],
            "type": "string"
          },
          "end_in": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              }
            ],
            "type": "array"
          },
          "start_in": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              }
            ],
            "type": "array"
          }
        },
        "required": [
          "start_in",
          "end_in"
        ],
        "type": "object"
      },
      "maxItems": 10,
      "type": "array"
    },
    "holes": {
      "items": {
        "oneOf": [
          {
            "additionalProperties": false,
            "description": "One round hole diameter_in across, centred at (x_in, y_in).",
            "properties": {
              "diameter_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "kind": {
                "const": "single",
                "type": "string"
              },
              "x_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "y_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "kind",
              "x_in",
              "y_in",
              "diameter_in"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "description": "count round holes in a row. The first is centred at\n(start_x_in, start_y_in) and each one after it is spacing_in further\nalong angle_deg: 0 runs right, 90 runs up.",
            "properties": {
              "angle_deg": {
                "default": 0,
                "maximum": 360,
                "minimum": -360,
                "type": "number"
              },
              "count": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "diameter_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "kind": {
                "const": "linear",
                "type": "string"
              },
              "spacing_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "start_x_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "start_y_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "kind",
              "start_x_in",
              "start_y_in",
              "count",
              "spacing_in",
              "diameter_in"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "description": "A grid of round holes, columns across and rows up, centred on\n(center_x_in, center_y_in). The spacings are centre to centre, and\nrotation_deg turns the whole grid about its centre, counter-clockwise.",
            "properties": {
              "center_x_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "center_y_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "columns": {
                "maximum": 50,
                "minimum": 1,
                "type": "integer"
              },
              "diameter_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "kind": {
                "const": "grid",
                "type": "string"
              },
              "rotation_deg": {
                "default": 0,
                "maximum": 360,
                "minimum": -360,
                "type": "number"
              },
              "rows": {
                "maximum": 50,
                "minimum": 1,
                "type": "integer"
              },
              "x_spacing_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "y_spacing_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              }
            },
            "required": [
              "kind",
              "center_x_in",
              "center_y_in",
              "columns",
              "rows",
              "x_spacing_in",
              "y_spacing_in",
              "diameter_in"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "description": "count round holes spaced evenly on a circle bolt_circle_diameter_in\nacross, centred on (center_x_in, center_y_in). The first hole sits at\nstart_angle_deg, counter-clockwise from +x.",
            "properties": {
              "bolt_circle_diameter_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "center_x_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "center_y_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "count": {
                "maximum": 100,
                "minimum": 2,
                "type": "integer"
              },
              "diameter_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "kind": {
                "const": "bolt_circle",
                "type": "string"
              },
              "start_angle_deg": {
                "default": 0,
                "maximum": 360,
                "minimum": -360,
                "type": "number"
              }
            },
            "required": [
              "kind",
              "center_x_in",
              "center_y_in",
              "count",
              "bolt_circle_diameter_in",
              "diameter_in"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "description": "A slot with round ends, width_in across and length_in from tip to\ntip, centred on (center_x_in, center_y_in). angle_deg turns its long\naxis counter-clockwise from +x.",
            "properties": {
              "angle_deg": {
                "default": 0,
                "maximum": 360,
                "minimum": -360,
                "type": "number"
              },
              "center_x_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "center_y_in": {
                "maximum": 120,
                "minimum": 0,
                "type": "number"
              },
              "kind": {
                "const": "slot",
                "type": "string"
              },
              "length_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              },
              "width_in": {
                "exclusiveMinimum": 0,
                "maximum": 120,
                "type": "number"
              }
            },
            "required": [
              "kind",
              "center_x_in",
              "center_y_in",
              "width_in",
              "length_in"
            ],
            "type": "object"
          }
        ]
      },
      "maxItems": 200,
      "type": "array"
    },
    "label": {
      "anyOf": [
        {
          "maxLength": 60,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "material": {
      "enum": [
        "mild_steel",
        "stainless_304",
        "stainless_316",
        "aluminum_6061"
      ],
      "type": "string"
    },
    "outline": {
      "oneOf": [
        {
          "additionalProperties": false,
          "description": "A rectangle width_in across and height_in up, its lower-left corner\non the origin.",
          "properties": {
            "height_in": {
              "exclusiveMinimum": 0,
              "maximum": 120,
              "type": "number"
            },
            "kind": {
              "const": "rectangle",
              "type": "string"
            },
            "width_in": {
              "exclusiveMinimum": 0,
              "maximum": 120,
              "type": "number"
            }
          },
          "required": [
            "kind",
            "width_in",
            "height_in"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "A round plate diameter_in across. The origin is the lower-left\ncorner of the square around it, so the centre is at\n(diameter_in / 2, diameter_in / 2).",
          "properties": {
            "diameter_in": {
              "exclusiveMinimum": 0,
              "maximum": 120,
              "type": "number"
            },
            "kind": {
              "const": "circle",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "diameter_in"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "A washer: a round plate with a round bore on the same centre. The\norigin is the lower-left corner of the square around it. The wall,\nhalf the difference of the two diameters, must be at least 1/8 in.",
          "properties": {
            "inner_diameter_in": {
              "exclusiveMinimum": 0,
              "maximum": 120,
              "type": "number"
            },
            "kind": {
              "const": "ring",
              "type": "string"
            },
            "outer_diameter_in": {
              "exclusiveMinimum": 0,
              "maximum": 120,
              "type": "number"
            }
          },
          "required": [
            "kind",
            "outer_diameter_in",
            "inner_diameter_in"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "description": "A straight-sided outline: its corners in order around the part,\neither way round, each [x, y] in inches, 3 to 200 of them. The outline\ncloses itself; a last corner that repeats the first is dropped. The\ncorners set the frame, and the item's holes and bends use it too.",
          "properties": {
            "kind": {
              "const": "polygon",
              "type": "string"
            },
            "points_in": {
              "items": {
                "maxItems": 2,
                "minItems": 2,
                "prefixItems": [
                  {
                    "maximum": 120,
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "maximum": 120,
                    "minimum": 0,
                    "type": "number"
                  }
                ],
                "type": "array"
              },
              "maxItems": 200,
              "minItems": 3,
              "type": "array"
            }
          },
          "required": [
            "kind",
            "points_in"
          ],
          "type": "object"
        }
      ]
    },
    "quantity": {
      "default": 1,
      "maximum": 999,
      "minimum": 1,
      "type": "integer"
    },
    "quantity_options": {
      "items": {
        "maximum": 999,
        "minimum": 1,
        "type": "integer"
      },
      "maxItems": 5,
      "type": "array"
    },
    "thickness_in": {
      "exclusiveMinimum": 0,
      "maximum": 4,
      "type": "number"
    }
  },
  "required": [
    "material",
    "thickness_in",
    "outline"
  ]
}
🟡quote_product(label, quantity, quantity_options, slug, tier)

Price a catalog product at its firm unit price: the slug and a tier from search_products (kit or welded), only a tier marked orderable. quantity is 1 to 50. Amounts are CAD cents before HST, with HST as its own figure. Freight is quoted by Steady Steel after the order and is not in the quote. Nothing is bought here: to order, make a link with create_handoff_link and give it to the person, who orders and pays on steadysteel.org.

輸入結構描述

{
  "type": "object",
  "properties": {
    "label": {
      "anyOf": [
        {
          "maxLength": 60,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quantity": {
      "default": 1,
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "quantity_options": {
      "items": {
        "maximum": 50,
        "minimum": 1,
        "type": "integer"
      },
      "maxItems": 5,
      "type": "array"
    },
    "slug": {
      "maxLength": 80,
      "pattern": "^[A-Za-z0-9_-]{1,80}$",
      "type": "string"
    },
    "tier": {
      "enum": [
        "kit",
        "welded"
      ],
      "type": "string"
    }
  },
  "required": [
    "slug",
    "tier"
  ]
}
🟢get_quote(quote_id)

Get a quote quote_plate or quote_product made, by its id, exactly as it was priced. Its status reads expired once it is past expires_at: ask for a new quote then. A quote is kept 30 days past its expiry.

輸入結構描述

{
  "type": "object",
  "properties": {
    "quote_id": {
      "maxLength": 64,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "quote_id"
  ]
}
🟡create_handoff_link(quote_ids)

Make the link the person orders from: one page on steadysteel.org showing what was quoted, with a button for each item that opens the page selling it (a plate in the plate quoter, a product on its order page), where they check it and pay. Takes one to ten quote ids, each ready and unexpired, with ten items at most across them. Give the person the url. Anyone holding it can open the page, so give it only to them. Nothing is paid through this server.

輸入結構描述

{
  "type": "object",
  "properties": {
    "quote_ids": {
      "items": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "type": "array"
    }
  },
  "required": [
    "quote_ids"
  ]
}
🟡create_rfq_link(description, material, quantity, thickness_in)

For work quote_plate and quote_product cannot price (a part from a drawing, a weldment, a repair, plate past the laser): describe the job in words, sizes in inches, and get a link to Steady Steel's quote request form with it filled in. The person adds their own name and contact details there and sends it; Steady Steel replies with a price. Send nothing about the person: a name, email or phone field, or a description carrying a link, a web or email address or a phone number, is refused. The link works for 30 days.

輸入結構描述

{
  "type": "object",
  "properties": {
    "description": {
      "maxLength": 2000,
      "minLength": 1,
      "type": "string"
    },
    "material": {
      "anyOf": [
        {
          "maxLength": 60,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "quantity": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "thickness_in": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "maximum": 12,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "description"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本7 個工具