{
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "GlaziersEdge Knowledge",
    "title": "GlaziersEdge Knowledge",
    "version": "0.2.2",
    "description": "Cited US commercial glass & glazing reference for AI agents: code limits, glass performance data, glass and aluminum-framing equivalents, budget ranges.",
    "websiteUrl": "https://github.com/shanethelion/glazing-mcp",
    "icons": [
      {
        "src": "https://glazing-mcp.glazingkb.workers.dev/icon.svg",
        "mimeType": "image/svg+xml",
        "sizes": [
          "any"
        ]
      }
    ]
  },
  "description": "Cited US commercial glass & glazing reference for AI agents: code limits, glass performance data, glass and aluminum-framing equivalents, budget ranges.",
  "documentationUrl": "https://github.com/shanethelion/glazing-mcp",
  "iconUrl": "https://glazing-mcp.glazingkb.workers.dev/icon.svg",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://glazing-mcp.glazingkb.workers.dev/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "listChanged": false
    },
    "prompts": {
      "listChanged": false
    }
  },
  "authentication": {
    "required": false,
    "schemes": []
  },
  "license": "Proprietary service (all rights reserved); listing files CC BY-ND 4.0",
  "repository": {
    "url": "https://github.com/shanethelion/glazing-mcp",
    "source": "github"
  },
  "configSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "/.well-known/mcp-config",
    "title": "GlaziersEdge Knowledge configuration",
    "description": "Optional settings. The server works with no configuration.",
    "type": "object",
    "properties": {
      "detail_level": {
        "type": "string",
        "title": "Detail level",
        "description": "full (default) includes the confidence-tag legend in every text answer; brief omits the legend (tags stay on each item).",
        "enum": [
          "full",
          "brief"
        ],
        "default": "full",
        "x-from": {
          "query": "detail_level"
        }
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "instructions": "GlaziersEdge Knowledge: commercial glass & glazing reference knowledge base (32 topics, US national coverage, prepared Oct 2026).\nStart with search_glazing_knowledge for free-text questions, list_topics/get_topic to read full sections,\nlookup_glass_performance for makeup data, cross_reference_glass / cross_reference_aluminum_system for equivalents,\nand budget_price_range for [Expert] budget ranges. Every answer carries confidence tags ([V], [V-mfr], [UNVERIFIED],\n[inference], [Expert]); pass them on to the user. Reference info; verify with manufacturer data, local code, and a licensed professional.",
  "tools": [
    {
      "name": "list_topics",
      "title": "List glazing knowledge-base topics",
      "description": "List the 32 topics in the commercial glass & glazing knowledge base (glass types, safety glazing codes IBC 2406, storefront/curtain wall, energy codes IECC/ASHRAE 90.1/Title 24, fire-rated, hurricane/impact, wind load ASTM E1300, butt-glazed partitions, railings, sealants, testing, specs, warranties, discontinued products, glass performance data, aluminum system cross-reference, budget pricing). Returns topic numbers, titles, one-line summaries and UNVERIFIED counts. Call this first if you are unsure which topic covers a question. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_sections": {
            "description": "Also list every section id (e.g. 30.4) per topic. Default false.",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "list_topics",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "topic": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "Topic number 1-32."
                },
                "title": {
                  "type": "string"
                },
                "summary": {
                  "type": "string"
                },
                "unverified_count": {
                  "description": "Count of [UNVERIFIED] items in the topic.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "section_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "section_ids": {
                  "description": "Section ids (only when include_sections=true).",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "topic",
                "title",
                "summary",
                "unverified_count",
                "section_count"
              ],
              "additionalProperties": false
            },
            "description": "All topics in the knowledge base."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "results",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "get_topic",
      "title": "Read a topic or one section",
      "description": "Read the full text of a knowledge-base topic, or a single section of it, with tables and verification tags intact. Use after list_topics or search_glazing_knowledge when you need the complete context (e.g. a whole code table). `topic` accepts a number (30), 'T30', 'Topic 30', or a title phrase ('butt glazed'); `section` accepts a section id like '30.4', 'sources', 'key', or a heading phrase like 'summary table' or 'bid-day checklist'. Long topics are paged: follow the continue_from hint. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "description": "Topic number 1-32, 'T30', or a title phrase. Optional if `section` is a full id like '16.6'.",
            "type": [
              "string",
              "number"
            ]
          },
          "section": {
            "description": "Section id ('16.6', 'sources', 'key', '32-A') or heading words ('summary table').",
            "type": "string"
          },
          "continue_from": {
            "description": "Section id to resume paging a long topic from (given in the previous response).",
            "type": "string"
          },
          "max_chars": {
            "description": "Max characters to return (default 12000).",
            "type": "integer",
            "minimum": 1000,
            "maximum": 40000
          },
          "tables_as_records": {
            "description": "Also return section tables as JSON records (header -> value).",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "get_topic",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "topic": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "num": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "title": {
                    "type": "string"
                  },
                  "summary": {
                    "type": "string"
                  },
                  "unverified_count": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "source_file": {
                    "type": "string"
                  }
                },
                "required": [
                  "num",
                  "title",
                  "summary",
                  "unverified_count",
                  "source_file"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "The resolved topic, or null if none matched."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "section_id": {
                  "type": "string",
                  "description": "Section id, e.g. '30.4'."
                },
                "heading": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                },
                "markdown": {
                  "type": "string",
                  "description": "Section content as markdown (tables intact; may be truncated at max_chars)."
                }
              },
              "required": [
                "section_id",
                "heading",
                "tags",
                "markdown"
              ],
              "additionalProperties": false
            },
            "description": "Sections returned, in order."
          },
          "next_section": {
            "description": "If more sections remain, pass this as continue_from to page on.",
            "type": [
              "string",
              "null"
            ]
          },
          "available_sections": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "All section ids in the resolved topic (empty if none)."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "topic",
          "results",
          "next_section",
          "available_sections",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "search_glazing_knowledge",
      "title": "Search the glazing knowledge base",
      "description": "Keyword search (BM25 relevance ranking) across all 32 topics; returns the best-matching sections with cited snippets (topic + section id), relevant tables, and the verification tags present. Best for free-text questions: code requirements ('IBC 2406 hazardous locations', 'IECC 2021 zone 2 SHGC'), sizing rules ('max size 1/2 tempered butt glazed'), definitions ('LSG', 'heat soak'), estimating red flags, lead-time drivers, testing standards. Use specific technical keywords. For numeric glass makeup data use lookup_glass_performance; for product equivalents use cross_reference_glass / cross_reference_aluminum_system; for budget $ use budget_price_range. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 300,
            "description": "Keywords or a question, e.g. 'IECC 2021 zone 2 SHGC' or 'heat soak EN 14179 temperature'."
          },
          "limit": {
            "description": "Number of sections to return (default 5).",
            "type": "integer",
            "minimum": 1,
            "maximum": 10
          },
          "topics": {
            "description": "Restrict to these topic numbers.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 32
            }
          },
          "only_tag": {
            "description": "Only return sections containing this verification tag (e.g. 'Expert' for field experience, 'V' for verified).",
            "type": "string",
            "enum": [
              "V",
              "V-mfr",
              "UNVERIFIED",
              "inference",
              "Expert"
            ]
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "search_glazing_knowledge",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "query": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "topic": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "section_id": {
                  "type": "string"
                },
                "heading": {
                  "type": "string"
                },
                "citation": {
                  "type": "string",
                  "description": "Human-readable citation (topic and section)."
                },
                "score": {
                  "type": "number",
                  "description": "BM25 relevance score."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                },
                "snippet": {
                  "type": "string",
                  "description": "Matching excerpt (markdown)."
                }
              },
              "required": [
                "rank",
                "topic",
                "section_id",
                "heading",
                "citation",
                "score",
                "tags",
                "snippet"
              ],
              "additionalProperties": false
            },
            "description": "Ranked matching sections."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "query",
          "results",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "lookup_glass_performance",
      "title": "Look up glass makeup performance data",
      "description": "Filter manufacturer center-of-glass performance data for 1 in. insulating glass units: Vitro (Solarban 60/70/72/90/R67/R77/R100, Sungate 400, Solarcool, Vistacool on Clear/Starphire/Acuity/Solexia/Atlantica/Azuria/Solarblue/Pacifica/Solarbronze/Optigray/Solargray/Optiblue/Graylite II; 145 makeups), Guardian SunGuard (SNX 62/27, SNX 51/23, SNE 50/25, SN 68, SN 54, SNR 50/43/35 on UltraClear/Clear/Green/CrystalGray/Gray) and Viracon (VNG-5024, VNG-4022, VNE-53, VRE-4725, VRE-4423 by substrate). Returns VLT, exterior/interior reflectance, U (air/argon), SHGC, LSG, catalog status and tags. Filter by maker, product, substrate, or limits (e.g. max_shgc 0.25 to meet IECC CZ 2). Old names like 'Solarban 70XL' or 'Solarban 67' are mapped to current names. Values are COG, not NFRC whole-product ratings. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "maker": {
            "description": "Vitro (formerly PPG), Guardian, or Viracon.",
            "type": "string"
          },
          "product": {
            "description": "Coating/product, e.g. 'Solarban 70', 'SNX 62/27', 'VNE-53', or a family prefix like 'SNR' or 'Solarban R'.",
            "type": "string"
          },
          "substrate": {
            "description": "Glass substrate/tint, e.g. 'Clear', 'Starphire', 'low-iron', 'Solexia', 'Optigray', 'Gray', 'Green'.",
            "type": "string"
          },
          "min_vlt": {
            "description": "Minimum visible light transmittance %.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "max_vlt": {
            "description": "Maximum VLT %.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "max_shgc": {
            "description": "Maximum SHGC (air value when available, else argon).",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "max_u": {
            "description": "Maximum U-value (argon when available, else air), Btu/h·ft²·°F.",
            "type": "number",
            "minimum": 0,
            "maximum": 2
          },
          "min_lsg": {
            "description": "Minimum light-to-solar-gain ratio.",
            "type": "number",
            "minimum": 0,
            "maximum": 3
          },
          "include_discontinued": {
            "description": "Include discontinued/not-available makeups (default true).",
            "type": "boolean"
          },
          "sort_by": {
            "description": "Sort: vlt (high first), shgc (low first), lsg (high first), u (low first).",
            "type": "string",
            "enum": [
              "vlt",
              "shgc",
              "lsg",
              "u"
            ]
          },
          "limit": {
            "description": "Max rows (default 15).",
            "type": "integer",
            "minimum": 1,
            "maximum": 60
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "lookup_glass_performance",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "total_matches": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Matches before the limit was applied."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "maker": {
                  "type": "string"
                },
                "product": {
                  "type": "string"
                },
                "substrate": {
                  "type": "string"
                },
                "makeup": {
                  "type": "string"
                },
                "vlt": {
                  "description": "Visible light transmittance %.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "rout": {
                  "description": "Exterior reflectance %.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "rin": {
                  "description": "Interior reflectance %.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "u_air": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "u_argon": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "shgc_air": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "shgc_argon": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "lsg_air": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "lsg_argon": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "status": {
                  "type": "string",
                  "description": "Catalog status (current, discontinued, ...)."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                }
              },
              "required": [
                "maker",
                "product",
                "substrate",
                "makeup",
                "vlt",
                "rout",
                "rin",
                "u_air",
                "u_argon",
                "shgc_air",
                "shgc_argon",
                "lsg_air",
                "lsg_argon",
                "status",
                "tags"
              ],
              "additionalProperties": false
            },
            "description": "Center-of-glass data for 1 in. IGU makeups (not NFRC whole-product)."
          },
          "basis": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Data basis and source notes."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "total_matches",
          "results",
          "basis",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "cross_reference_glass",
      "title": "Find equivalent glass coatings across makers",
      "description": "Given a glass coating/product (e.g. 'SNX 62/27', 'Solarban 70', 'SN 68', 'VNE-53', or an old name like 'Solarban 70XL'), return equivalents from other makers with a match rating (Close / Approximate / Not supported by the numbers). Uses (1) the KB's Guardian↔Vitro chart with tested deltas (Topic 32 §32.9), (2) computed nearest makeups across Vitro, Guardian and Viracon on the same substrate color family using the KB rating rule, and (3) Topic 29 renamed/discontinued notices. Use for 'or-equal' and substitution screening (e.g. 'SNX 62/27 Vitro equivalent'). Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120,
            "description": "Source glass product, e.g. 'SNX 62/27' or 'Guardian SN 68' or 'Solarban R100'."
          },
          "substrate": {
            "description": "Substrate of the source makeup, e.g. 'Clear', 'UltraClear', 'Starphire', 'Gray'. Default: clear.",
            "type": "string"
          },
          "target_maker": {
            "description": "Only show equivalents from this maker: Vitro, Guardian, or Viracon.",
            "type": "string"
          },
          "include_discontinued": {
            "description": "Include discontinued makeups among computed matches (default false).",
            "type": "boolean"
          },
          "limit": {
            "description": "Max computed matches per source makeup (default 5).",
            "type": "integer",
            "minimum": 1,
            "maximum": 15
          }
        },
        "required": [
          "product"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "cross_reference_glass",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "product": {
            "type": "string",
            "description": "Source product as interpreted."
          },
          "chart_equivalents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "direction": {
                  "type": "string"
                },
                "guardian_product": {
                  "type": "string"
                },
                "guardian_substrate": {
                  "type": "string"
                },
                "guardian_values": {
                  "type": "string"
                },
                "vitro_equivalent": {
                  "type": "string"
                },
                "vitro_makeup": {
                  "type": "string"
                },
                "vitro_values": {
                  "type": "string"
                },
                "deltas": {
                  "type": "string"
                },
                "match_rating": {
                  "type": "string",
                  "description": "Close | Approximate | Not supported by the numbers."
                },
                "vitro_status": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                }
              },
              "required": [
                "direction",
                "guardian_product",
                "guardian_substrate",
                "guardian_values",
                "vitro_equivalent",
                "vitro_makeup",
                "vitro_values",
                "deltas",
                "match_rating",
                "vitro_status",
                "tags"
              ],
              "additionalProperties": false
            },
            "description": "Guardian-to-Vitro chart equivalents from Topic 32 §32.9."
          },
          "computed_equivalents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source": {
                  "type": "object",
                  "properties": {
                    "maker": {
                      "type": "string"
                    },
                    "product": {
                      "type": "string"
                    },
                    "substrate": {
                      "type": "string"
                    },
                    "makeup": {
                      "type": "string"
                    },
                    "vlt": {
                      "description": "Visible light transmittance %.",
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "rout": {
                      "description": "Exterior reflectance %.",
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "rin": {
                      "description": "Interior reflectance %.",
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "u_air": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "u_argon": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "shgc_air": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "shgc_argon": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "lsg_air": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "lsg_argon": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "description": "Catalog status (current, discontinued, ...)."
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                    }
                  },
                  "required": [
                    "maker",
                    "product",
                    "substrate",
                    "makeup",
                    "vlt",
                    "rout",
                    "rin",
                    "u_air",
                    "u_argon",
                    "shgc_air",
                    "shgc_argon",
                    "lsg_air",
                    "lsg_argon",
                    "status",
                    "tags"
                  ],
                  "additionalProperties": false
                },
                "substrate_family": {
                  "type": "string"
                },
                "matches": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "maker": {
                        "type": "string"
                      },
                      "product": {
                        "type": "string"
                      },
                      "substrate": {
                        "type": "string"
                      },
                      "makeup": {
                        "type": "string"
                      },
                      "vlt": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "rout": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "shgc": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "delta_vlt": {
                        "type": "number"
                      },
                      "delta_shgc": {
                        "type": "number"
                      },
                      "delta_rout": {
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "shgc_basis": {
                        "type": "string"
                      },
                      "match_rating": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                      }
                    },
                    "required": [
                      "maker",
                      "product",
                      "substrate",
                      "makeup",
                      "vlt",
                      "rout",
                      "shgc",
                      "delta_vlt",
                      "delta_shgc",
                      "delta_rout",
                      "shgc_basis",
                      "match_rating",
                      "status",
                      "tags"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "source",
                "substrate_family",
                "matches"
              ],
              "additionalProperties": false
            },
            "description": "Nearest equivalents computed from published center-of-glass numbers [inference]."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "product",
          "chart_equivalents",
          "computed_equivalents",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "cross_reference_aluminum_system",
      "title": "Find equivalent aluminum framing systems",
      "description": "Given an aluminum storefront, curtain wall, entrance door, window, interior or specialty framing series (e.g. 'Kawneer Trifab 451', '451T', '1600 Wall System 1', 'Tubelite E14000', 'YKK YES 45 TU', 'EFCO 403', 'Trifab 400'), return the equivalent series from Arcadia, OBE, Kawneer, Tubelite, EFCO/Wausau, YKK AP, CRL-U.S. Aluminum and Manko for the same family (54-row Topic 28 cross-reference), with basis (face x depth, glazing plane, thermal), Verified/Flagged status, notes, and Topic 29 discontinued-series notices. Equivalent does not mean identical: always check depth, plane, glass thickness, thermal tier, performance. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "series": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Series name/number, optionally with maker, e.g. 'Kawneer Trifab 451' or '6 in. thermal storefront'."
          },
          "maker": {
            "description": "Maker of the source series if not in `series` (Kawneer, Tubelite, EFCO, Wausau, YKK AP, Arcadia, OBE, CRL-U.S. Aluminum, Manko).",
            "type": "string"
          },
          "category": {
            "description": "Optional filter: 'Storefront', '6in', 'Curtain Wall', 'Entrances', 'Windows', 'Interior', 'Specialty'.",
            "type": "string"
          },
          "limit": {
            "description": "Max matching families (default 3).",
            "type": "integer",
            "minimum": 1,
            "maximum": 8
          }
        },
        "required": [
          "series"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "cross_reference_aluminum_system",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "series": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "category": {
                  "type": "string"
                },
                "family": {
                  "type": "string"
                },
                "basis": {
                  "type": "string"
                },
                "row_status": {
                  "type": "string",
                  "description": "Verified or Flagged."
                },
                "matched_maker": {
                  "type": "string"
                },
                "matched_text": {
                  "type": "string"
                },
                "equivalents": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "maker": {
                        "type": "string"
                      },
                      "series": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                      }
                    },
                    "required": [
                      "maker",
                      "series",
                      "tags"
                    ],
                    "additionalProperties": false
                  }
                },
                "row_notes": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                }
              },
              "required": [
                "category",
                "family",
                "basis",
                "row_status",
                "matched_maker",
                "matched_text",
                "equivalents",
                "row_notes",
                "tags"
              ],
              "additionalProperties": false
            },
            "description": "Matching equivalency families with each maker's equivalent series."
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "series",
          "results",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    },
    {
      "name": "budget_price_range",
      "title": "Budget price ranges ([Expert], not for bidding)",
      "description": "Return 2026 US installed budget SELL price ranges from an experienced commercial glazing estimator ([Expert]) for a scope item: storefront, curtain wall, windows, all-glass walls/doors, folding walls, skylights, fire-rated glass/framing, entrance doors and operators, automatic sliders, glass handrails, mirrors, films, ballistic/storm-shelter glazing, sunshades, mock-ups. Units per SF, LF, each, or LS. Budget/sanity-check use only, never for bids; ranges vary by region, scope and market. Optionally include low-reliability public cross-checks. Responses keep the KB's confidence tags: [V] verified, [V-mfr] manufacturer claim, [UNVERIFIED], [inference], [Expert] field experience.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "maxLength": 200,
            "description": "Scope item, e.g. 'exterior storefront', 'curtain wall', 'all-glass door pair', '60-min fire-rated', 'glass railing stairs'. Empty string lists all."
          },
          "include_public_crosschecks": {
            "description": "Also include public cross-check figures (blog/HomeGuide) with reliability notes.",
            "type": "boolean"
          },
          "limit": {
            "description": "Max rows (default 8).",
            "type": "integer",
            "minimum": 1,
            "maximum": 43
          }
        },
        "required": [
          "scope"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "const": "budget_price_range",
            "description": "Tool that produced this result."
          },
          "result_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Number of results/records returned."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Notices: renamed/discontinued products, hints, flags. May be empty."
          },
          "scope": {
            "type": "string"
          },
          "header": {
            "type": "string",
            "description": "Basis of the budget ranges."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "item": {
                  "type": "string"
                },
                "range": {
                  "type": "string"
                },
                "low": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "high": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "unit": {
                  "type": "string"
                },
                "group": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "description": "expert or public-crosscheck."
                },
                "reliability": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Confidence tags on this item: V, V-mfr, UNVERIFIED, inference, Expert."
                }
              },
              "required": [
                "item",
                "range",
                "low",
                "high",
                "unit",
                "group",
                "kind",
                "reliability",
                "tags"
              ],
              "additionalProperties": false
            }
          },
          "caveats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "disclaimer": {
            "type": "string",
            "description": "Reference-only disclaimer that applies to every answer."
          }
        },
        "required": [
          "tool",
          "result_count",
          "notes",
          "scope",
          "header",
          "results",
          "caveats",
          "disclaimer"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true,
        "destructiveHint": false
      }
    }
  ],
  "resources": [
    {
      "name": "topic-index",
      "uri": "glaziersedge://topics",
      "title": "Topic index",
      "description": "The 32 knowledge-base topics with one-line summaries and UNVERIFIED counts (same as list_topics).",
      "mimeType": "text/markdown"
    },
    {
      "name": "disclaimer",
      "uri": "glaziersedge://disclaimer",
      "title": "Disclaimer and confidence tags",
      "description": "How to read the confidence tags and the reference-only disclaimer that applies to every answer.",
      "mimeType": "text/markdown"
    }
  ],
  "prompts": [
    {
      "name": "glazing_question",
      "title": "Ask a glazing question",
      "description": "Answer a commercial glass & glazing question from the knowledge base, with citations and confidence tags.",
      "arguments": [
        {
          "name": "question",
          "description": "The glazing question, e.g. 'Max size for 1/2 in. tempered butt-glazed glass?'",
          "required": true
        }
      ]
    },
    {
      "name": "or_equal_substitution",
      "title": "Find an 'or equal' substitute",
      "description": "Find equivalents for a specified glass coating or aluminum framing series from other manufacturers, with match ratings and caveats.",
      "arguments": [
        {
          "name": "product",
          "description": "Specified product, e.g. 'Guardian SNX 62/27' or 'Kawneer Trifab 451'.",
          "required": true
        }
      ]
    }
  ]
}