Stayport

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 3, 2026

通过 MCP 使用 Hostex PMS:房源、预订、可用性、消息、评价和 webhooks。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Hostex PMS via MCP: properties, reservations, availability, messages, reviews, and webhooks.

已验证STDIO仅桌面

概览

Stayport 的本地 MCP 服务;无需登录;STDIO。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

安装

在 SourceWeft 中

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

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

stayport

stayport talks to a Hostex property-management account from the terminal and from MCP clients: properties and room types, reservations (including direct-booking creation, cancellation, lock codes, and per-stay custom fields), availability, guest conversations, reviews, webhooks, listing calendars and prices, custom channels, and income methods. One binary serves a command-line interface and a stdio MCP server, exposing the same 23 operations as hostex_* tools.

Two credentials are involved. Every v3 API call sends a Hostex-Access-Token header whose value comes from the HOSTEX_ACCESS_TOKEN environment variable; calls go to https://api.hostex.io/v3 unless HOSTEX_API_URL overrides the base URL. When the token is not set, commands fail with an error that names the env var — stayport never invents a result. The guest-review operation is the one exception to the token flow: it posts through the Hostex web app, so it logs in with HOSTEX_EMAIL and HOSTEX_PASSWORD (optionally overriding the web base URL, default https://hostex.io/api, with HOSTEX_WEB_API_URL) and fails the same honest way when they are unset.

A v3 call counts as successful only when the response envelope reports error_code 200; the envelope's data is what you get back. Any other envelope is an error carrying the upstream error_msg and request_id.

Install

bash
npx @reneturcios/stayport properties

Or run the container image:

bash
docker run -i ghcr.io/cloudcorprecords/stayport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead, and pass the env vars above with -e so the server can reach your account.

CLI

bash
export HOSTEX_ACCESS_TOKEN=...   # from your Hostex account settings
stayport properties --limit 10stayport room-typesstayport reservations --status accepted --start-check-in-date 2026-11-01stayport create-reservation --property-id 123 --custom-channel-id 9 \  --check-in-date 2026-11-10 --check-out-date 2026-11-12 \  --guest-name "Ada Lovelace" --currency USD --rate-amount 20000 \  --commission-amount 1000 --received-amount 20000 --income-method-id 3stayport cancel-reservation RES-123stayport update-lock-code STAY-9 4321stayport get-custom-fields STAY-9stayport update-custom-fields STAY-9 '{"gate_code":"88"}'stayport availabilities --property-ids 1,2 --start-date 2026-11-01 --end-date 2026-11-07stayport update-availabilities --property-ids 1,2 --available false --dates 2026-11-03stayport conversations --limit 5stayport conversation conv-9stayport send-message conv-9 --message "Welcome! Check-in is at 3pm."stayport reviews --property-id 123stayport create-review RES-123 --score 5 --content "Great guest"stayport webhooksstayport create-webhook https://example.com/hookstayport delete-webhook 17stayport listing-calendar --start-date 2026-11-01 --end-date 2026-11-30 \  --listings '[{"channel_type":"airbnb","listing_id":"L1"}]'stayport update-listing-prices --channel-type airbnb --listing-id L1 \  --prices '[{"date":"2026-11-05","price":15000}]'stayport custom-channelsstayport income-methods
stayport --version

The guest-review command additionally needs the web-app login:

bash
export [email protected]export HOSTEX_PASSWORD=...stayport post-guest-review --reservation-order-code 0-ABC123-xyz \  --content "Lovely stay" --recommend 1 --overall-rating 5 \  --cleanliness 4 --respect-of-house-rules 5 --communication 5

Successful commands print the response data as JSON. Exit codes: 0 on success, 1 when a call fails (missing credential, upstream envelope error, network failure), 2 for usage errors. Amounts on reservation creation are in cents, exactly as the Hostex API takes them; listing prices are passed through in the shape the API expects.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/stayport mcp

MCP client configuration:

json
{  "mcpServers": {    "stayport": {      "command": "npx",      "args": ["-y", "@reneturcios/stayport", "mcp"],      "env": {        "HOSTEX_ACCESS_TOKEN": "..."      }    }  }}

Add HOSTEX_EMAIL and HOSTEX_PASSWORD to that env block if you want the guest-review tool to work; the other 22 tools only need the access token.

Tools

ToolInputWhat it does
hostex_list_propertiesoffset, limit, id (all optional)Lists properties with ID, title, address, channels, and coordinates.
hostex_list_room_typesoffset, limit (optional)Lists room types.
hostex_list_reservationsreservation_code, property_id, status, check-in/out date bounds, order_by, offset, limit (all optional)Lists and searches reservations.
hostex_create_reservationproperty_id (string), custom_channel_id, check_in_date, check_out_date, guest_name, currency, rate_amount, commission_amount, received_amount, income_method_id (required); number_of_guests, email, mobile, remarks (optional)Creates a direct booking. Amounts are in cents.
hostex_cancel_reservationreservation_codeCancels a direct booking (channel bookings are not supported).
hostex_update_lock_codestay_code, lock_codeSets a stay's lock code.
hostex_get_custom_fieldsstay_codeReads a stay's custom fields.
hostex_update_custom_fieldsstay_code, custom_fields (object)Writes a stay's custom fields, usable in automated messages as {{cf.field_name}}.
hostex_list_availabilitiesproperty_ids (comma-separated string), start_date, end_dateQueries availability for a date range.
hostex_update_availabilitiesproperty_ids (number array), available; start_date, end_date, dates (optional)Sets availability for dates or a range.
hostex_list_conversationsoffset, limit (optional)Lists guest conversations and inquiries.
hostex_get_conversationconversation_idGets a conversation with all its messages.
hostex_send_messageconversation_id; message, jpeg_base64 (optional)Sends a text or JPEG image message to the guest.
hostex_list_reviewsreservation_code, property_id, review_status, check-out date bounds, offset, limit (all optional)Queries reviews with filters.
hostex_create_reviewreservation_code; host_review_score, host_review_content, host_reply_content (optional)Creates a review or a reply for a reservation.
hostex_post_guest_reviewreservation_order_code, content, recommend ("0"/"1"), overall_rating, cleanliness, respect_of_house_rules, communication ("1"–"5"); three optional *_content notesPosts a full guest review through the web app; needs the email/password login.
hostex_list_webhooks(none)Lists configured webhooks.
hostex_create_webhookurlCreates a webhook.
hostex_delete_webhookwebhook_idDeletes a manageable webhook.
hostex_get_listing_calendarstart_date, end_date, listings ({channel_type, listing_id} array)Gets calendar information for multiple listings.
hostex_update_listing_priceschannel_type, listing_id, prices ({date, price} array)Updates listing prices.
hostex_list_custom_channels(none)Lists custom channels from the Custom Options Page.
hostex_list_income_methods(none)Lists income methods from the Custom Options Page.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

来源:README.md,提交 b46fb44

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Nov 3, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分