MCP 服务器

Who Do I Call For? — Emergency Home-Service Router

io.github.woodydaniel/whodoicallfor
其他 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Routes described home emergencies to appropriate service trades and provides response steps, cost guidance, and dispatch contacts.

get_scenario
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.
只读 幂等
输入模式
{'type': 'object', 'required': ['category', 'slug'], 'properties': {'slug': {'type': 'string', 'description': 'Scenario slug, e.g. "ceiling-leaking"'}, 'category': {'type': 'string', 'description': 'Category slug, e.g. "water"'}}}
输出模式
{'type': 'object', 'required': ['title', 'category', 'tldr', 'url'], 'properties': {'faq': {'type': 'array'}, 'url': {'type': 'string'}, 'tldr': {'type': 'string'}, 'costs': {'type': 'array'}, 'title': {'type': 'string'}, 'sources': {'type': 'array'}, 'updated': {'type': 'string'}, 'category': {'type': 'string'}, 'json_url': {'type': 'string'}, 'vertical': {'type': ['string', 'null']}, 'description': {'type': 'string'}, 'who_to_call': {'type': 'array', 'items': {'type': 'object', 'required': ['who', 'when'], 'properties': {'who': {'type': 'string'}, 'when': {'type': 'string'}, 'not_for': {'type': ['string', 'null']}}}}, 'body_markdown': {'type': 'string', 'description': 'The full step-by-step guide as markdown'}, 'recommended_call': {'type': ['object', 'null'], 'properties': {'label': {'type': 'string'}, 'phone': {'type': 'string'}, 'network': {'type': 'string'}, 'tel_url': {'type': 'string'}, 'sponsored': {'type': 'boolean'}, 'coverage_states': {'type': 'array', 'items': {'type': 'string'}}}}}}
list_scenarios
List every published situation with title, category, slug, and canonical URLs.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', 'required': ['site', 'count', 'scenarios'], 'properties': {'site': {'type': 'string'}, 'count': {'type': 'number'}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'category', 'slug', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'updated': {'type': 'string'}, 'category': {'type': 'string'}, 'json_url': {'type': 'string'}, 'vertical': {'type': ['string', 'null']}, 'description': {'type': 'string'}}}}}}
route_emergency
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.
只读 幂等
输入模式
{'type': 'object', 'required': ['problem'], 'properties': {'state': {'type': 'string', 'description': 'Optional US state code or name, e.g. "FL" or "Florida"'}, 'problem': {'type': 'string', 'description': "The user's problem in plain words"}}}
输出模式
{'type': 'object', 'required': ['matches'], 'properties': {'note': {'type': 'string'}, 'state': {'type': ['string', 'null'], 'description': 'US state code the numbers were matched against'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'category', 'tldr', 'url'], 'properties': {'faq': {'type': 'array'}, 'url': {'type': 'string'}, 'tldr': {'type': 'string'}, 'costs': {'type': 'array'}, 'title': {'type': 'string'}, 'sources': {'type': 'array'}, 'updated': {'type': 'string'}, 'category': {'type': 'string'}, 'json_url': {'type': 'string'}, 'vertical': {'type': ['string', 'null']}, 'description': {'type': 'string'}, 'match_score': {'type': 'number'}, 'who_to_call': {'type': 'array', 'items': {'type': 'object', 'required': ['who', 'when'], 'properties': {'who': {'type': 'string'}, 'when': {'type': 'string'}, 'not_for': {'type': ['string', 'null']}}}}, 'recommended_call': {'type': ['object', 'null'], 'properties': {'label': {'type': 'string'}, 'phone': {'type': 'string'}, 'network': {'type': 'string'}, 'tel_url': {'type': 'string'}, 'sponsored': {'type': 'boolean'}, 'coverage_states': {'type': 'array', 'items': {'type': 'string'}}}}}}, 'description': 'Matching situations, best first; empty when no confident match'}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}}}}, 'triage_url': {'type': 'string'}}}
已添加
list_scenarios
2026年9月17日 12:53
已添加
get_scenario
2026年9月17日 12:53
已添加
route_emergency
2026年9月17日 12:53