{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"get_business_facts","title":"Commercial Garage Doorman: business facts","description":"The published facts about Commercial Garage Doorman: what it does, the phone number, opening hours, the towns it serves, its services, and how it handles pricing. Every fact here also appears on the public website. Call this first.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"search","title":"Search Commercial Garage Doorman","description":"Keyword search over the pages of the Commercial Garage Doorman website. Returns page ids, titles and canonical URLs. Use fetch with an id to read a page.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Plain words to look for, for example \"broken spring\" or \"vinyl plank basement\"."}},"required":["query"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","title","url"]}}},"required":["results"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"fetch","title":"Read a page from Commercial Garage Doorman","description":"The full text of one page of the Commercial Garage Doorman website, as Markdown, with its canonical URL for citation. The id comes from search.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"A page id returned by search."}},"required":["id"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string"},"metadata":{"type":"object"}},"required":["id","title","text","url"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"request_quote","title":"Ask Commercial Garage Doorman for a quote or a callback","description":"Ask Commercial Garage Doorman to contact a facility manager, property manager, contractor or business owner about commercial or industrial doors: a repair, doors for a new building, a replacement, a maintenance program or dock equipment. Not for houses, and not for a door that is stuck open right now: that is a phone call. This sends a REAL message to a real small business, so call it only when the person has clearly asked to be contacted by Commercial Garage Doorman and has given you their own name and their own phone number or email. Never guess or invent contact details. Plain words only, no links. One request per person per day. If it is urgent, give them the phone number instead: (905) 536-5369.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The customer's own name."},"phone":{"type":"string","description":"The customer's phone number, ten digits. Give this or email."},"email":{"type":"string","description":"The customer's email address. Give this or phone."},"town":{"type":"string","description":"Town or postal code where the work is."},"service":{"type":"string","enum":["repair","new-construction","replacement","maintenance","dock","other"],"description":"What they need: repair = a repair or service call; new-construction = doors for a new building; replacement = replacing an existing door; maintenance = a planned maintenance program; dock = dock levellers, seals or bumpers; other = something else."},"details":{"type":"string","description":"What they need, in the customer's own terms. Plain text, no links, 800 characters at most."},"preferred_time":{"type":"string","description":"When they would like to be contacted or visited, if they said."},"consent_to_contact":{"type":"boolean","description":"Must be true: the customer has asked to be contacted by this business about this request."}},"required":["name","details","consent_to_contact"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}}]}}