Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Hostex PMS via MCP: properties, reservations, availability, messages, reviews, and webhooks.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"stayport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/stayport",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add stayport -- npx -y @reneturcios/stayport mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"stayport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/stayport",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"stayport": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/stayport",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account CloudCorpRecords, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
npx @reneturcios/stayport properties
Or run the container image:
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.
export HOSTEX_ACCESS_TOKEN=... # from your Hostex account settings
stayport properties --limit 10 stayport room-types stayport reservations --status accepted --start-check-in-date 2026-11-01 stayport 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 3 stayport cancel-reservation RES-123 stayport update-lock-code STAY-9 4321 stayport get-custom-fields STAY-9 stayport update-custom-fields STAY-9 '{"gate_code":"88"}' stayport availabilities --property-ids 1,2 --start-date 2026-11-01 --end-date 2026-11-07 stayport update-availabilities --property-ids 1,2 --available false --dates 2026-11-03 stayport conversations --limit 5 stayport conversation conv-9 stayport send-message conv-9 --message "Welcome! Check-in is at 3pm." stayport reviews --property-id 123 stayport create-review RES-123 --score 5 --content "Great guest" stayport webhooks stayport create-webhook https://example.com/hook stayport delete-webhook 17 stayport 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-channels stayport income-methods
stayport --version
The guest-review command additionally needs the web-app login:
export HOSTEX_EMAIL=you@example.com
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.
One bin serves both faces. The mcp subcommand starts a stdio MCP server:
npx -y @reneturcios/stayport mcp
MCP client configuration:
{
"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.
| Tool | Input | What it does |
|---|---|---|
hostex_list_properties | offset, limit, id (all optional) | Lists properties with ID, title, address, channels, and coordinates. |
hostex_list_room_types | offset, limit (optional) | Lists room types. |
hostex_list_reservations | reservation_code, property_id, status, check-in/out date bounds, order_by, offset, limit (all optional) | Lists and searches reservations. |
hostex_create_reservation | property_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_reservation | reservation_code | Cancels a direct booking (channel bookings are not supported). |
hostex_update_lock_code | stay_code, lock_code | Sets a stay's lock code. |
hostex_get_custom_fields | stay_code | Reads a stay's custom fields. |
hostex_update_custom_fields | stay_code, custom_fields (object) | Writes a stay's custom fields, usable in automated messages as {{cf.field_name}}. |
hostex_list_availabilities | property_ids (comma-separated string), start_date, end_date | Queries availability for a date range. |
hostex_update_availabilities | property_ids (number array), available; start_date, end_date, dates (optional) | Sets availability for dates or a range. |
hostex_list_conversations | offset, limit (optional) | Lists guest conversations and inquiries. |
hostex_get_conversation | conversation_id | Gets a conversation with all its messages. |
hostex_send_message | conversation_id; message, jpeg_base64 (optional) | Sends a text or JPEG image message to the guest. |
hostex_list_reviews | reservation_code, property_id, review_status, check-out date bounds, offset, limit (all optional) | Queries reviews with filters. |
hostex_create_review | reservation_code; host_review_score, host_review_content, host_reply_content (optional) | Creates a review or a reply for a reservation. |
hostex_post_guest_review | reservation_order_code, content, recommend ("0"/"1"), overall_rating, cleanliness, respect_of_house_rules, communication ("1"–"5"); three optional *_content notes | Posts a full guest review through the web app; needs the email/password login. |
hostex_list_webhooks | (none) | Lists configured webhooks. |
hostex_create_webhook | url | Creates a webhook. |
hostex_delete_webhook | webhook_id | Deletes a manageable webhook. |
hostex_get_listing_calendar | start_date, end_date, listings ({channel_type, listing_id} array) | Gets calendar information for multiple listings. |
hostex_update_listing_prices | channel_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. |
npm install
npm 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
MIT — see LICENSE.