{
  "openrpc": "1.2.6",
  "info": {
    "title": "TrafficThingz first-party agent server",
    "version": "1.0.0",
    "description": "Thin MCP server (5 read tools + 1 write tool) complementing Shopify's UCP shopping MCP at https://shop.trafficthingz.com/api/ucp/mcp — which owns cart, checkout and catalog search. Read tools answer from the same curated catalog the product pages render; the one write tool, request_quote, routes a real quote request to the human sales desk (PO / Net-30 / tax-exempt / volume; https://www.trafficthingz.com/contact is the equivalent form)."
  },
  "methods": [
    {
      "name": "get_capabilities",
      "summary": "Store capabilities and agent entry points — start here.",
      "params": [],
      "result": {
        "name": "capabilities",
        "schema": {
          "type": "object"
        }
      },
      "paramStructure": "by-name"
    },
    {
      "name": "check_mutcd_code",
      "summary": "Resolve an MUTCD sign code to its series category and the stocked products that carry it.",
      "params": [
        {
          "name": "code",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 2,
            "maxLength": 16,
            "description": "MUTCD code, e.g. R1-1, W20-1, OM3-L"
          }
        }
      ],
      "result": {
        "name": "lookup",
        "schema": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "known_category": {
              "type": [
                "object",
                "null"
              ]
            },
            "stocked": {
              "type": "boolean"
            },
            "products": {
              "type": "array"
            },
            "sheeting_grades": {
              "type": "array"
            },
            "compliance_guide": {
              "type": "string"
            }
          }
        }
      },
      "paramStructure": "by-name"
    },
    {
      "name": "get_product_specs",
      "summary": "One product's full spec block as markdown, byte-equal to its product-page .md twin.",
      "params": [
        {
          "name": "handle",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1,
            "maxLength": 121,
            "description": "Product handle, e.g. type-iii-barricade"
          }
        }
      ],
      "result": {
        "name": "specs_markdown",
        "schema": {
          "type": "string"
        }
      },
      "paramStructure": "by-name"
    },
    {
      "name": "recommend_sheeting",
      "summary": "Deterministic ASTM D4956 sheeting-grade recommendation from road context (speed, setting, overhead) — the buying guide's mapping, no model.",
      "params": [
        {
          "name": "speed_mph",
          "required": false,
          "schema": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        {
          "name": "setting",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "highway",
              "arterial",
              "collector",
              "local-street",
              "school-zone",
              "work-zone",
              "parking-lot",
              "private-property"
            ]
          }
        },
        {
          "name": "overhead",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        }
      ],
      "result": {
        "name": "recommendation",
        "schema": {
          "type": "object",
          "properties": {
            "recommended_grade": {
              "type": "string"
            },
            "why": {
              "type": "string"
            },
            "grade_details": {
              "type": [
                "object",
                "null"
              ]
            },
            "all_grades": {
              "type": "array"
            }
          }
        }
      },
      "paramStructure": "by-name"
    },
    {
      "name": "request_quote",
      "summary": "Submit a real quote request to the human sales desk (PO / Net-30 / tax-exempt / volume) — same pipeline as the website form; the desk replies to the buyer's email. Rate-limited; submit once.",
      "params": [
        {
          "name": "name",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1
          }
        },
        {
          "name": "email",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 200,
            "minLength": 5
          }
        },
        {
          "name": "phone",
          "required": false,
          "schema": {
            "type": "string",
            "maxLength": 40
          }
        },
        {
          "name": "organization",
          "required": false,
          "schema": {
            "type": "string",
            "maxLength": 200
          }
        },
        {
          "name": "ship_to",
          "required": false,
          "schema": {
            "type": "string",
            "maxLength": 300
          }
        },
        {
          "name": "needed_by",
          "required": false,
          "schema": {
            "type": "string",
            "maxLength": 100
          }
        },
        {
          "name": "purchase_method",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "Purchase order",
              "Net-30",
              "Credit card",
              "Tax-exempt",
              "Other"
            ]
          }
        },
        {
          "name": "message",
          "required": false,
          "schema": {
            "type": "string",
            "maxLength": 4000
          }
        },
        {
          "name": "items",
          "required": false,
          "schema": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "qty": {
                  "type": "number"
                },
                "price": {
                  "type": "number"
                },
                "options": {
                  "type": "string"
                }
              }
            }
          }
        }
      ],
      "result": {
        "name": "submission",
        "schema": {
          "type": "object",
          "properties": {
            "submitted": {
              "type": "boolean"
            },
            "desk_replies_to": {
              "type": "string"
            },
            "expect": {
              "type": "string"
            }
          }
        }
      },
      "paramStructure": "by-name"
    },
    {
      "name": "order_status",
      "summary": "Status for legacy (pre-2026) ledlighting-solutions.com orders — order number + the email on the order. Current-store orders are handed off to the customer-accounts page / Shopify's get_order.",
      "params": [
        {
          "name": "order",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 30
          }
        },
        {
          "name": "email",
          "required": true,
          "schema": {
            "type": "string",
            "maxLength": 200
          }
        }
      ],
      "result": {
        "name": "status",
        "schema": {
          "type": "object",
          "properties": {
            "found": {
              "type": "boolean"
            },
            "order": {
              "type": [
                "object",
                "null"
              ]
            },
            "customer_accounts": {
              "type": "string"
            }
          }
        }
      },
      "paramStructure": "by-name"
    }
  ]
}
