Skip to main content
Glama

Homejourney Singapore property listings

Prepare guest service checkout

prepare_guest_service_checkout

Use this to book for a customer who is not signed in to Homejourney here, such as on the public connector; it needs no Homejourney account. A user signed in on this connector books for themselves with create_service_booking instead. After the customer confirms the selected provider package, the exact price, schedule, address, customer-provided email and mobile number, and contact consent, it returns one branded Homejourney review-and-authorization link. No OTP is required. The customer saves a card there for the exact booking, or chooses PayNow. Tell the customer: "Nothing is charged or held now. We charge your card, or send a PayNow request, after the job is done." The booking appears in the Homejourney account of the customer once they sign in with the same verified email or WhatsApp number. When someone else lets the technician in, such as a tenant, add them as onsite_contact.

Input Schema

NameRequiredDescriptionDefault
hostYesThe AI app making this call, such as chatgpt or claude. It records where the request came from; it is not the listing owner or agent.
extrasNoOptional extras from the quote's availableExtras, each id once with a quantity up to its maxQuantity. Each is charged at the operator's price and leaves the visit's length and start as quoted.
confirmedYes
base_priceNo
provider_idNoThe chosen package's providerId from search_services.
total_priceNo
consent_textNo
price_sourceYesThe chosen package's priceSource from search_services.
service_typeYes
customer_infoYes
property_sizeNoHome size, for an offering priced by home size. A quote without it names the sizes the provider prices.
onsite_contactNoOptional. The person at the address who lets the technician in when the customer won't be there, such as a landlord's tenant. Only the business assigned to the job sees it, until the job closes; the customer still gets every update and the charge. Send it only after the customer confirms that person agreed to be contacted.
scheduled_dateYes
singapore_timeYesExact customer-selected Singapore start time in 24-hour HH:mm format. Do not send a time range.
discount_amountNo
idempotency_keyYes
number_of_hoursNoHours booked, for an offering priced per hour. The provider may charge a minimum number of hours.
number_of_unitsNo
service_detailsYesThe chosen package's serviceId from search_services, such as leak-repair. Put the customer's own words in issue_description.
host_reference_idNo
issue_descriptionNo
service_frequencyNoone-time
catalog_version_idYesThe chosen package's catalogVersionId from search_services.
consent_to_contactYes
platform_unit_countNoRetired: Homejourney no longer offers its own catalog prices, so a launch_guide selection is refused. Leave it out.
provider_package_idNoThe chosen package's providerPackageId from search_services.
special_instructionsNo

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / customer_info / properties / address / description
      Added value: +"The service address with its postal code. Required for every service except moving, which takes pickup_address and delivery_address instead."
    • addedInput schema / properties / customer_info / properties / delivery_address / description
      Added value: +"Required for moving: where the move ends, with its postal code."
    • addedInput schema / properties / customer_info / properties / pickup_address / description
      Added value: +"Required for moving: where the move starts, with its postal code."
    • addedInput schema / properties / onsite_contact
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional. The person at the address who lets the technician in when the customer won't be there, such as a landlord's tenant. Only the business assigned to the job sees it, until the job closes; the customer still gets every update and the charge. Send it only after the customer confirms that person agreed to be contacted.",
      +  "properties": {
      +    "consent_confirmed": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "name": {
      +      "maxLength": 120,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "phone": {
      +      "maxLength": 40,
      +      "minLength": 8,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "phone",
      +    "consent_confirmed"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / serviceAddress
      Added value: +{
      +  "type": "string"
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / catalog_version_id / description
      Added value: +"The chosen package's catalogVersionId from search_services."
    • addedInput schema / properties / price_source / description
      Added value: +"The chosen package's priceSource from search_services."
    • addedInput schema / properties / provider_id / description
      Added value: +"The chosen package's providerId from search_services."
    • addedInput schema / properties / provider_package_id / description
      Added value: +"The chosen package's providerPackageId from search_services."
    • addedInput schema / properties / service_details / description
      Added value: +"The chosen package's serviceId from search_services, such as leak-repair. Put the customer's own words in issue_description."
  3. Changed1 schema field changed
    • addedInput schema / properties / extras
      Added value: +{
      +  "description": "Optional extras from the quote's availableExtras, each id once with a quantity up to its maxQuantity. Each is charged at the operator's price and leaves the visit's length and start as quoted.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "maxLength": 40,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "quantity": {
      +        "maximum": 10,
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "quantity"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / host / description
      Added value: +"The AI app making this call, such as chatgpt or claude. It records where the request came from; it is not the listing owner or agent."
  5. Changed1 schema field changed
    • changedInput schema / properties / platform_unit_count / description
      Previous value: -"The platformUnitCount of a launch_guide search result. Omit provider_id and provider_package_id with it."New value: +"Retired: Homejourney no longer offers its own catalog prices, so a launch_guide selection is refused. Leave it out."
  6. Changed2 schema fields changed
    • addedInput schema / properties / number_of_hours
      Added value: +{
      +  "description": "Hours booked, for an offering priced per hour. The provider may charge a minimum number of hours.",
      +  "maximum": 24,
      +  "minimum": 1,
      +  "type": "number"
      +}
    • addedInput schema / properties / property_size
      Added value: +{
      +  "description": "Home size, for an offering priced by home size. A quote without it names the sizes the provider prices.",
      +  "maxLength": 40,
      +  "minLength": 1,
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description adds genuinely new behavior: no account needed, no OTP, returns exactly one branded review-and-authorization link, nothing is charged or held now, charging happens after the job, and the booking later appears in the customer's account matched by verified email or WhatsApp. These are material payment and identity behaviors not encoded anywhere in the annotations. It does not discuss failure modes, idempotency-key collisions, or what happens if the link expires.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with eligibility and the sibling alternative, then sequencing, then output, then payment disclosure, then a verbatim customer script. The scripted customer message is long but functional; a pass or two could tighten the account-appearance and onsite_contact sentences without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 27-parameter, 11-required, nested-object booking mutation with an output schema, the description still supplies the things structured fields can't: who may use it, the ordering constraint (confirm first), the no-OTP/no-hold payment model, and post-booking account linkage. Return values are left to the output schema, which is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 44% across 27 parameters, so the description must compensate, and it does for the highest-risk fields: it specifies that the booked data includes the exact price, schedule, address, customer email/mobile and consent, and it explains onsite_contact's purpose and when to add it (tenant or someone else letting the technician in). Several undocumented params (idempotency_key, host, base_price, special_instructions) remain unaddressed in prose, but the description carries the semantic load the schema leaves out for the decision-critical fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('book for a customer who is not signed in'), and immediately distinguishes this tool from its sibling create_service_booking by naming the signed-in path. An agent can tell the two apart without inspecting either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use (guest, unauthenticated customer, public connector) and when-not-to-use with the named alternative ('A user signed in on this connector books for themselves with create_service_booking instead'). It also adds a precondition: only after the customer confirms the provider package, price, schedule, address, email, mobile and consent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources