The Roofing List MCP
An MCP server that allows AI assistants to search over 50,000 checked US roofers, siding, and gutter contractors by city. It is read-only, requires no login, and provides tools like search_contractors and get_contractor.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.theroofinglist.com/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for roofers by city
- Find siding contractors by location
- Locate gutter contractors by city
- Get contractor details
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- theroofinglist 0.1.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
2 advertised
search_contractors — Search contractors
Find roofing, siding or gutter contractors in a US city, or near a US ZIP code, from The Roofing List. Give city and state, or zip. A zip returns the nearest firms within 25 miles, nearest first. Returns only listed businesses that are open and passed our contact check. Ratings come from reviews published on The Roofing List only.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"trade"
],
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "A 5-digit US ZIP code, for example \"78701\". Returns the nearest firms within 25 miles, nearest first. With zip, city and state are ignored."
},
"city": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "US city name, for example \"Austin\". Give city and state, or zip."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "How many results, 1 to 25. Default 10."
},
"state": {
"type": "string",
"maxLength": 40,
"minLength": 2,
"description": "US state as a USPS code (\"TX\") or a full name (\"Texas\"). Give city and state, or zip."
},
"trade": {
"enum": [
"roofing",
"siding",
"gutters"
],
"type": "string",
"description": "The trade: roofing, siding or gutters."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contractors"
],
"properties": {
"contractors": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"trades",
"city",
"state",
"phone",
"profileUrl",
"claimed"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"type": "string"
},
"rating": {
"type": "object",
"required": [
"value",
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"value": {
"type": "number",
"description": "Average of published reviews on The Roofing List, 1 to 5."
}
},
"description": "From reviews published on The Roofing List only. Absent when there are none.",
"additionalProperties": false
},
"trades": {
"type": "array",
"items": {
"enum": [
"roofing",
"siding",
"gutters"
],
"type": "string"
}
},
"claimed": {
"type": "boolean"
},
"website": {
"type": "string",
"description": "Only present for claimed profiles."
},
"profileUrl": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_contractor — Get contractor
Get one contractor from The Roofing List by id. Returns nothing for a business that is closed or no longer listed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contractor id from search_contractors.",
"exclusiveMinimum": 0
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"name",
"trades",
"city",
"state",
"phone",
"profileUrl",
"claimed"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"type": "string"
},
"rating": {
"type": "object",
"required": [
"value",
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"value": {
"type": "number",
"description": "Average of published reviews on The Roofing List, 1 to 5."
}
},
"description": "From reviews published on The Roofing List only. Absent when there are none.",
"additionalProperties": false
},
"trades": {
"type": "array",
"items": {
"enum": [
"roofing",
"siding",
"gutters"
],
"type": "string"
}
},
"claimed": {
"type": "boolean"
},
"website": {
"type": "string",
"description": "Only present for claimed profiles."
},
"profileUrl": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1326 ms
- 95th percentile latency
- 1326 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1326 ms · metadata changed · 2 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http the-roofing-list-mcp https://mcp.theroofinglist.com/mcpCodex
codex mcp add the-roofing-list-mcp --url https://mcp.theroofinglist.com/mcpCursor
{
"mcpServers": {
"the-roofing-list-mcp": {
"url": "https://mcp.theroofinglist.com/mcp"
}
}
}Cline
{
"mcpServers": {
"the-roofing-list-mcp": {
"type": "streamableHttp",
"url": "https://mcp.theroofinglist.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"the-roofing-list-mcp": {
"type": "http",
"url": "https://mcp.theroofinglist.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http the-roofing-list-mcp https://mcp.theroofinglist.com/mcpClaude Desktop
https://mcp.theroofinglist.com/mcpWindsurf
{
"mcpServers": {
"the-roofing-list-mcp": {
"serverUrl": "https://mcp.theroofinglist.com/mcp"
}
}
}Let your agent find its tools
Find servers like The Roofing List MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.