chucho — Book Direct

Find vacation rentals, explore photos and property details, and open direct host booking links.

我该使用它吗

质量与安全性

A
描述质量
95%
模式完整度
81%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~7,591token 数(工具定义)
~7.1 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 5.93%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "chucho": {
      "url": "https://chucho.ai/chatgpt/mcp"
    }
  }
}

远程端点

https://chucho.ai/chatgpt/mcpstreamable-http

它能做什么

工具清单

工具(11)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_booking_link(id, locale)

Get a currently published property’s confirmed host booking destination and structured reservation handoff. Open that URL to check dates, prices and terms, and complete booking with the host. This tool never creates a reservation or takes payment.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "propertyId": {
      "type": "string"
    },
    "propertyName": {
      "type": "string"
    },
    "bookingUrl": {
      "type": "string",
      "format": "uri"
    },
    "bookingProvider": {
      "type": "string",
      "const": "host"
    },
    "bookingStatus": {
      "type": "string",
      "const": "requires_host_confirmation"
    },
    "reservationCreated": {
      "type": "boolean",
      "const": false
    },
    "instructions": {
      "type": "string"
    },
    "action": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "const": "ReserveAction"
        },
        "name": {
          "type": "string"
        },
        "target": {
          "type": "object",
          "properties": {
            "@type": {
              "type": "string",
              "const": "EntryPoint"
            },
            "urlTemplate": {
              "type": "string",
              "format": "uri"
            },
            "actionPlatform": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "@type",
            "urlTemplate",
            "actionPlatform"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "@type",
        "name",
        "target"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "propertyId",
    "propertyName",
    "bookingUrl",
    "bookingProvider",
    "bookingStatus",
    "reservationCreated",
    "instructions",
    "action"
  ],
  "additionalProperties": false
}
🟢get_filters(locale, organization, q, country, place, ...)

Discover current coverage and supported exact place/area keys when the destination is ambiguous. Returns public organization names/slugs/counts; organization scopes its coverage. Not needed for searches with city, region or country text.

输入模式

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "organization": {
      "default": "",
      "description": "Exact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.",
      "type": "string",
      "maxLength": 160
    },
    "q": {
      "default": "",
      "description": "Public destination name to look up; searches labels, not property descriptions.",
      "type": "string",
      "maxLength": 160
    },
    "country": {
      "default": "",
      "description": "Country name or ISO code to scope counts.",
      "type": "string",
      "maxLength": 160
    },
    "place": {
      "default": "",
      "description": "Exact place key to list its immediate children.",
      "type": "string",
      "maxLength": 240
    },
    "kind": {
      "description": "Destination level. Without a query or scope, lists countries.",
      "type": "string",
      "enum": [
        "country",
        "region",
        "locality"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "organizations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "name",
          "slug",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "places": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "fullLabel": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "country",
              "region",
              "locality"
            ]
          },
          "countryCode": {
            "type": "string"
          },
          "parentKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "urlPath": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "key",
          "label",
          "fullLabel",
          "kind",
          "countryCode",
          "parentKey",
          "urlPath",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "features": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "key",
          "label",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "key",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "pool": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "totalPlaces": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "page": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "nextPage": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "organizations",
    "total",
    "places",
    "features",
    "amenities",
    "pool",
    "totalPlaces",
    "page",
    "pageSize",
    "nextPage"
  ],
  "additionalProperties": false
}
🟢search_properties(locale, organization, relatedTo, q, place, ...)

Find vacation rentals, holiday homes and places to stay. Search immediately with free-text city, region or country and guest/pool/amenity needs; use get_filters only for ambiguous destinations or exact place/area keys. Use organization with a returned organization.slug to explore all its homes, or relatedTo with a published property ID for more from that organization, same locality first and other locations included. Results include the organization name and browse link; offer this follow-up when relevant. Shows photos and host booking buttons automatically. Returns approved facts, never rates or availability. Never ask for check-in/check-out dates, stay length or nightly budget; ignore offered dates/budget as filters and search the supported needs now.

输入模式

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "organization": {
      "default": "",
      "description": "Exact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.",
      "type": "string",
      "maxLength": 160
    },
    "relatedTo": {
      "default": "",
      "description": "Published property ID. Find other homes from its organization, same locality first, then region/country and other locations. Excludes the source property. Additional filters still combine with AND.",
      "type": "string",
      "maxLength": 160
    },
    "q": {
      "default": "",
      "description": "Search public property names, locations and approved introduction text.",
      "type": "string",
      "maxLength": 160
    },
    "place": {
      "default": "",
      "description": "Place key from the live filter catalog.",
      "type": "string",
      "maxLength": 240
    },
    "bounds": {
      "default": "",
      "description": "Map viewport as south,west,north,east in degrees; keeps homes whose public area center is inside it. West greater than east crosses the antimeridian.",
      "type": "string",
      "maxLength": 80,
      "pattern": "^$|^-?\\d{1,3}(\\.\\d{1,6})?(,-?\\d{1,3}(\\.\\d{1,6})?){3}$"
    },
    "feature": {
      "default": "",
      "description": "Collection key from the filter catalog.",
      "type": "string",
      "enum": [
        "",
        "private-pools",
        "room-for-4",
        "room-for-6",
        "room-for-8",
        "room-for-10",
        "2-bedrooms",
        "3-bedrooms",
        "4-bedrooms",
        "pets",
        "air-conditioning",
        "workspace",
        "step-free"
      ]
    },
    "country": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "region": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "city": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "guests": {
      "description": "Minimum sleeping capacity.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "minBathrooms": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 50,
      "multipleOf": 0.5
    },
    "amenities": {
      "default": "",
      "description": "Comma-separated amenity keys; every requested amenity must be explicitly present.",
      "type": "string",
      "maxLength": 240
    },
    "pool": {
      "default": "",
      "type": "string",
      "enum": [
        "",
        "present",
        "private",
        "shared",
        "absent"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "organization": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "canonicalUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "slug",
                  "canonicalUrl"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "relatedPropertiesUrl": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "place": {
            "type": "string"
          },
          "summary": {
            "type": "string",
            "maxLength": 240
          },
          "constraint": {
            "type": "string",
            "maxLength": 160
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "canonicalUrl": {
            "type": "string"
          },
          "areaDistanceKm": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "bedrooms": {
            "type": "number"
          },
          "beds": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "pool": {
            "type": "object",
            "properties": {
              "present": {
                "type": "boolean"
              },
              "privacy": {
                "type": "string",
                "enum": [
                  "private",
                  "shared"
                ]
              }
            },
            "required": [
              "present"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "organization",
          "relatedPropertiesUrl",
          "id",
          "name",
          "place",
          "amenities",
          "canonicalUrl"
        ],
        "additionalProperties": false
      }
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "missingIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "organization": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "canonicalUrl": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "slug",
            "canonicalUrl"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "relatedTo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "page": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "nextPage": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "properties",
    "locale",
    "organization",
    "relatedTo",
    "total",
    "page",
    "pageSize",
    "nextPage"
  ],
  "additionalProperties": false
}
🟢get_property(id, locale)

Read a currently published property's approved facts and host booking link. Unpublished properties return 404 immediately.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "organization": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "canonicalUrl": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "slug",
            "canonicalUrl"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "relatedPropertiesUrl": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "location": {
      "type": "object",
      "properties": {
        "countryCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "revision": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "places": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "country",
                  "region",
                  "locality"
                ]
              },
              "countryCode": {
                "type": "string"
              },
              "parentKey": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "urlPath": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "labelEs": {
                "type": "string"
              },
              "fullLabel": {
                "type": "string"
              },
              "fullLabelEs": {
                "type": "string"
              },
              "center": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "lat": {
                        "type": "number"
                      },
                      "lng": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "lat",
                      "lng"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "key",
              "kind",
              "countryCode",
              "parentKey",
              "urlPath",
              "label",
              "labelEs",
              "fullLabel",
              "fullLabelEs",
              "center"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "countryCode",
        "revision",
        "places"
      ],
      "additionalProperties": false
    },
    "facts": {
      "type": "object",
      "properties": {
        "localContent": {
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 160
          }
        },
        "capacity": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "bedrooms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 50
        },
        "beds": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "bathrooms": {
          "type": "number",
          "minimum": 0,
          "maximum": 50,
          "multipleOf": 0.5
        },
        "description": {
          "type": "object",
          "properties": {
            "en": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4000
            },
            "es": {
              "type": "string",
              "maxLength": 4000
            }
          },
          "required": [
            "en"
          ],
          "additionalProperties": false
        },
        "positioning": {
          "type": "object",
          "properties": {
            "en": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4000
            },
            "es": {
              "type": "string",
              "maxLength": 4000
            }
          },
          "required": [
            "en"
          ],
          "additionalProperties": false
        },
        "constraint": {
          "type": "object",
          "properties": {
            "en": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4000
            },
            "es": {
              "type": "string",
              "maxLength": 4000
            }
          },
          "required": [
            "en"
          ],
          "additionalProperties": false
        },
        "rooms": {
          "default": [],
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              },
              "beds": {
                "type": "integer",
                "minimum": 0,
                "maximum": 20
              },
              "bedDescription": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              },
              "airConditioning": {
                "type": "boolean"
              },
              "bathroom": {
                "type": "boolean"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "amenities": {
          "default": [],
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "enum": [
                  "air-conditioning",
                  "wifi",
                  "workspace",
                  "parking",
                  "pets",
                  "kitchen",
                  "washer",
                  "step-free"
                ]
              },
              "present": {
                "type": "boolean"
              },
              "detail": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "key",
              "present"
            ],
            "additionalProperties": false
          }
        },
        "pool": {
          "type": "object",
          "properties": {
            "present": {
              "type": "boolean"
            },
            "privacy": {
              "type": "string",
              "enum": [
                "private",
                "shared"
              ]
            },
            "fenced": {
              "type": "boolean"
            },
            "heated": {
              "type": "boolean"
            },
            "detail": {
              "type": "object",
              "properties": {
                "en": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                },
                "es": {
                  "type": "string",
                  "maxLength": 4000
                }
              },
              "required": [
                "en"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "present"
          ],
          "additionalProperties": false
        },
        "connectivity": {
          "type": "object",
          "properties": {
            "claim": {
              "type": "object",
              "properties": {
                "en": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                },
                "es": {
                  "type": "string",
                  "maxLength": 4000
                }
              },
              "required": [
                "en"
              ],
              "additionalProperties": false
            },
            "downloadMbps": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "measuredAt": {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            }
          },
          "additionalProperties": false
        },
        "rules": {
          "type": "object",
          "properties": {
            "en": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4000
            },
            "es": {
              "type": "string",
              "maxLength": 4000
            }
          },
          "required": [
            "en"
          ],
          "additionalProperties": false
        },
        "checkinTime": {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        "checkoutTime": {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        "host": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 160
            },
            "description": {
              "type": "object",
              "properties": {
                "en": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                },
                "es": {
                  "type": "string",
                  "maxLength": 4000
                }
              },
              "required": [
                "en"
              ],
              "additionalProperties": false
            },
            "languages": {
              "default": [],
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 160
              }
            }
          },
          "required": [
            "name",
            "languages"
          ],
          "additionalProperties": false
        },
        "photos": {
          "default": [],
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "caption": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              },
              "group": {
                "type": "string",
                "maxLength": 160
              },
              "publicListing": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "caption"
            ],
            "additionalProperties": false
          }
        },
        "faq": {
          "default": [],
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "question": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              },
              "answer": {
                "type": "object",
                "properties": {
                  "en": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "es": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "en"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "question",
              "answer"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "rooms",
        "amenities",
        "photos",
        "faq"
      ],
      "additionalProperties": false
    },
    "photos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "caption": {
            "type": "object",
            "properties": {
              "en": {
                "type": "string"
              },
              "es": {
                "type": "string"
              }
            },
            "required": [
              "en"
            ],
            "additionalProperties": false
          },
          "group": {
            "type": "string"
          },
          "publicListing": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "url",
          "caption"
        ],
        "additionalProperties": false
      }
    },
    "offerings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "object",
            "properties": {
              "en": {
                "type": "string"
              },
              "es": {
                "type": "string"
              }
            },
            "required": [
              "en"
            ],
            "additionalProperties": false
          },
          "description": {
            "type": "object",
            "properties": {
              "en": {
                "type": "string"
              },
              "es": {
                "type": "string"
              }
            },
            "required": [
              "en"
            ],
            "additionalProperties": false
          },
          "imageUrl": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "activity",
              "restaurant",
              "grocery",
              "offer"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "source"
        ],
        "additionalProperties": false
      }
    },
    "bookingUrl": {
      "type": "string"
    },
    "canonicalUrl": {
      "type": "string"
    },
    "markdownUrl": {
      "type": "string"
    },
    "updatedAt": {
      "type": "string"
    },
    "revision": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "theme": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "organization",
    "relatedPropertiesUrl",
    "id",
    "slug",
    "name",
    "city",
    "region",
    "country",
    "location",
    "facts",
    "photos",
    "offerings",
    "bookingUrl",
    "canonicalUrl",
    "markdownUrl",
    "updatedAt",
    "revision",
    "theme"
  ],
  "additionalProperties": false
}
🟢render_properties(ids, locale)

Use this when the traveler wants photos or a comparison of homes already found by search_properties. Show one to six matching IDs as cards with Details and host booking links. Rechecks publication. Do not repeat the full cards in prose. Prices and availability are checked on the host website.

输入模式

{
  "type": "object",
  "properties": {
    "ids": {
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      }
    },
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "ids"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "organization": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "canonicalUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "slug",
                  "canonicalUrl"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "relatedPropertiesUrl": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "place": {
            "type": "string"
          },
          "summary": {
            "type": "string",
            "maxLength": 240
          },
          "constraint": {
            "type": "string",
            "maxLength": 160
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "canonicalUrl": {
            "type": "string"
          },
          "areaDistanceKm": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "bedrooms": {
            "type": "number"
          },
          "beds": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "pool": {
            "type": "object",
            "properties": {
              "present": {
                "type": "boolean"
              },
              "privacy": {
                "type": "string",
                "enum": [
                  "private",
                  "shared"
                ]
              }
            },
            "required": [
              "present"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "organization",
          "relatedPropertiesUrl",
          "id",
          "name",
          "place",
          "amenities",
          "canonicalUrl"
        ],
        "additionalProperties": false
      }
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "missingIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "properties",
    "locale"
  ],
  "additionalProperties": false
}
🟡record_property_event(id, type, sessionId, locale)

For the property-card UI only: record a property view or successful outbound host-link action. Accepts only a public property ID, a temporary random session UUID, event type and language. Never send conversation text, contacts or URLs. This does not book a stay.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "type": {
      "type": "string",
      "enum": [
        "public_property_opened",
        "public_booking_referral"
      ]
    },
    "sessionId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "id",
    "type",
    "sessionId",
    "locale"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "accepted": {
      "type": "boolean"
    }
  },
  "required": [
    "accepted"
  ],
  "additionalProperties": false
}
🟢open_explorer(locale, organization, relatedTo, q, place, ...)

Open the published vacation-home browser in ChatGPT. Search by destination, guests and amenities, inspect photos and save homes to the conversation shortlist.

输入模式

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "organization": {
      "default": "",
      "description": "Exact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.",
      "type": "string",
      "maxLength": 160
    },
    "relatedTo": {
      "default": "",
      "description": "Published property ID. Find other homes from its organization, same locality first, then region/country and other locations. Excludes the source property. Additional filters still combine with AND.",
      "type": "string",
      "maxLength": 160
    },
    "q": {
      "default": "",
      "description": "Search public property names, locations and approved introduction text.",
      "type": "string",
      "maxLength": 160
    },
    "place": {
      "default": "",
      "description": "Place key from the live filter catalog.",
      "type": "string",
      "maxLength": 240
    },
    "bounds": {
      "default": "",
      "description": "Map viewport as south,west,north,east in degrees; keeps homes whose public area center is inside it. West greater than east crosses the antimeridian.",
      "type": "string",
      "maxLength": 80,
      "pattern": "^$|^-?\\d{1,3}(\\.\\d{1,6})?(,-?\\d{1,3}(\\.\\d{1,6})?){3}$"
    },
    "feature": {
      "default": "",
      "description": "Collection key from the filter catalog.",
      "type": "string",
      "enum": [
        "",
        "private-pools",
        "room-for-4",
        "room-for-6",
        "room-for-8",
        "room-for-10",
        "2-bedrooms",
        "3-bedrooms",
        "4-bedrooms",
        "pets",
        "air-conditioning",
        "workspace",
        "step-free"
      ]
    },
    "country": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "region": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "city": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "guests": {
      "description": "Minimum sleeping capacity.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "minBathrooms": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 50,
      "multipleOf": 0.5
    },
    "amenities": {
      "default": "",
      "description": "Comma-separated amenity keys; every requested amenity must be explicitly present.",
      "type": "string",
      "maxLength": 240
    },
    "pool": {
      "default": "",
      "type": "string",
      "enum": [
        "",
        "present",
        "private",
        "shared",
        "absent"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "additionalProperties": false
}
🟢open_shortlist(locale, organization, relatedTo, q, place, ...)

Open the conversation’s shortlist beside the chat. Saved public property IDs are kept in app model context and refreshed before display.

输入模式

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "organization": {
      "default": "",
      "description": "Exact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.",
      "type": "string",
      "maxLength": 160
    },
    "relatedTo": {
      "default": "",
      "description": "Published property ID. Find other homes from its organization, same locality first, then region/country and other locations. Excludes the source property. Additional filters still combine with AND.",
      "type": "string",
      "maxLength": 160
    },
    "q": {
      "default": "",
      "description": "Search public property names, locations and approved introduction text.",
      "type": "string",
      "maxLength": 160
    },
    "place": {
      "default": "",
      "description": "Place key from the live filter catalog.",
      "type": "string",
      "maxLength": 240
    },
    "bounds": {
      "default": "",
      "description": "Map viewport as south,west,north,east in degrees; keeps homes whose public area center is inside it. West greater than east crosses the antimeridian.",
      "type": "string",
      "maxLength": 80,
      "pattern": "^$|^-?\\d{1,3}(\\.\\d{1,6})?(,-?\\d{1,3}(\\.\\d{1,6})?){3}$"
    },
    "feature": {
      "default": "",
      "description": "Collection key from the filter catalog.",
      "type": "string",
      "enum": [
        "",
        "private-pools",
        "room-for-4",
        "room-for-6",
        "room-for-8",
        "room-for-10",
        "2-bedrooms",
        "3-bedrooms",
        "4-bedrooms",
        "pets",
        "air-conditioning",
        "workspace",
        "step-free"
      ]
    },
    "country": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "region": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "city": {
      "default": "",
      "type": "string",
      "maxLength": 160
    },
    "guests": {
      "description": "Minimum sleeping capacity.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "minBathrooms": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 50,
      "multipleOf": 0.5
    },
    "amenities": {
      "default": "",
      "description": "Comma-separated amenity keys; every requested amenity must be explicitly present.",
      "type": "string",
      "maxLength": 240
    },
    "pool": {
      "default": "",
      "type": "string",
      "enum": [
        "",
        "present",
        "private",
        "shared",
        "absent"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "additionalProperties": false
}
🟢search_property_mentions(query)

Search published property names and destinations for the composer’s property picker. Returns public property references only.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 160
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_stay_areas(q, locale)

Find named public areas with published chucho homes. Search a destination's town, region or country. Use the exact returned area key for nearby search. These are public locality centers, never property coordinates; unmapped homes remain searchable with search_properties.

输入模式

{
  "type": "object",
  "properties": {
    "q": {
      "default": "",
      "description": "Public destination name to look up; empty lists current named stay areas.",
      "type": "string",
      "maxLength": 160
    },
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "areas": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "key",
          "label",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "areas",
    "total",
    "truncated"
  ],
  "additionalProperties": false
}
🟢search_nearby_properties(locale, feature, guests, minBedrooms, minBathrooms, ...)

Find published homes near an exact get_stay_areas key, with guest, bedroom, pool and amenity filters. Distances are approximate between public locality centers, not home locations or driving times. Choose the area using destination evidence or ask the traveler; never invent a key. No live rates or availability. Show returned homes as cards.

输入模式

{
  "type": "object",
  "properties": {
    "locale": {
      "default": "en",
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    },
    "feature": {
      "default": "",
      "description": "Collection key from the filter catalog.",
      "type": "string",
      "enum": [
        "",
        "private-pools",
        "room-for-4",
        "room-for-6",
        "room-for-8",
        "room-for-10",
        "2-bedrooms",
        "3-bedrooms",
        "4-bedrooms",
        "pets",
        "air-conditioning",
        "workspace",
        "step-free"
      ]
    },
    "guests": {
      "description": "Minimum sleeping capacity.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "minBedrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "minBathrooms": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 50,
      "multipleOf": 0.5
    },
    "amenities": {
      "default": "",
      "description": "Comma-separated amenity keys; every requested amenity must be explicitly present.",
      "type": "string",
      "maxLength": 240
    },
    "pool": {
      "default": "",
      "type": "string",
      "enum": [
        "",
        "present",
        "private",
        "shared",
        "absent"
      ]
    },
    "page": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    },
    "nearArea": {
      "type": "string",
      "minLength": 1,
      "maxLength": 240,
      "description": "Exact public stay-area key from get_stay_areas; never invent a key or coordinates."
    },
    "radiusKm": {
      "default": 30,
      "description": "Maximum approximate straight-line distance between public area centers, not home GPS or driving distance.",
      "type": "number",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "nearArea"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "page": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "nextPage": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "area": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "key",
        "label"
      ],
      "additionalProperties": false
    },
    "radiusKm": {
      "type": "number"
    },
    "distanceBasis": {
      "type": "string"
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "organization": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "canonicalUrl": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "slug",
                  "canonicalUrl"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "relatedPropertiesUrl": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "place": {
            "type": "string"
          },
          "summary": {
            "type": "string",
            "maxLength": 240
          },
          "constraint": {
            "type": "string",
            "maxLength": 160
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "canonicalUrl": {
            "type": "string"
          },
          "areaDistanceKm": {
            "type": "number"
          },
          "capacity": {
            "type": "number"
          },
          "bedrooms": {
            "type": "number"
          },
          "beds": {
            "type": "number"
          },
          "bathrooms": {
            "type": "number"
          },
          "pool": {
            "type": "object",
            "properties": {
              "present": {
                "type": "boolean"
              },
              "privacy": {
                "type": "string",
                "enum": [
                  "private",
                  "shared"
                ]
              }
            },
            "required": [
              "present"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "organization",
          "relatedPropertiesUrl",
          "id",
          "name",
          "place",
          "amenities",
          "canonicalUrl"
        ],
        "additionalProperties": false
      }
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ]
    }
  },
  "required": [
    "total",
    "page",
    "pageSize",
    "nextPage",
    "area",
    "radiusKm",
    "distanceBasis",
    "properties",
    "locale"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本11 个工具