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

A
Description quality
100%
Schema completeness
77%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,033Tokens (tool definitions)
~3.1 KBTypical response size
Moderate attention impact (0.81% of 128k context)

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-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools