Ezi Home Services
Book, reschedule, and cancel home services (cleaning, lawn, snow) via phone OTP authentication.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"mcp-public": {
"url": "https://prod-api.ezi-app.com/mcp"
}
}
}リモートエンドポイント
https://prod-api.ezi-app.com/mcpstreamable-httpできること
ツール一覧
ツール(8)
🟢get_profile
Return the authenticated customer's profile: name, account ID, balance, primary address, and payment method status.
入力スキーマ
{
"type": "object",
"properties": {}
}🟢lookup_scheduled_jobs
Return the authenticated customer's upcoming scheduled jobs. Call this before rescheduling or cancelling to get the job ID.
入力スキーマ
{
"type": "object",
"properties": {}
}🟢get_available_services(postalCode)
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.
入力スキーマ
{
"type": "object",
"properties": {
"postalCode": {
"type": "string",
"description": "Customer postal or zip code (e.g. \"K1A 0A1\" or \"90210\")."
}
},
"required": [
"postalCode"
]
}🟡current_datetime(city)
Returns the current date and time in UTC and, if a city is provided, in the local timezone. Call this before create_order to get the correct timezone offset.
入力スキーマ
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Optional city name to get local time and offset. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
}
}
}🟢calculate_quote(city, category, serviceType, bedrooms, bathrooms, ...)
Calculate an estimated price and duration for a service WITHOUT creating a booking. Use this during the quoting phase before the customer commits.
入力スキーマ
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
},
"category": {
"type": "string",
"enum": [
"Cleaning",
"Lawn-Care",
"Exterior Cleaning",
"Car Detailing",
"Snow-Removal",
"Tire-Changing"
],
"description": "Service category."
},
"serviceType": {
"type": "string",
"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"
],
"description": "Specific service type within the category."
},
"bedrooms": {
"type": "number",
"description": "Number of bedrooms (cleaning/carpet)."
},
"bathrooms": {
"type": "number",
"description": "Number of bathrooms (cleaning)."
},
"basement": {
"type": "boolean",
"description": "Include basement."
},
"livingRoom": {
"type": "boolean",
"description": "Include living room."
},
"windows": {
"type": "boolean",
"description": "Include window cleaning."
},
"garage": {
"type": "boolean",
"description": "Include garage."
},
"baseboards": {
"type": "boolean",
"description": "Include baseboards."
},
"kitchenSurface": {
"type": "boolean",
"description": "Include kitchen surface clean."
},
"kitchenDeep": {
"type": "boolean",
"description": "Include kitchen deep clean."
},
"fridgeInside": {
"type": "boolean",
"description": "Include inside fridge."
},
"ovenInside": {
"type": "boolean",
"description": "Include inside oven."
},
"groutCleaning": {
"type": "boolean",
"description": "Include grout cleaning."
},
"spotCleanWalls": {
"type": "boolean",
"description": "Include spot-clean walls."
},
"spotCleanDoors": {
"type": "boolean",
"description": "Include spot-clean doors."
},
"cleaningSupplies": {
"type": "boolean",
"description": "Whether ezi provides supplies (default true)."
},
"hasPets": {
"type": "boolean",
"description": "Customer has pets at home."
},
"femaleCleaner": {
"type": "boolean",
"description": "Prefer a female cleaner."
},
"hallway": {
"type": "boolean",
"description": "Carpet: include hallway."
},
"staircase": {
"type": "boolean",
"description": "Carpet: include staircase."
},
"areaRugs": {
"type": "number",
"description": "Carpet: number of area rugs."
},
"yardSize": {
"type": "string",
"enum": [
"standard",
"large"
],
"description": "Lawn: yard size."
},
"backyard": {
"type": "boolean",
"description": "Lawn: include backyard."
},
"lawnCleanup": {
"type": "boolean",
"description": "Lawn: include cleanup."
},
"edging": {
"type": "boolean",
"description": "Lawn: include edging."
},
"leafRemoval": {
"type": "boolean",
"description": "Lawn: include leaf removal."
},
"watering": {
"type": "boolean",
"description": "Lawn: include watering."
},
"overgrown": {
"type": "boolean",
"description": "Lawn: overgrown surcharge."
},
"vehicleType": {
"type": "string",
"enum": [
"sedan",
"suv",
"van",
"truck",
"motorcycle"
],
"description": "Vehicle type for car detailing or tire changing."
},
"petHairRemoval": {
"type": "boolean",
"description": "Car: pet hair removal add-on."
},
"excessDirt": {
"type": "boolean",
"description": "Car: very dirty interior add-on."
},
"engineBay": {
"type": "boolean",
"description": "Car: engine bay cleaning add-on."
},
"clayAndSeal": {
"type": "boolean",
"description": "Car: clay bar & seal add-on."
},
"drivewayType": {
"type": "string",
"enum": [
"single",
"double"
],
"description": "Snow: driveway type."
},
"frontWalkway": {
"type": "boolean",
"description": "Snow: include front walkway."
},
"windrowClearing": {
"type": "boolean",
"description": "Snow: include windrow clearing."
},
"iceBuildup": {
"type": "boolean",
"description": "Snow: include hard ice buildup."
},
"iceSalting": {
"type": "boolean",
"description": "Snow: include ice salting."
},
"carsToClear": {
"type": "number",
"description": "Snow: number of cars to clear."
},
"windowPanes": {
"type": "number",
"description": "Exterior: number of window panes."
},
"gutterCleaning": {
"type": "boolean",
"description": "Exterior: include gutter cleaning."
},
"soffitsAndFascia": {
"type": "boolean",
"description": "Exterior: include soffits & fascia."
},
"windowScreens": {
"type": "number",
"description": "Exterior: number of window screens."
},
"tireCount": {
"type": "number",
"description": "Tire: number of tires (default 4)."
}
},
"required": [
"city",
"category",
"serviceType"
]
}🟡create_order(category, serviceType, scheduledTime, durationHours, address, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"Cleaning",
"Lawn-Care",
"Exterior Cleaning",
"Car Detailing",
"Snow-Removal",
"Tire-Changing"
],
"description": "Service category."
},
"serviceType": {
"type": "string",
"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"
],
"description": "Specific service type."
},
"scheduledTime": {
"type": "string",
"description": "ISO 8601 datetime string (e.g. \"2025-07-15T10:00:00-04:00\"). Always include the timezone offset."
},
"durationHours": {
"type": "number",
"description": "Estimated duration in hours (0.5 increments). Use the value from calculate_quote."
},
"address": {
"type": "object",
"description": "Service address.",
"properties": {
"addressLine1": {
"type": "string"
},
"unit": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "Province/state abbreviation (e.g. \"ON\", \"FL\")."
},
"postalCode": {
"type": "string"
},
"country": {
"type": "string",
"enum": [
"CA",
"US"
],
"description": "Defaults to CA."
}
},
"required": [
"addressLine1",
"city",
"state",
"postalCode"
]
},
"comment": {
"type": "string",
"description": "Optional notes for the service provider."
},
"sendQuoteSMS": {
"type": "boolean",
"description": "Send the customer an SMS summary."
},
"bookIfPaymentOnFile": {
"type": "boolean",
"description": "If true and a payment method is saved, immediately confirms the booking."
},
"bedrooms": {
"type": "number"
},
"bathrooms": {
"type": "number"
},
"basement": {
"type": "boolean"
},
"livingRoom": {
"type": "boolean"
},
"windows": {
"type": "boolean"
},
"garage": {
"type": "boolean"
},
"baseboards": {
"type": "boolean"
},
"kitchenSurface": {
"type": "boolean"
},
"kitchenDeep": {
"type": "boolean"
},
"fridgeInside": {
"type": "boolean"
},
"ovenInside": {
"type": "boolean"
},
"groutCleaning": {
"type": "boolean"
},
"spotCleanWalls": {
"type": "boolean"
},
"spotCleanDoors": {
"type": "boolean"
},
"cleaningSupplies": {
"type": "boolean"
},
"hasPets": {
"type": "boolean"
},
"femaleCleaner": {
"type": "boolean"
},
"hallway": {
"type": "boolean"
},
"staircase": {
"type": "boolean"
},
"areaRugs": {
"type": "number"
},
"yardSize": {
"type": "string",
"enum": [
"standard",
"large"
]
},
"backyard": {
"type": "boolean"
},
"lawnCleanup": {
"type": "boolean"
},
"edging": {
"type": "boolean"
},
"leafRemoval": {
"type": "boolean"
},
"watering": {
"type": "boolean"
},
"overgrown": {
"type": "boolean"
},
"vehicleType": {
"type": "string",
"enum": [
"sedan",
"suv",
"van",
"truck",
"motorcycle"
]
},
"petHairRemoval": {
"type": "boolean"
},
"excessDirt": {
"type": "boolean"
},
"engineBay": {
"type": "boolean"
},
"clayAndSeal": {
"type": "boolean"
},
"drivewayType": {
"type": "string",
"enum": [
"single",
"double"
]
},
"frontWalkway": {
"type": "boolean"
},
"windrowClearing": {
"type": "boolean"
},
"iceBuildup": {
"type": "boolean"
},
"iceSalting": {
"type": "boolean"
},
"carsToClear": {
"type": "number"
},
"windowPanes": {
"type": "number"
},
"gutterCleaning": {
"type": "boolean"
},
"soffitsAndFascia": {
"type": "boolean"
},
"windowScreens": {
"type": "number"
},
"tireCount": {
"type": "number"
}
},
"required": [
"category",
"scheduledTime",
"address"
]
}🟢reschedule_job(jobId, newScheduledTime, confirmed)
Reschedule one of the authenticated customer's upcoming jobs to a new date and time. Call lookup_scheduled_jobs first to get the job ID. Get explicit customer confirmation before setting confirmed to true.
入力スキーマ
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "The job ID obtained from lookup_scheduled_jobs."
},
"newScheduledTime": {
"type": "string",
"description": "New ISO 8601 datetime string for the rescheduled appointment."
},
"confirmed": {
"type": "boolean",
"description": "Must be true. Only set after the customer has explicitly confirmed."
}
},
"required": [
"jobId",
"newScheduledTime",
"confirmed"
]
}🔴cancel_job(jobId, confirmed)
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.
入力スキーマ
{
"type": "object",
"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."
}
},
"required": [
"jobId",
"confirmed"
]
}コミュニティ
エビデンス