NuVista Haven MCP Server

io.github.Cswarey16由 GitHub 账号 Cswarey16 发布v1.0.0更新于 Oct 24, 2026

AI front desk for NuVista Haven vacation rentals: live availability, rates, booking links.

已验证Streamable HTTP可网页运行位置与生活商业与电商

概览

AI 生成的概览

NuVista Haven 度假民宿的只读 MCP 服务器,让助手搜索房源、查询实时空房、估算住宿价格并获取预订链接。

可以做什么
  • 按房源搜索 NuVista Haven 度假民宿。
  • 根据 Hospitable 日历查询某房源在指定日期范围内的实时空房情况。
  • 按每晚房价乘以晚数加清洁费估算住宿价格,清洁费未知时明确标注为部分估算。
  • 查询房源事实,如卧室数、可住人数、浴室数、设施与亮点,未知值返回 null。
  • 返回房源在 nuvistahaven.com 上的直接预订链接。
适用场景
适合让助手基于实时数据回答关于 NuVista Haven 住宿的客人问题:有哪些房源、指定日期是否可订、住宿费用多少、在哪里直接预订,而不是靠猜测。
运行要求
远程 Streamable HTTP 端点;客户端无需认证、环境变量或请求头。托管服务器本身需要以 HOSPITABLE_API_TOKEN 环境变量提供 Hospitable 个人访问令牌,且需先把房源 ID 映射到 Hospitable 记录,空房查询与报价才能使用。
安装前请注意
服务器按设计为只读,无法修改 Hospitable 数据,但会转发 Hospitable 的实时空房与房价以及 nuvistahaven.com 的房源信息。清洁费未暴露时报价可能只是部分估算,预订链接不带日期预填。文档说明空房查询参数与房源映射尚未验证,应对照实时数据核实。

安装

在 SourceWeft 中

  1. 打开 控制台中的 NuVista Haven MCP Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Cswarey16%2Fnuvista-haven/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "nuvista-haven": {
      "type": "http",
      "url": "https://nuvista-haven-mcp.onrender.com/mcp"
    }
  }
}

README

NuVista Haven MCP server ("AI front desk")

Model Context Protocol server that lets AI assistants answer, from live data:

  • what NuVista Haven properties exist → search_properties
  • what's free on given dates → check_availability (Hospitable calendars)
  • what's the price → get_quote (nightly rates × nights + cleaning fee)
  • where to book direct → get_booking_link (nuvistahaven.com)

Security model

  • Read-only by construction. hospitable_client.py exposes exactly one HTTP verb (GET) against an allow-list of read paths (/user, /properties, /reservations). There are no POST/PUT/PATCH/DELETE methods anywhere — even though the token may carry write scopes, this code cannot mutate anything in Hospitable.
  • Token handling. The Hospitable Personal Access Token is read ONLY from the HOSPITABLE_API_TOKEN environment variable. It is never hardcoded, never logged, never written to disk.

Setup

bash
cd ~/workspace/nuvista-mcppython3 -m venv venv./venv/bin/pip install -r requirements.txt

Run

bash
# local testing (stdio)HOSPITABLE_API_TOKEN=<token> ./venv/bin/python server.py
# public hosting (Streamable HTTP)HOSPITABLE_API_TOKEN=<token> ./venv/bin/python server.py --http --port 8000

Tests (mocked, no token needed)

bash
./venv/bin/python test_server.py

One-time: map Hospitable property IDs

properties.py holds the 12 canonical properties with best-effort Hospitable name guesses (7 strong, 5 guesses — see guess_confidence). With a live token, run the matcher and confirm each mapping by hand, then fill in hospitable_id per property:

bash
HOSPITABLE_API_TOKEN=<token> ./venv/bin/python - <<'EOF'import sys; sys.path.insert(0, '.')from hospitable_client import HospitableClientfrom logic import build_id_mappingimport jsonprint(json.dumps(build_id_mapping(HospitableClient()), indent=2))EOF

Entries with "needs_human_confirm": true must be verified before use — check_availability/get_quote refuse to run for unmapped properties.

Known API gaps / assumptions (verify against live API)

  1. Calendar query params: get_calendar sends start_date/end_date (the Hospitable convention used by /reservations). If the endpoint ignores them, availability windows may be wrong — verify on first live run.
  2. Cleaning fee: not part of the calendar day object. get_quote probes the property record for common fee shapes; if absent, the total is explicitly marked total_is_partial_estimate: true — never silently zero.
  3. Booking-link date params: date pre-fill via query string on nuvistahaven.com is unverified, so get_booking_link returns the plain property URL (no fabricated params).
  4. Reservations cross-check: list_reservations is implemented but the calendar is the source of truth; reservations are not currently consulted.

Files

  • server.py — FastMCP server, 4 tools, stdio + Streamable HTTP
  • logic.py — tool logic (testable without MCP)
  • hospitable_client.py — GET-only Hospitable Public API v2 client
  • properties.py — canonical 12-property registry + Hospitable mapping
  • test_server.py — mock-based tests

来源:README.md,提交 a87c136

工具

5

search_properties

Search Properties

Search NuVista Haven vacation rentals.

输入参数areaquerymin_sleeps

check_availability

Check Availability

Check live availability for a property over a date range.

输入参数check_in必填property必填check_out必填

get_quote

Get Quote

Quote a stay: nightly rate x nights + cleaning fee. Nightly rates are live from Hospitable. If the cleaning fee is not exposed by the API, the total is marked as a partial estimate.

输入参数guestscheck_in必填property必填check_out必填

get_property_details

Get Property Details

Facts about a property: bedrooms, sleeps, bathrooms, amenities, highlights. Answers "does it have a hot tub?", "how many bedrooms?", etc. Facts come from nuvistahaven.com; unknown values are null, never guessed.

输入参数property必填

版本历史

1
  1. v1.0.0最新Oct 9, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。