Who Do I Call For? — Emergency Home-Service Router
Routes home emergencies to the right trade: who to call in what order, first steps, sourced costs.
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": {
"whodoicallfor": {
"url": "https://whodoicallfor.com/api/mcp/"
}
}
}Remote endpoints
https://whodoicallfor.com/api/mcp/streamable-httpWhat it can do
Tool inventory
Tools (3)
🟢route_emergency(problem, state)
Given a home emergency described in plain words (e.g. "water coming through my ceiling"), returns the matching situation(s): who to call and in what order, first steps, typical costs, and a 24/7 dispatch phone number when one is available for the service vertical. Optionally pass a US state for region-aware dispatch numbers.
Input Schema
{
"type": "object",
"properties": {
"problem": {
"type": "string",
"description": "The user's problem in plain words"
},
"state": {
"type": "string",
"description": "Optional US state code or name, e.g. \"FL\" or \"Florida\""
}
},
"required": [
"problem"
]
}Output Schema
{
"type": "object",
"properties": {
"matches": {
"type": "array",
"description": "Matching situations, best first; empty when no confident match",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"category": {
"type": "string"
},
"vertical": {
"type": [
"string",
"null"
]
},
"tldr": {
"type": "string"
},
"who_to_call": {
"type": "array",
"items": {
"type": "object",
"properties": {
"who": {
"type": "string"
},
"when": {
"type": "string"
},
"not_for": {
"type": [
"string",
"null"
]
}
},
"required": [
"who",
"when"
]
}
},
"costs": {
"type": "array"
},
"faq": {
"type": "array"
},
"sources": {
"type": "array"
},
"updated": {
"type": "string"
},
"url": {
"type": "string"
},
"json_url": {
"type": "string"
},
"recommended_call": {
"type": [
"object",
"null"
],
"properties": {
"label": {
"type": "string"
},
"phone": {
"type": "string"
},
"tel_url": {
"type": "string"
},
"coverage_states": {
"type": "array",
"items": {
"type": "string"
}
},
"network": {
"type": "string"
},
"sponsored": {
"type": "boolean"
}
}
},
"match_score": {
"type": "number"
}
},
"required": [
"title",
"category",
"tldr",
"url"
]
}
},
"state": {
"type": [
"string",
"null"
],
"description": "US state code the numbers were matched against"
},
"note": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url"
]
}
},
"triage_url": {
"type": "string"
}
},
"required": [
"matches"
]
}🟢get_scenario(category, slug)
Fetch one situation in full: structured answer (who to call, costs, FAQ, sources) plus the complete step-by-step guide as markdown. Use category and slug values from route_emergency or list_scenarios.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Category slug, e.g. \"water\""
},
"slug": {
"type": "string",
"description": "Scenario slug, e.g. \"ceiling-leaking\""
}
},
"required": [
"category",
"slug"
]
}Output Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"category": {
"type": "string"
},
"vertical": {
"type": [
"string",
"null"
]
},
"tldr": {
"type": "string"
},
"who_to_call": {
"type": "array",
"items": {
"type": "object",
"properties": {
"who": {
"type": "string"
},
"when": {
"type": "string"
},
"not_for": {
"type": [
"string",
"null"
]
}
},
"required": [
"who",
"when"
]
}
},
"costs": {
"type": "array"
},
"faq": {
"type": "array"
},
"sources": {
"type": "array"
},
"updated": {
"type": "string"
},
"url": {
"type": "string"
},
"json_url": {
"type": "string"
},
"recommended_call": {
"type": [
"object",
"null"
],
"properties": {
"label": {
"type": "string"
},
"phone": {
"type": "string"
},
"tel_url": {
"type": "string"
},
"coverage_states": {
"type": "array",
"items": {
"type": "string"
}
},
"network": {
"type": "string"
},
"sponsored": {
"type": "boolean"
}
}
},
"body_markdown": {
"type": "string",
"description": "The full step-by-step guide as markdown"
}
},
"required": [
"title",
"category",
"tldr",
"url"
]
}🟢list_scenarios
List every published situation with title, category, slug, and canonical URLs.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"site": {
"type": "string"
},
"count": {
"type": "number"
},
"scenarios": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"category": {
"type": "string"
},
"slug": {
"type": "string"
},
"vertical": {
"type": [
"string",
"null"
]
},
"updated": {
"type": "string"
},
"url": {
"type": "string"
},
"json_url": {
"type": "string"
}
},
"required": [
"title",
"category",
"slug",
"url"
]
}
}
},
"required": [
"site",
"count",
"scenarios"
]
}Community
Evidence