protogrid

Search / rentals.threshold/stays

Threshold

R0· no sign-in

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

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72needs work
Trust83of 100
Uptime, 30 days100%
Latency p50785 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "stays": {
      "type": "http",
      "url": "https://threshold.rentals/api/mcp"
    }
  }
}
claude mcp add --transport http stays https://threshold.rentals/api/mcp
[mcp_servers.stays]
url = "https://threshold.rentals/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stays": {
      "type": "remote",
      "url": "https://threshold.rentals/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "stays": {
      "type": "http",
      "url": "https://threshold.rentals/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=stays&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdGhyZXNob2xkLnJlbnRhbHMvYXBpL21jcCJ9"
}
{
  "servers": {
    "stays": {
      "type": "http",
      "url": "https://threshold.rentals/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "stays": {
      "httpUrl": "https://threshold.rentals/api/mcp"
    }
  }
}
extensions:
  "stays":
    enabled: true
    name: "stays"
    type: streamable_http
    uri: "https://threshold.rentals/api/mcp"
    timeout: 300

Quality 72 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations10 of 10 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints2 of 10 tools declare all four hints; missing: check_availability (idempotentHint); get_booking (idempotentHint); ask_host (idempotentHint); …
  • pass
    tools.token_costabout 2,563 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes21 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

10 tools, about 2,563 tokens to load them all · tool set a29fe1477006 · tools last changed 2026-10-15 · checked 2026-10-20 10:35 UTC

Tool changes

  • request_bookingchangedinput schema, output schema
  • cancel_bookingchangedinput schema, output schema
  • send_messagechangedinput schema, output schema
  • get_messageschangedinput schema, output schema
  • ask_hostchangedinput schema, output schema
  • get_bookingchangedinput schema, output schema
  • get_quotechangedinput schema, output schema
  • check_availabilitychangedinput schema, output schema
  • get_propertychangedinput schema, output schema
  • search_stayschangedinput schema, output schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-18d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://threshold.rentals/api/mcp streamable-httpnoneyes100%785 ms2025-11-252026-10-20

Tools (10)

ask_hostSend 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.
cancel_bookingdestructiveTwo-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.
check_availabilityread-onlyDay-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.
get_bookingread-onlyStatus, amounts, refund schedule, guest ID verification link, and when arrival details will be sent. Maps to GET /v1/bookings/{id}.
get_messagesread-onlyThe 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.
get_propertyread-onlyFull record for one property: beds by room, amenities with details, access and stairs, rules, host FAQ, policies, and verification status. The location is approximate on purpose: the exact address and the host's direct contact details are not in the record and are sent to the guest after a confirmed booking, so if asked, say that rather than that they are missing. Maps to GET /v1/properties/{id}.
get_quoteread-onlyItemized, 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.
request_bookingRequest 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.
search_staysread-onlyFind 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.
send_messageSend 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "rentals.threshold/stays",
  "title": "Threshold",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://threshold.rentals/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "websiteUrl": "https://threshold.rentals/for-agents",
  "description": "Search and book verified independent vacation rentals directly from hosts, with no guest fees."
}