Book, reschedule, and cancel home services (cleaning, lawn, snow) via phone OTP authentication.
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.
Calculate an estimated price and duration for a service WITHOUT creating a booking. Use this during the quoting phase before the customer commits.
Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas.
Service category.
Specific service type within the category.
Lawn: include edging.
Include garage.
Carpet: include hallway.
Customer has pets at home.
Include window cleaning.
Carpet: number of area rugs.
Lawn: include backyard.
Include basement.
Number of bedrooms (cleaning/carpet).
Lawn: include watering.
Lawn: yard size.
Number of bathrooms (cleaning).
Car: engine bay cleaning add-on.
Lawn: overgrown surcharge.
Carpet: include staircase.
Tire: number of tires (default 4).
Include baseboards.
Car: very dirty interior add-on.
Snow: include hard ice buildup.
Snow: include ice salting.
Include living room.
Include inside oven.
Snow: number of cars to clear.
Car: clay bar & seal add-on.
Include kitchen deep clean.
Lawn: include cleanup.
Lawn: include leaf removal.
Vehicle type for car detailing or tire changing.
Exterior: number of window panes.
Snow: driveway type.
Include inside fridge.
Snow: include front walkway.
Prefer a female cleaner.
Include grout cleaning.
Exterior: number of window screens.
Exterior: include gutter cleaning.
Include kitchen surface clean.
Car: pet hair removal add-on.
Include spot-clean doors.
Include spot-clean walls.
Snow: include windrow clearing.
Whether ezi provides supplies (default true).
Exterior: include soffits & fascia.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Calculate an estimated price and duration for a service WITHOUT creating a booking. Use this during the quoting phase before the customer commits.
| Argument | Type | Description |
|---|---|---|
| city* | string | Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas. |
| edging | boolean | Lawn: include edging. |
| garage | boolean | Include garage. |
| hallway | boolean | Carpet: include hallway. |
| hasPets | boolean | Customer has pets at home. |
| windows | boolean | Include window cleaning. |
| areaRugs | number | Carpet: number of area rugs. |
| backyard | boolean | Lawn: include backyard. |
| basement | boolean | Include basement. |
| bedrooms | number | Number of bedrooms (cleaning/carpet). |
| category* | string | Service category. |
| watering | boolean | Lawn: include watering. |
| yardSize | string | Lawn: yard size. |
| bathrooms | number | Number of bathrooms (cleaning). |
| engineBay | boolean | Car: engine bay cleaning add-on. |
| overgrown | boolean | Lawn: overgrown surcharge. |
| staircase | boolean | Carpet: include staircase. |
| tireCount | number | Tire: number of tires (default 4). |
| baseboards | boolean | Include baseboards. |
| excessDirt | boolean | Car: very dirty interior add-on. |
| iceBuildup | boolean | Snow: include hard ice buildup. |
| iceSalting | boolean | Snow: include ice salting. |
| livingRoom | boolean | Include living room. |
| ovenInside | boolean | Include inside oven. |
| carsToClear | number | Snow: number of cars to clear. |
| clayAndSeal | boolean | Car: clay bar & seal add-on. |
| kitchenDeep | boolean | Include kitchen deep clean. |
| lawnCleanup | boolean | Lawn: include cleanup. |
| leafRemoval | boolean | Lawn: include leaf removal. |
| serviceType* | string | Specific service type within the category. |
| vehicleType | string | Vehicle type for car detailing or tire changing. |
| windowPanes | number | Exterior: number of window panes. |
| drivewayType | string | Snow: driveway type. |
| fridgeInside | boolean | Include inside fridge. |
| frontWalkway | boolean | Snow: include front walkway. |
| femaleCleaner | boolean | Prefer a female cleaner. |
| groutCleaning | boolean | Include grout cleaning. |
| windowScreens | number | Exterior: number of window screens. |
| gutterCleaning | boolean | Exterior: include gutter cleaning. |
| kitchenSurface | boolean | Include kitchen surface clean. |
| petHairRemoval | boolean | Car: pet hair removal add-on. |
| spotCleanDoors | boolean | Include spot-clean doors. |
| spotCleanWalls | boolean | Include spot-clean walls. |
| windrowClearing | boolean | Snow: include windrow clearing. |
| cleaningSupplies | boolean | Whether ezi provides supplies (default true). |
| soffitsAndFascia | boolean | Exterior: include soffits & fascia. |
{
"type": "object",
"required": [
"city",
"category",
"serviceType"
],
"properties": {
"city": {
"type": "string",
"description": "Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
},
"edging": {
"type": "boolean",
"description": "Lawn: include edging."
},
"garage": {
"type": "boolean",
"description": "Include garage."
},
"hallway": {
"type": "boolean",
"description": "Carpet: include hallway."
},
"hasPets": {
"type": "boolean",
"description": "Customer has pets at home."
},
"windows": {
"type": "boolean",
"description": "Include window cleaning."
},
"areaRugs": {
"type": "number",
"description": "Carpet: number of area rugs."
},
"backyard": {
"type": "boolean",
"description": "Lawn: include backyard."
},
"basement": {
"type": "boolean",
"description": "Include basement."
},
"bedrooms": {
"type": "number",
"description": "Number of bedrooms (cleaning/carpet)."
},
"category": {
"enum": [
"Cleaning",
"Lawn-Care",
"Exterior Cleaning",
"Car Detailing",
"Snow-Removal",
"Tire-Changing"
],
"type": "string",
"description": "Service category."
},
"watering": {
"type": "boolean",
"description": "Lawn: include watering."
},
"yardSize": {
"enum": [
"standard",
"large"
],
"type": "string",
"description": "Lawn: yard size."
},
"bathrooms": {
"type": "number",
"description": "Number of bathrooms (cleaning)."
},
"engineBay": {
"type": "boolean",
"description": "Car: engine bay cleaning add-on."
},
"overgrown": {
"type": "boolean",
"description": "Lawn: overgrown surcharge."
},
"staircase": {
"type": "boolean",
"description": "Carpet: include staircase."
},
"tireCount": {
"type": "number",
"description": "Tire: number of tires (default 4)."
},
"baseboards": {
"type": "boolean",
"description": "Include baseboards."
},
"excessDirt": {
"type": "boolean",
"description": "Car: very dirty interior add-on."
},
"iceBuildup": {
"type": "boolean",
"description": "Snow: include hard ice buildup."
},
"iceSalting": {
"type": "boolean",
"description": "Snow: include ice salting."
},
"livingRoom": {
"type": "boolean",
"description": "Include living room."
},
"ovenInside": {
"type": "boolean",
"description": "Include inside oven."
},
"carsToClear": {
"type": "number",
"description": "Snow: number of cars to clear."
},
"clayAndSeal": {
"type": "boolean",
"description": "Car: clay bar & seal add-on."
},
"kitchenDeep": {
"type": "boolean",
"description": "Include kitchen deep clean."
},
"lawnCleanup": {
"type": "boolean",
"description": "Lawn: include cleanup."
},
"leafRemoval": {
"type": "boolean",
"description": "Lawn: include leaf removal."
},
"serviceType": {
"enum": [
"DEEP-CLEAN",
"POST-CONSTRUCTION",
"AIRBNB-CLEAN",
"MOVE-IN-OUT-CLEAN",
"GENERAL-CLEAN",
"CARPET-CLEAN",
"LAWNCARE-LAWNMOWING",
"LAWNCARE-MAINTENANCE",
"LAWNCARE-PLANTING",
"LAWNCARE-WEED-REMOVAL",
"GENERAL",
"CLEAN_CAR_EXTERIOR",
"CLEAN_CAR_INTERIOR",
"CLEAN_CAR_COMPLETE",
"SNOW_REMOVAL",
"TIRE-CHANGE-STANDARD",
"TIRE-CHANGE-SEASONAL"
],
"type": "string",
"description": "Specific service type within the category."
},
"vehicleType": {
"enum": [
"sedan",
"suv",
"van",
"truck",
"motorcycle"
],
"type": "string",
"description": "Vehicle type for car detailing or tire changing."
},
"windowPanes": {
"type": "number",
"description": "Exterior: number of window panes."
},
"drivewayType": {
"enum": [
"single",
"double"
],
"type": "string",
"description": "Snow: driveway type."
},
"fridgeInside": {
"type": "boolean",
"description": "Include inside fridge."
},
"frontWalkway": {
"type": "boolean",
"description": "Snow: include front walkway."
},
"femaleCleaner": {
"type": "boolean",
"description": "Prefer a female cleaner."
},
"groutCleaning": {
"type": "boolean",
"description": "Include grout cleaning."
},
"windowScreens": {
"type": "number",
"description": "Exterior: number of window screens."
},
"gutterCleaning": {
"type": "boolean",
"description": "Exterior: include gutter cleaning."
},
"kitchenSurface": {
"type": "boolean",
"description": "Include kitchen surface clean."
},
"petHairRemoval": {
"type": "boolean",
"description": "Car: pet hair removal add-on."
},
"spotCleanDoors": {
"type": "boolean",
"description": "Include spot-clean doors."
},
"spotCleanWalls": {
"type": "boolean",
"description": "Include spot-clean walls."
},
"windrowClearing": {
"type": "boolean",
"description": "Snow: include windrow clearing."
},
"cleaningSupplies": {
"type": "boolean",
"description": "Whether ezi provides supplies (default true)."
},
"soffitsAndFascia": {
"type": "boolean",
"description": "Exterior: include soffits & fascia."
}
}
}Cancel one of the authenticated customer's upcoming jobs. Call lookup_scheduled_jobs first to get the job ID. Get explicit customer confirmation before setting confirmed to true.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | The job ID obtained from lookup_scheduled_jobs. |
| confirmed* | boolean | Must be true. Only set after the customer has explicitly confirmed. |
{
"type": "object",
"required": [
"jobId",
"confirmed"
],
"properties": {
"jobId": {
"type": "string",
"description": "The job ID obtained from lookup_scheduled_jobs."
},
"confirmed": {
"type": "boolean",
"description": "Must be true. Only set after the customer has explicitly confirmed."
}
}
}Create a service order for the authenticated customer. Call calculate_quote first to get the price and recommended durationHours, then call this once the customer agrees.
| Argument | Type | Description |
|---|---|---|
| edging | boolean | |
| garage | boolean | |
| address* | object | Service address. |
| comment | string | Optional notes for the service provider. |
| hallway | boolean | |
| hasPets | boolean | |
| windows | boolean | |
| areaRugs | number | |
| backyard | boolean | |
| basement | boolean | |
| bedrooms | number | |
| category |
Returns the current date and time in UTC and, if a city is provided, in the local timezone. Use it to know what "today" is for the customer.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional city name to get local time. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Optional city name to get local time. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
}
}
}Returns service categories and types available for a given postal or zip code, accounting for location coverage and seasonal availability. Call this after collecting the customer's postal code to determine what services to offer.
| Argument | Type | Description |
|---|---|---|
| postalCode* | string | Customer postal or zip code (e.g. "K1A 0A1" or "90210"). |
{
"type": "object",
"required": [
"postalCode"
],
"properties": {
"postalCode": {
"type": "string",
"description": "Customer postal or zip code (e.g. \"K1A 0A1\" or \"90210\")."
}
}
}Return the authenticated customer's profile: name, account ID, balance, primary address, and payment method status.
No arguments.
{
"type": "object",
"properties": {}
}Return the authenticated customer's upcoming scheduled jobs. Call this before rescheduling or cancelling to get the job ID.
No arguments.
{
"type": "object",
"properties": {}
}Request to reschedule one of the authenticated customer's upcoming jobs to a new date and time. If a pro is assigned, they must approve before the job moves. Call lookup_scheduled_jobs first to get the job ID. Get explicit customer confirmation before setting confirmed to true.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | The job ID obtained from lookup_scheduled_jobs. |
| reason | string | Short reason for the reschedule, shown to the assigned pro. |
| confirmed* | boolean | Must be true. Only set after the customer has explicitly confirmed. |
| newScheduledTime* | string | New local date/time at the job address, without an offset (e.g. "2025-07-15T10:00:00"). |
{
"type": "object",
"required": [
"jobId",
"newScheduledTime",
"confirmed"
],
"properties": {
"jobId": {
"type": "string",
"description": "The job ID obtained from lookup_scheduled_jobs."
},
"reason": {
"type": "string",
"description": "Short reason for the reschedule, shown to the assigned pro."
},
"confirmed": {
"type": "boolean",
"description": "Must be true. Only set after the customer has explicitly confirmed."
},
"newScheduledTime": {
"type": "string",
"description": "New local date/time at the job address, without an offset (e.g. \"2025-07-15T10:00:00\")."
}
}
}| string |
| Service category. |
| watering | boolean |
| yardSize | string |
| bathrooms | number |
| engineBay | boolean |
| overgrown | boolean |
| staircase | boolean |
| tireCount | number |
| baseboards | boolean |
| excessDirt | boolean |
| iceBuildup | boolean |
| iceSalting | boolean |
| livingRoom | boolean |
| ovenInside | boolean |
| carsToClear | number |
| clayAndSeal | boolean |
| kitchenDeep | boolean |
| lawnCleanup | boolean |
| leafRemoval | boolean |
| serviceType | string | Specific service type. |
| vehicleType | string |
| windowPanes | number |
| drivewayType | string |
| fridgeInside | boolean |
| frontWalkway | boolean |
| sendQuoteSMS | boolean | Send the customer an SMS summary. |
| durationHours | number | Estimated duration in hours (0.5 increments). Use the value from calculate_quote. |
| femaleCleaner | boolean |
| groutCleaning | boolean |
| scheduledTime* | string | Local date/time at the service address, without an offset (e.g. "2025-07-15T10:00:00"). Daylight saving is resolved for that date. |
| windowScreens | number |
| gutterCleaning | boolean |
| kitchenSurface | boolean |
| petHairRemoval | boolean |
| spotCleanDoors | boolean |
| spotCleanWalls | boolean |
| windrowClearing | boolean |
| cleaningSupplies | boolean |
| soffitsAndFascia | boolean |
| bookIfPaymentOnFile | boolean | If true and a payment method is saved, immediately confirms the booking. |
{
"type": "object",
"required": [
"category",
"scheduledTime",
"address"
],
"properties": {
"edging": {
"type": "boolean"
},
"garage": {
"type": "boolean"
},
"address": {
"type": "object",
"required": [
"addressLine1",
"city",
"state",
"postalCode"
],
"properties": {
"city": {
"type": "string"
},
"unit": {
"type": "string"
},
"state": {
"type": "string",
"description": "Province/state abbreviation (e.g. \"ON\", \"FL\")."
},
"country": {
"enum": [
"CA",
"US"
],
"type": "string",
"description": "Defaults to CA."
},
"postalCode": {
"type": "string"
},
"addressLine1": {
"type": "string"
}
},
"description": "Service address."
},
"comment": {
"type": "string",
"description": "Optional notes for the service provider."
},
"hallway": {
"type": "boolean"
},
"hasPets": {
"type": "boolean"
},
"windows": {
"type": "boolean"
},
"areaRugs": {
"type": "number"
},
"backyard": {
"type": "boolean"
},
"basement": {
"type": "boolean"
},
"bedrooms": {
"type": "number"
},
"category": {
"enum": [
"Cleaning",
"Lawn-Care",
"Exterior Cleaning",
"Car Detailing",
"Snow-Removal",
"Tire-Changing"
],
"type": "string",
"description": "Service category."
},
"watering": {
"type": "boolean"
},
"yardSize": {
"enum": [
"standard",
"large"
],
"type": "string"
},
"bathrooms": {
"type": "number"
},
"engineBay": {
"type": "boolean"
},
"overgrown": {
"type": "boolean"
},
"staircase": {
"type": "boolean"
},
"tireCount": {
"type": "number"
},
"baseboards": {
"type": "boolean"
},
"excessDirt": {
"type": "boolean"
},
"iceBuildup": {
"type": "boolean"
},
"iceSalting": {
"type": "boolean"
},
"livingRoom": {
"type": "boolean"
},
"ovenInside": {
"type": "boolean"
},
"carsToClear": {
"type": "number"
},
"clayAndSeal": {
"type": "boolean"
},
"kitchenDeep": {
"type": "boolean"
},
"lawnCleanup": {
"type": "boolean"
},
"leafRemoval": {
"type": "boolean"
},
"serviceType": {
"enum": [
"DEEP-CLEAN",
"POST-CONSTRUCTION",
"AIRBNB-CLEAN",
"MOVE-IN-OUT-CLEAN",
"GENERAL-CLEAN",
"CARPET-CLEAN",
"LAWNCARE-LAWNMOWING",
"LAWNCARE-MAINTENANCE",
"LAWNCARE-PLANTING",
"LAWNCARE-WEED-REMOVAL",
"GENERAL",
"CLEAN_CAR_EXTERIOR",
"CLEAN_CAR_INTERIOR",
"CLEAN_CAR_COMPLETE",
"SNOW_REMOVAL",
"TIRE-CHANGE-STANDARD",
"TIRE-CHANGE-SEASONAL"
],
"type": "string",
"description": "Specific service type."
},
"vehicleType": {
"enum": [
"sedan",
"suv",
"van",
"truck",
"motorcycle"
],
"type": "string"
},
"windowPanes": {
"type": "number"
},
"drivewayType": {
"enum": [
"single",
"double"
],
"type": "string"
},
"fridgeInside": {
"type": "boolean"
},
"frontWalkway": {
"type": "boolean"
},
"sendQuoteSMS": {
"type": "boolean",
"description": "Send the customer an SMS summary."
},
"durationHours": {
"type": "number",
"description": "Estimated duration in hours (0.5 increments). Use the value from calculate_quote."
},
"femaleCleaner": {
"type": "boolean"
},
"groutCleaning": {
"type": "boolean"
},
"scheduledTime": {
"type": "string",
"description": "Local date/time at the service address, without an offset (e.g. \"2025-07-15T10:00:00\"). Daylight saving is resolved for that date."
},
"windowScreens": {
"type": "number"
},
"gutterCleaning": {
"type": "boolean"
},
"kitchenSurface": {
"type": "boolean"
},
"petHairRemoval": {
"type": "boolean"
},
"spotCleanDoors": {
"type": "boolean"
},
"spotCleanWalls": {
"type": "boolean"
},
"windrowClearing": {
"type": "boolean"
},
"cleaningSupplies": {
"type": "boolean"
},
"soffitsAndFascia": {
"type": "boolean"
},
"bookIfPaymentOnFile": {
"type": "boolean",
"description": "If true and a payment method is saved, immediately confirms the booking."
}
}
}