Skip to main content
Glama

Homejourney Singapore property listings

Search Homejourney services

search_services
Read-only

Use this to find active Homejourney services. Each result carries the provider, package, catalogue version, and price required for quoting and checkout. Every result sells under its provider's own name and logo (soldUnder "provider"): a large operator's at its own published price, a small shop's at Homejourney's standard price; priceSetBy says which. A service can list both. Booking saves a card. Booked signed in with create_service_booking: "Nothing is charged now. We hold the amount once the provider accepts, and charge it after the job is done." Booked with prepare_guest_service_checkout: "Nothing is charged or held now. We charge your card, or send a PayNow request, after the job is done." For a service priced by home size, such as move-in cleaning, pass the home's floor_area_sqft, hdb_flat_type or bedrooms to get each provider's one package for that home; noPackageForHomeSize names providers with none. For aircon, pass unit_type and units (or say them in the query, as in "2 wall units") to get each provider's one package for those units; noPackageForUnits names providers with none. A search for an architect, engineer or builder, or about extending, adding a storey or attic, or rebuilding a landed house, also returns landedWorks: whether the plan is likely A&A or reconstruction, its approvals and how to record the owner's request.

Input Schema

NameRequiredDescriptionDefault
pageNo
limitNo
queryNo
unitsNoHow many aircon units; read from the query ("3 units") when left out.
bedroomsNoBedrooms, matched only where a package or the home gives no floor area.
unit_typeNoThe aircon unit type; read from the query ("2 wall units") when left out. Asks for aircon, so other trades are left out unless service_type is set.
provider_idNo
service_typeNo
hdb_flat_typeNoThe HDB flat type, matched by its usual floor area.
floor_area_sqftNoThe home's floor area in sq ft; it outranks hdb_flat_type.

Output Schema

NameRequiredDescriptionDefault
dataYes
paginationYes
landedWorksNoPresent when the search asks for an architect, engineer or builder, or about extending, adding a storey or attic, or rebuilding a landed house: each plan with whether it is likely A&A or reconstruction and its approvals, the firms needed, the planning controls by house type, how to check the plot on URA SPACE, nextStep (record_service_interest with service_type and the plan serviceId), the guide URL and its URA and BCA sources. General information: the owner's Qualified Person confirms what the plot allows.
resultReasonNoWhy a search found no service; absent when it found services.
noPackageForUnitsNoProviders that price the service by aircon unit type or count but sell no package for the units asked about.
noPackageForHomeSizeNoProviders that price the service by home size but sell no package for the home asked about.
supportedServiceTypesYes
unsupportedCategoryPolicyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / landedWorks
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Present when the search asks for an architect, engineer or builder, or about extending, adding a storey or attic, or rebuilding a landed house: each plan with whether it is likely A&A or reconstruction and its approvals, the firms needed, the planning controls by house type, how to check the plot on URA SPACE, nextStep (record_service_interest with service_type and the plan serviceId), the guide URL and its URA and BCA sources. General information: the owner's Qualified Person confirms what the plot allows.",
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / unit_type / description
      Previous value: -"The aircon unit type; read from the query (\"2 wall units\") when left out."New value: +"The aircon unit type; read from the query (\"2 wall units\") when left out. Asks for aircon, so other trades are left out unless service_type is set."
  3. Changed3 schema fields changed
    • addedInput schema / properties / unit_type
      Added value: +{
      +  "description": "The aircon unit type; read from the query (\"2 wall units\") when left out.",
      +  "enum": [
      +    "wall",
      +    "window",
      +    "ceiling",
      +    "ducted",
      +    "portable"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / units
      Added value: +{
      +  "description": "How many aircon units; read from the query (\"3 units\") when left out.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / noPackageForUnits
      Added value: +{
      +  "description": "Providers that price the service by aircon unit type or count but sell no package for the units asked about.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / data / items / properties / url
      Added value: +{
      +  "type": "string"
      +}
  5. Changed4 schema fields changed
    • addedInput schema / properties / bedrooms
      Added value: +{
      +  "description": "Bedrooms, matched only where a package or the home gives no floor area.",
      +  "maximum": 10,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / floor_area_sqft
      Added value: +{
      +  "description": "The home's floor area in sq ft; it outranks hdb_flat_type.",
      +  "maximum": 20000,
      +  "minimum": 100,
      +  "type": "integer"
      +}
    • addedInput schema / properties / hdb_flat_type
      Added value: +{
      +  "description": "The HDB flat type, matched by its usual floor area.",
      +  "enum": [
      +    "2-room",
      +    "3-room",
      +    "4-room",
      +    "5-room",
      +    "executive"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / noPackageForHomeSize
      Added value: +{
      +  "description": "Providers that price the service by home size but sell no package for the home asked about.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  6. Changed1 schema field changed
    • changedOutput schema / properties / data / items / properties / estimatedDurationMinutes / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
  7. Changed2 schema fields changed
    • addedOutput schema / properties / data / items / properties / nextAction / description
      Added value: +"quote_service_booking for a priced package; not_bookable when the provider prices the job only after seeing it, which nothing on Homejourney can book yet."
    • changedOutput schema / properties / data / items / properties / nextAction / enum
      Previous value: -[
      -  "quote_service_booking",
      -  "request_provider_quote"
      -]New value: +[
      +  "quote_service_booking",
      +  "not_bookable"
      +]
  8. Changed2 schema fields changed
    • addedOutput schema / properties / data / items / properties / excludedItems
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / items / properties / includedItems
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  9. Changed1 schema field changed
    • addedOutput schema / properties / data / items / properties / gst
      Added value: +{
      +  "enum": [
      +    "provider_included",
      +    "not_charged"
      +  ],
      +  "type": "string"
      +}
  10. Changed1 schema field changed
    • addedOutput schema / properties / data / items / properties / priceSetBy
      Added value: +{
      +  "enum": [
      +    "homejourney",
      +    "provider"
      +  ],
      +  "type": "string"
      +}
  11. Changed1 schema field changed
    • addedOutput schema / properties / data / items / properties / soldUnder
      Added value: +{
      +  "enum": [
      +    "homejourney",
      +    "provider"
      +  ],
      +  "type": "string"
      +}
  12. Changed1 schema field changed
    • addedOutput schema / properties / resultReason
      Added value: +{
      +  "description": "Why a search found no service; absent when it found services.",
      +  "enum": [
      +    "no_such_entity",
      +    "filtered_out",
      +    "no_inventory_here"
      +  ],
      +  "type": "string"
      +}
  13. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations: explains soldUnder and priceSetBy semantics, the dual pricing model (large operator vs. small shop), that booking saves a card, and the precise charge/hold timing for both checkout paths. It also discloses fallback diagnostics (noPackageForHomeSize, noPackageForUnits) and the conditional landedWorks block. No contradiction with readOnlyHint=true.

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

Conciseness3/5

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

Purpose and result shape are front-loaded, but the middle section embeds verbatim booking/checkout charge copy that belongs to sibling tools and dilutes the search framing. The aircon and home-size rules are useful, yet the paragraph is dense and would benefit from tighter separation.

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

Completeness4/5

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

For a 10-parameter search with an output schema, it covers the ambiguous enumerable params, the query-text inference behavior, and the extra landedWorks return. Pagination/filter params (page, limit, provider_id, service_type) and any result-shape caveats are left to the schema, which is acceptable given an output schema exists.

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

Parameters4/5

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

With only 50% schema coverage, the description carries real weight: it explains how floor_area_sqft outranks hdb_flat_type in practice, how unit_type/units/bedrooms are matched or inferred from the query string, and why unit_type narrows the trade. page, limit, provider_id and service_type remain unexplained, so it doesn't cover everything.

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

Purpose4/5

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

Opens with a specific verb+resource: 'find active Homejourney services,' which is distinguishable from search_listings, search_agents and search_guides by resource alone. It never explicitly contrasts itself with those siblings, so the differentiation is implicit rather than stated.

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

Usage Guidelines4/5

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

Gives concrete conditional rules: pass floor_area_sqft/hdb_flat_type/bedrooms for home-size pricing, unit_type+units for aircon, and notes that these can be inferred from the query text. It also maps outcomes to create_service_booking vs. prepare_guest_service_checkout. It stops short of explicit when-not-to-use guidance or naming non-booking siblings like quote_service_booking.

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