Threshold

Search and book verified independent vacation rentals directly from hosts, with no guest fees.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
81%
Calidad de los nombres
96%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,737Tokens (definiciones de herramientas)
~883 BTamaño de respuesta típico
Impacto moderado en la atención (1.36% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "stays": {
      "url": "https://threshold.rentals/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://threshold.rentals/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (10)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢search_stays(place, near_lat, near_lng, radius_km, check_in, ...)

Find verified independent vacation rentals. Filters are strict: every listed amenity must be present. With dates, results include a cached availability signal and an indicative all-in total (no guest service fee). Maps to GET /v1/search.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "Town and state/country, e.g. 'Asheville, NC'. Use near_lat/near_lng instead when you have coordinates."
    },
    "near_lat": {
      "type": "number"
    },
    "near_lng": {
      "type": "number"
    },
    "radius_km": {
      "type": "number",
      "default": 25
    },
    "check_in": {
      "type": "string",
      "format": "date"
    },
    "check_out": {
      "type": "string",
      "format": "date"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "default": 2
    },
    "children": {
      "type": "integer",
      "minimum": 0
    },
    "infants": {
      "type": "integer",
      "minimum": 0
    },
    "pets": {
      "type": "integer",
      "minimum": 0
    },
    "min_bedrooms": {
      "type": "integer"
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Amenity codes, e.g. hot_tub, wifi, ev_charger, dedicated_workspace, pool, fireplace_wood."
    },
    "max_total_usd": {
      "type": "number",
      "description": "Maximum all-in total in dollars. Requires dates."
    },
    "instant_only": {
      "type": "boolean"
    },
    "step_free_entrance": {
      "type": "boolean"
    },
    "min_wifi_mbps": {
      "type": "number"
    },
    "limit": {
      "type": "integer",
      "maximum": 20,
      "default": 8
    }
  }
}
🟢get_property(property_id)

Full record for one property: beds by room, amenities with details, access and stairs, rules, host FAQ, policies, and verification status. Maps to GET /v1/properties/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string"
    }
  },
  "required": [
    "property_id"
  ]
}
🟢check_availability(property_id, from, to)

Day-by-day availability and indicative nightly prices for up to 180 days. Cached; use get_quote to confirm. Useful when the guest's dates are flexible. Maps to GET /v1/properties/{id}/availability.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string"
    },
    "from": {
      "type": "string",
      "format": "date"
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "Exclusive"
    }
  },
  "required": [
    "property_id",
    "from",
    "to"
  ]
}
🟢get_quote(property_id, check_in, check_out, adults, children, ...)

Itemized, binding price for exact dates and party, after re-checking the host's live calendars. Valid 10 minutes. Returns house rules and an exact refund schedule to show the guest. Does not reserve the dates. Maps to POST /v1/properties/{id}/quotes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string"
    },
    "check_in": {
      "type": "string",
      "format": "date"
    },
    "check_out": {
      "type": "string",
      "format": "date"
    },
    "adults": {
      "type": "integer",
      "minimum": 1
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "infants": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "pets": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "property_id",
    "check_in",
    "check_out",
    "adults"
  ]
}
🟢get_booking(booking_id)

Status, amounts, refund schedule, guest ID verification link, and when arrival details will be sent. Maps to GET /v1/bookings/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string"
    }
  },
  "required": [
    "booking_id"
  ]
}
🟡ask_host(property_id, question)

Send a question the property record and FAQ don't answer. The answer arrives later; tell the guest you'll follow up. Don't include the guest's contact details. Maps to POST /v1/properties/{id}/questions.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string"
    },
    "question": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "property_id",
    "question"
  ]
}
🟢get_messages(booking_id, guest_email)

The conversation between the guest and the host about a booking, oldest first (including the guest's note with the request and the host's note when accepting or declining). Use it to relay the host's replies. Pass guest_email (the email the booking was made with) unless you connect with an agent token.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string"
    },
    "guest_email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "booking_id"
  ]
}
🟡send_message(booking_id, body, guest_email)

Send a message to the host on the guest's behalf, e.g. a question about check-in or a late arrival. Only send what the guest asked you to say. The host is emailed and replies appear in get_messages. Open from the request until two weeks after check-out.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string"
    },
    "body": {
      "type": "string",
      "maxLength": 2000
    },
    "guest_email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "booking_id",
    "body"
  ]
}
🔴cancel_booking(booking_id, confirm, expected_refund_cents, guest_email)

Two-step. First call with confirm=false to see what the guest gets back if they cancel now (nothing changes). Tell the guest that refund and get their go-ahead, then call again with confirm=true and expected_refund_cents set to the refund amount from the first call. If the refund changed in between, the call fails with refund_changed instead of cancelling. Refunds go to the guest's card automatically. Pass guest_email (the email the booking was made with) unless you connect with an agent token.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "string"
    },
    "confirm": {
      "type": "boolean"
    },
    "expected_refund_cents": {
      "type": "integer",
      "description": "Required when confirm is true: refund.amount from the confirm=false call."
    },
    "guest_email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "booking_id",
    "confirm"
  ]
}
🟡request_booking(quote_id, first_name, last_name, email, phone, ...)

Request a stay from a quote. Set house_rules_accepted only after the guest has seen and agreed to the quote's house_rules. If the quote's payment.collected_by is "threshold", the booking starts as awaiting_payment and the response includes payment_url: the guest must open payment_url and add a card within 60 minutes, after which the host gets the request (status pending_host_confirmation). Otherwise the request goes to the host immediately and the host arranges payment after accepting. Returns the booking and a status link to give the guest; poll get_booking for changes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string"
    },
    "first_name": {
      "type": "string"
    },
    "last_name": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "phone": {
      "type": "string"
    },
    "house_rules_accepted": {
      "type": "boolean"
    },
    "special_requests": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "quote_id",
    "first_name",
    "last_name",
    "email",
    "house_rules_accepted"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada10 herramientas