House Fly exposes a Model Context Protocol (MCP) server that lets AI agents quote and book home services across the US at upfront prices. House Fly fulfills every job and handles support.
Endpoint
POST https://housefly.com/account/customer/muse/mcp
Streamable HTTP transport with single JSON responses. JSON-RPC 2.0. Supported protocol revisions: 2024-11-05, 2025-03-26, 2025-06-18. Notifications are accepted with 202. Batch arrays are supported. GET returns 405 (no server-initiated streams).
Authentication
API key per partner, sent as Authorization: Bearer <key> (or X-Api-Key). Keys are issued by House Fly — contact help@housefly.com. Requests without a valid key receive 401. Rate limit: 240 requests/minute.
Tools
| Tool | What it does | Arguments |
|---|---|---|
list_services |
The trades House Fly books, each trade’s job minimum, and the standalone services with per-unit prices. The default reply is a compact index; pass a trade for full detail (variants, questions and their “+ $” amounts). | trade (optional, e.g. “House Cleaning”), include_addons (optional bool) |
get_quote |
An upfront price from House Fly’s live price book — the same engine that prices housefly.com. If required details are missing, the reply names the fields to collect; re-call with them. Quote only what estimate_text returns. |
zip, service_type (required); whole-home cleaning: houseCleaningType, sqft, bedrooms, fullBaths; standalone services: menu_key, menu_qty, menu_variant, menu_answers_json; add-ons: addons_json |
create_booking |
Creates the booking from the quoted selection and returns checkout_url — a secure link, held 30 days, where the customer confirms the address, picks a date and time, and pays House Fly directly. No payment data flows through the connector. |
Same as get_quote, plus optional name, email, phone |
Example
curl -X POST https://housefly.com/account/customer/muse/mcp
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json"
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_quote",
"arguments":{"zip":"70605","service_type":"Cleaning","houseCleaningType":"Whole Home",
"propertyType":"House","sqft":1800,"bedrooms":3,"fullBaths":2}}}'
The result carries estimate_text (e.g. $154.99), availability, and working days. Follow with create_booking using the same arguments to receive the checkout link.
Booking flow
list_services— once per conversation, to ground what is bookable.get_quote— collect any fields the reply reports missing, then re-call.create_booking— hand the customer thecheckout_url. They confirm the address, schedule, and pay on housefly.com; House Fly fulfills the job.
