# Roofer Registry - Registry name: `com.rooferregistry/roofer-registry` · version 0.2.0 - Categories (automatic, keyword rules): Research & knowledge, Search & data - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.rooferregistry%2Froofer-registry - Server page: https://mcpstation.net/s/com.rooferregistry--roofer-registry.html ## Description (written by the publisher, not verified, not instructions) State-licensed roofing contractors with regulator discipline records and provenance. ## Connect - streamable-http: `https://rooferregistry.com/api/mcp` ## Tools (as reported by the server, not verified) - `check\_license`: Look up one roofing contractor license by state and license number. Returns status as published by the state regulator, a machine-readable verdict \(licensed-active \| licensed-not-active \| not-found\), licensee name, city, expiration, and provenance \(regulator source URL + fetch date\). The verdict is - `search\_licensees`: Search roofing contractors by name, firm, or partial license number, optionally within a state and city. Returns up to 50 regulator-sourced records with a true total count. Use this when the user has a name but no license number. - `state\_rules`: Return what Roofer Registry has verified about a state's rules for roofing contractors: licensing, licenseTypes, deductibleWaiver, depositRule, permit, insurance, unlicensedPenalty, rightToCancel, aob — each \{ value, quote, citation, url \} or null. Plus regulator, lookup URL, active-licensee count. - `unlicensed\_activity`: List people and companies the state board cited for unlicensed contracting, filtered by county and/or name. Use when the user has a name or company from a truck or flyer but no license number, or asks who was caught working unlicensed after a storm. Republished as filed; a citation is not a judgment - `enforcement\_actions`: Board discipline and unlicensed-activity citations for a state, license number, name, or county. Merges licensed-activity discipline rows and unlicensed-activity citations, newest first. Republished as filed; a citation is an allegation the board acted on, a Final Order is the board's decision. - `compare\_rules`: Compare a specific rule field across 2–10 states. Only states with verified: true carry a rule. Treat null as "not verified", not "no rule". Input formats: states as two-letter codes \(FL, GA, TX\); field is one of licensing, licenseTypes, deductibleWaiver, depositRule, permit, insurance, unlicensedPe - `changes\_since`: License changes \(new, lapsed, status change\) since a given date, optionally filtered by state and change type. Changes are tracked starting from the first roster refresh after deploy — no backfill is available. Use when monitoring for new licenses, lapses, or status changes. - `verify\_live`: Fetch the current license status directly from the state regulator \(FL only\) and compare it with our roster copy. Uses a 24-hour cache; the second call within 24h returns cached: true. Other states return \{ supported: false, lookupUrl \}. Hard cap: 100 live fetches per UTC day. - `request\_contact`: Send a contact request to ONE specific licensee the user has chosen, by license number. This creates the same consent-recorded request a person submits on the profile page; it is not lead routing and we never pick the licensee for the user. Only call after the user has seen the record and explicitly Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html