Ezi Home Services
Server Details
Book, reschedule, and cancel home services (cleaning, lawn, snow) via phone OTP authentication.
- Status
- Healthy
- Uptime
- 99.9% over 69 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: quoting, order creation, cancellation, rescheduling, service discovery, profile, job lookup, and time. The calculate_quote vs create_order boundary is explicitly clarified (quote does not commit, order does), leaving no real ambiguity.
Names follow a snake_case verb_noun pattern (calculate_quote, cancel_job, create_order, get_profile, lookup_scheduled_jobs, reschedule_job). Minor deviations exist: current_datetime is noun-only and 'lookup' vs 'get' are used inconsistently for retrieval, but overall it is predictable.
Eight tools is well-scoped for a home-services booking domain, with each tool earning its place across the quote-to-booking-to-management lifecycle. No redundant or filler tools.
The core lifecycle is covered: discover services, quote, order, look up jobs, reschedule, cancel, plus supporting profile and datetime. Minor gaps remain, such as no order modification or payment method update, but agents can work around them.
Available Tools
8 toolscalculate_quoteAInspect
Calculate an estimated price and duration for a service WITHOUT creating a booking. Use this during the quoting phase before the customer commits.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas. | |
| edging | No | Lawn: include edging. | |
| garage | No | Include garage. | |
| hallway | No | Carpet: include hallway. | |
| hasPets | No | Customer has pets at home. | |
| windows | No | Include window cleaning. | |
| areaRugs | No | Carpet: number of area rugs. | |
| backyard | No | Lawn: include backyard. | |
| basement | No | Include basement. | |
| bedrooms | No | Number of bedrooms (cleaning/carpet). | |
| category | Yes | Service category. | |
| watering | No | Lawn: include watering. | |
| yardSize | No | Lawn: yard size. | |
| bathrooms | No | Number of bathrooms (cleaning). | |
| engineBay | No | Car: engine bay cleaning add-on. | |
| overgrown | No | Lawn: overgrown surcharge. | |
| staircase | No | Carpet: include staircase. | |
| tireCount | No | Tire: number of tires (default 4). | |
| baseboards | No | Include baseboards. | |
| excessDirt | No | Car: very dirty interior add-on. | |
| iceBuildup | No | Snow: include hard ice buildup. | |
| iceSalting | No | Snow: include ice salting. | |
| livingRoom | No | Include living room. | |
| ovenInside | No | Include inside oven. | |
| carsToClear | No | Snow: number of cars to clear. | |
| clayAndSeal | No | Car: clay bar & seal add-on. | |
| kitchenDeep | No | Include kitchen deep clean. | |
| lawnCleanup | No | Lawn: include cleanup. | |
| leafRemoval | No | Lawn: include leaf removal. | |
| serviceType | Yes | Specific service type within the category. | |
| vehicleType | No | Vehicle type for car detailing or tire changing. | |
| windowPanes | No | Exterior: number of window panes. | |
| drivewayType | No | Snow: driveway type. | |
| fridgeInside | No | Include inside fridge. | |
| frontWalkway | No | Snow: include front walkway. | |
| femaleCleaner | No | Prefer a female cleaner. | |
| groutCleaning | No | Include grout cleaning. | |
| windowScreens | No | Exterior: number of window screens. | |
| gutterCleaning | No | Exterior: include gutter cleaning. | |
| kitchenSurface | No | Include kitchen surface clean. | |
| petHairRemoval | No | Car: pet hair removal add-on. | |
| spotCleanDoors | No | Include spot-clean doors. | |
| spotCleanWalls | No | Include spot-clean walls. | |
| windrowClearing | No | Snow: include windrow clearing. | |
| cleaningSupplies | No | Whether ezi provides supplies (default true). | |
| soffitsAndFascia | No | Exterior: include soffits & fascia. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses the key side-effect boundary—this tool does NOT create a booking—and frames the result as an estimate, which is important context. It does not describe output structure or pricing edge cases, but the core non-mutating behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The essential action, non-booking behavior, and usage context are all front-loaded and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 46 parameters but no output schema, the description covers the core invocation context and expected outcome at a high level. It could add return-shape or validation caveats, but the combination of full schema coverage and the explicit no-booking behavior makes it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and every parameter already has a description with enums where relevant. The description adds no parameter-level guidance, but it does not need to because the schema handles parameter semantics; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('calculate'), the resource ('estimated price and duration'), and the domain ('service'), and explicitly distinguishes itself from booking tools with 'WITHOUT creating a booking'. This clearly separates it from siblings like create_order even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the exact phase to use the tool: 'during the quoting phase before the customer commits.' It implies that a different tool should be used once the customer is ready to commit, but it does not explicitly name create_order or list when-not-to-use conditions, so it provides clear context rather than full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID obtained from lookup_scheduled_jobs. | |
| confirmed | Yes | Must be true. Only set after the customer has explicitly confirmed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that the tool cancels jobs (a mutating action), requires prior lookup for job ID, and mandates explicit customer confirmation. This is transparent for a simple cancellation tool, though it doesn't mention reversibility or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The purpose is stated first, followed by essential usage details. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 required params, no output schema) and the description covers purpose, prerequisite, and a critical safety rule. It fully equips an agent to use the tool correctly, though it omits details about the response or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning: jobId comes from lookup_scheduled_jobs, and confirmed must be true and only after customer confirmation. This goes beyond the schema's bare descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels one of the authenticated customer's upcoming jobs. It specifies the verb 'cancel' and the resource 'job' with scope 'authenticated customer's upcoming', distinguishing it from siblings like reschedule_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: call lookup_scheduled_jobs first to get the job ID, and obtain explicit customer confirmation before setting confirmed to true. This gives clear context on when to use the tool and a safety step, though alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| edging | No | ||
| garage | No | ||
| address | Yes | Service address. | |
| comment | No | Optional notes for the service provider. | |
| hallway | No | ||
| hasPets | No | ||
| windows | No | ||
| areaRugs | No | ||
| backyard | No | ||
| basement | No | ||
| bedrooms | No | ||
| category | Yes | Service category. | |
| watering | No | ||
| yardSize | No | ||
| bathrooms | No | ||
| engineBay | No | ||
| overgrown | No | ||
| staircase | No | ||
| tireCount | No | ||
| baseboards | No | ||
| excessDirt | No | ||
| iceBuildup | No | ||
| iceSalting | No | ||
| livingRoom | No | ||
| ovenInside | No | ||
| carsToClear | No | ||
| clayAndSeal | No | ||
| kitchenDeep | No | ||
| lawnCleanup | No | ||
| leafRemoval | No | ||
| serviceType | No | Specific service type. | |
| vehicleType | No | ||
| windowPanes | No | ||
| drivewayType | No | ||
| fridgeInside | No | ||
| frontWalkway | No | ||
| sendQuoteSMS | No | Send the customer an SMS summary. | |
| durationHours | No | Estimated duration in hours (0.5 increments). Use the value from calculate_quote. | |
| femaleCleaner | No | ||
| groutCleaning | No | ||
| scheduledTime | Yes | 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 | No | ||
| gutterCleaning | No | ||
| kitchenSurface | No | ||
| petHairRemoval | No | ||
| spotCleanDoors | No | ||
| spotCleanWalls | No | ||
| windrowClearing | No | ||
| cleaningSupplies | No | ||
| soffitsAndFascia | No | ||
| bookIfPaymentOnFile | No | If true and a payment method is saved, immediately confirms the booking. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a 51-parameter mutation. It says nothing about what happens on failure, whether a payment method is required, idempotency, confirmation semantics, or the effect of bookIfPaymentOnFile. "Authenticated customer" is the only auth hint offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the core action front-loaded and the prerequisite sequencing following immediately. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 51 parameters, nested objects, no annotations, and no output schema, the description is thin. It omits how the many optional fields relate to category/serviceType, what the call returns, and what confirmation behavior to expect, leaving the agent under-informed for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 16%, so the description must compensate and largely does not. It adds a useful note about durationHours coming from calculate_quote, but that is already in the schema, and the dozens of optional booleans/numbers (edging, garage, yardSize, windowPanes, etc.) go unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a service order") and scopes it to "the authenticated customer." It also distinguishes itself from the calculate_quote sibling by establishing the create-after-quote relationship, so an agent can place it in the workflow without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite and ordering: call calculate_quote first for price and durationHours, then call this once the customer agrees. It names the alternative tool and the triggering condition. It does not cover when-not-to-use (e.g. reschedule_job/cancel_job for changes), which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current_datetimeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city name to get local time. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It discloses the key behavioral trait: output is always UTC, and local time is added only when a city argument is present. It does not state the return format (e.g. ISO 8601) or note that the operation is a safe read, leaving modest gaps for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the output behavior front-loaded and the usage hint second. No filler, no restatement of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description covers what the tool returns and why it would be called. It omits the returned datetime format and whether the city match is case-sensitive, which an agent invoking it might want to know, but the definition is otherwise sufficient for a single optional-parameter utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description genuinely adds meaning: it explains that supplying 'city' changes the response to include local time, framing the parameter's effect rather than repeating its type. The schema already enumerates valid city values, so the description does not need to restate them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (current date and time) plus scope (UTC, and local timezone when a city is given). Nothing in the sibling set covers this capability, so an agent can select it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear use context ('Use it to know what "today" is for the customer'), which tells the agent when this tool is relevant. It does not name alternatives or state exclusions, but no sibling overlaps this capability, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_available_servicesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| postalCode | Yes | Customer postal or zip code (e.g. "K1A 0A1" or "90210"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers location and seasonal constraints but lacks details on idempotency, error handling, or rate limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states functionality, second gives usage guidance. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter; description provides sufficient context. Lacks return format details but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the parameter fully; description adds value by explaining why postalCode is used (to check coverage and availability), going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns service categories and types based on postal/zip code, mentioning location coverage and seasonal availability. It distinguishes well from siblings like calculate_quote and create_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call after collecting postal code to determine services to offer, providing clear context. Does not include when not to use, but sibling differentiation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileAInspect
Return the authenticated customer's profile: name, account ID, balance, primary address, and payment method status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation returning specific data but does not disclose authentication requirements, rate limits, or potential side effects. Adequate for a simple read but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 20 words, clearly front-loaded with the purpose and a list of returned fields. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description lists the fields returned (name, account ID, balance, primary address, payment method status). However, it does not indicate data types or structure. For a simple profile tool, this is reasonably complete but could be enhanced with types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds no parameter semantics beyond the schema, which is comprehensive for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Return' and resource 'authenticated customer's profile' with a specific list of fields. Distinguishes from siblings that handle quotes, jobs, orders, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use this tool versus alternatives or when not to use it. For a simple read-only profile retrieval, the context is implied but no exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_scheduled_jobsAInspect
Return the authenticated customer's upcoming scheduled jobs. Call this before rescheduling or cancelling to get the job ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly states that the tool returns upcoming scheduled jobs for the authenticated customer, implying a read-only operation. However, it does not mention any potential side effects, rate limits, or response structure. The behavioral disclosure is adequate for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences with no extraneous words. It front-loads the main purpose and adds a usage note, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description covers the essential purpose and usage context. However, it does not describe the return format or specify ordering of results, which could be useful for an agent. Overall, it is mostly complete but missing minor details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100%. The description adds no parameter information, which is acceptable since none exist. The baseline of 4 applies as the schema already fully covers the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('the authenticated customer's upcoming scheduled jobs'). It distinguishes from sibling tools like 'cancel_job' and 'reschedule_job' by specifying it is meant to be called before those actions to obtain the job ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Call this before rescheduling or cancelling to get the job ID,' providing clear when-to-use guidance. The sibling tools include reschedule_job and cancel_job, so the description effectively directs the agent to use this tool as a prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reschedule_jobAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID obtained from lookup_scheduled_jobs. | |
| reason | No | Short reason for the reschedule, shown to the assigned pro. | |
| confirmed | Yes | Must be true. Only set after the customer has explicitly confirmed. | |
| newScheduledTime | Yes | New local date/time at the job address, without an offset (e.g. "2025-07-15T10:00:00"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does real work: it discloses that a reschedule may be gated on pro approval and that confirmed must reflect genuine customer consent. It does not cover permissions, reversibility, or what happens if approval is denied, but the core side effect (a request, not an immediate mutation) is made clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose and then prerequisites; every sentence adds an actionable constraint with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should stand alone, and it covers purpose, prerequisites, and the approval/confirmation gate. It omits the expected response and what happens on a rejected approval, which are minor gaps for an otherwise self-contained definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented in structured form, and the description's parameter content (job ID source, confirmation gating) largely restates it. Baseline 3 applies since the description adds no format or edge-case detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('reschedule'), the resource ('one of the authenticated customer's upcoming jobs'), and the target fields ('new date and time'). The scope qualifier ('authenticated customer's upcoming jobs') plus the required lookup_scheduled_jobs precursor clearly separates it from siblings like cancel_job or calculate_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit call order ('Call lookup_scheduled_jobs first to get the job ID') and an explicit precondition for the confirmed flag ('Get explicit customer confirmation before setting confirmed to true'). It also states the human-approval gate, so the agent knows the invocation may not take effect immediately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
create_order1 field changed- changed
Input schema / properties / scheduledTime / descriptionPrevious value: -"ISO 8601 datetime string (e.g. \"2025-07-15T10:00:00-04:00\"). Always include the timezone offset."New value: +"Local date/time at the service address, without an offset (e.g. \"2025-07-15T10:00:00\"). Daylight saving is resolved for that date."
- Changed
current_datetime1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"Optional city name to get local time and offset. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."New value: +"Optional city name to get local time. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
- Changed
reschedule_job1 field changed- changed
Input schema / properties / newScheduledTime / descriptionPrevious value: -"New ISO 8601 datetime string for the rescheduled appointment."New value: +"New local date/time at the job address, without an offset (e.g. \"2025-07-15T10:00:00\")."
1 tool update
- Changed
reschedule_job1 field changed- added
Input schema / properties / reasonAdded value: +{ + "description": "Short reason for the reschedule, shown to the assigned pro.", + "type": "string" +}
2 tool updates
- Changed
calculate_quote1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami."New value: +"Customer city. Valid values: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
- Changed
current_datetime1 field changed- changed
Input schema / properties / city / descriptionPrevious value: -"Optional city name to get local time and offset. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami."New value: +"Optional city name to get local time and offset. Valid: Ottawa, Gatineau, Toronto, Montreal, Surrey, Miami, Dallas."
2 tool updates
- Changed
calculate_quote1 field changed- changed
Input schema / properties / serviceType / enumPrevious value: -[ - "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", - "SNOW_REMOVAL_AND_SALTING", - "TIRE-CHANGE-STANDARD", - "TIRE-CHANGE-SEASONAL" -]New value: +[ + "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" +]
- Changed
create_order1 field changed- changed
Input schema / properties / serviceType / enumPrevious value: -[ - "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", - "SNOW_REMOVAL_AND_SALTING", - "TIRE-CHANGE-STANDARD", - "TIRE-CHANGE-SEASONAL" -]New value: +[ + "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" +]
8 tool updates
- First observed
calculate_quote - First observed
cancel_job - First observed
create_order - First observed
current_datetime - First observed
get_available_services - First observed
get_profile - First observed
lookup_scheduled_jobs - First observed
reschedule_job
Related MCP Connectors
Discover local services and availability, then create, track, reschedule, or cancel bookings.
Find and book verified local home service professionals through AI agents.
Agent-first booking of home-service contractors in Canada and the US: quotes, availability, booking.
Find and book local service businesses (plumbers, HVAC, detailers) at real prices, with approval.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to submit and track local household-service requests such as house cleaning or pest control, validating details and passing each as a routed opportunity to external providers or buyer networks. Exposes service-discovery, submission, and status-check tools so those requests flow through one consistent intake pipeline.MIT
- FlicenseNot gradedqualityCmaintenanceEnables users to autonomously check calendar availability, discover movie showtimes, and securely book tickets with OTP-protected transactions.-
- AlicenseAqualityCmaintenanceBooks professional home cleaning services anywhere in metropolitan France end-to-end (coverage check, firm quote, booking creation, URSSAF "avance immédiate" enrollment, status polling). End users pay only 50% via SEPA direct debit thanks to the URSSAF immediate tax credit advance — no card payment required.510 npmMIT
- FlicenseNot gradedqualityCmaintenanceAutomates tennis court bookings on San Francisco Recreation websites, enabling users to check availability and book courts via SMS verification.-
Glama MCP Gateway
Add one secure layer between your agents and this server.