The Roofing List
Find checked US roofers, siding and gutter contractors by city. Read-only, no login.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"the-roofing-list": {
"url": "https://mcp.theroofinglist.com/mcp"
}
}
}Remote endpoints
https://mcp.theroofinglist.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢search_contractors(trade, city, state, limit)
Find roofing, siding or gutter contractors in a US city from The Roofing List. Returns only listed businesses that are open and passed our contact check. Ratings come from reviews published on The Roofing List only.
Input Schema
{
"type": "object",
"properties": {
"trade": {
"type": "string",
"enum": [
"roofing",
"siding",
"gutters"
],
"description": "The trade: roofing, siding or gutters."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "US city name, for example \"Austin\"."
},
"state": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "US state as a USPS code (\"TX\") or a full name (\"Texas\")."
},
"limit": {
"description": "How many results, 1 to 25. Default 10.",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"trade",
"city",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"contractors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"name": {
"type": "string"
},
"trades": {
"type": "array",
"items": {
"type": "string",
"enum": [
"roofing",
"siding",
"gutters"
]
}
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"profileUrl": {
"type": "string"
},
"claimed": {
"type": "boolean"
},
"website": {
"description": "Only present for claimed profiles.",
"type": "string"
},
"rating": {
"description": "From reviews published on The Roofing List only. Absent when there are none.",
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Average of published reviews on The Roofing List, 1 to 5."
},
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"value",
"count"
],
"additionalProperties": false
}
},
"required": [
"id",
"name",
"trades",
"city",
"state",
"phone",
"profileUrl",
"claimed"
],
"additionalProperties": false
}
}
},
"required": [
"contractors"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_contractor(id)
Get one contractor from The Roofing List by id. Returns nothing for a business that is closed or no longer listed.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The contractor id from search_contractors."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"name": {
"type": "string"
},
"trades": {
"type": "array",
"items": {
"type": "string",
"enum": [
"roofing",
"siding",
"gutters"
]
}
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"profileUrl": {
"type": "string"
},
"claimed": {
"type": "boolean"
},
"website": {
"description": "Only present for claimed profiles.",
"type": "string"
},
"rating": {
"description": "From reviews published on The Roofing List only. Absent when there are none.",
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "Average of published reviews on The Roofing List, 1 to 5."
},
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"value",
"count"
],
"additionalProperties": false
}
},
"required": [
"id",
"name",
"trades",
"city",
"state",
"phone",
"profileUrl",
"claimed"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence