Find a contractor for sprinkler inspection and installation.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one published sprinkler contractor by its slug.
The listing slug.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http firesprinklers https://firesprinklers.fyi/mcp
Get one published sprinkler contractor by its slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "The listing slug."
}
},
"additionalProperties": false
}Get the number of published sprinkler contractors, places and categories, and when the data last changed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List categories with their sprinkler contractor counts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List countries, regions and cities that have sprinkler contractors.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List where the sprinkler contractor data comes from, with the license and refresh of each source.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search published sprinkler contractors by text, place and category.
| Argument | Type | Description |
|---|---|---|
| q | string | Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches. |
| city | string | City slug, from /places. |
| sort | string | `relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first. |
| limit | integer | Items per page. |
| cursor | string | `page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`. |
| region | string | Region slug, from /places. |
| country | string | ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400. |
| category | string | Category slug, from /categories. A parent slug also matches its children. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches."
},
"city": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "City slug, from /places."
},
"sort": {
"enum": [
"relevance",
"name",
"recent"
],
"type": "string",
"description": "`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Items per page."
},
"cursor": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`."
},
"region": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Region slug, from /places."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400."
},
"category": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Category slug, from /categories. A parent slug also matches its children."
}
},
"additionalProperties": false
}