Facebook Tracking Pixel

Use Claude With Your BetterSTR Account

The BetterSTR MCP connects Claude to your account so you can manage guidebooks, fill the gaps guests ask about, check reservations, text guests, run your Android TVs and watch your WiFi by typing what you want in plain English.

MCP stands for Model Context Protocol, an open standard that lets an AI assistant use real tools. Our MCP is a small connector that runs on your computer, signs in to the BetterSTR User API with credentials you create, and gives Claude a set of tools it can call on your behalf. Claude does the work in your account instead of only describing how you might do it.

Set up in three steps

You need a BetterSTR account, Node.js 18 or newer on your machine, and either Claude Desktop or Claude Code. The whole thing takes about five minutes.

1
Create API credentials Open your profile and find the API Credentials section. Click New API Credentials, give the pair a name such as "Claude", and copy both values. The client id begins with bsc_ and the secret begins with bss_. The secret is only displayed once, so save it before you close the dialog. You can revoke a pair from the same page at any time.
2
Add the connector to Claude Desktop Open your Claude Desktop config file. On macOS it lives at ~/Library/Application Support/Claude/claude_desktop_config.json, on Windows at %APPDATA%\Claude\claude_desktop_config.json. Paste this in, replacing the two placeholder values with your credentials, then restart Claude Desktop.
{
  "mcpServers": {
    "betterstr": {
      "command": "npx",
      "args": ["-y", "@betterstr/claude-mcp"],
      "env": {
        "BETTERSTR_CLIENT_ID": "bsc_your_client_id",
        "BETTERSTR_CLIENT_SECRET": "bss_your_client_secret"
      }
    }
  }
}
The npx command downloads the connector the first time Claude starts it and caches it after that. Nothing else needs installing.
3
Or add it to Claude Code If you use Claude Code in the terminal, one command registers the connector for your user:
claude mcp add betterstr -- npx -y @betterstr/claude-mcp \
  --env BETTERSTR_CLIENT_ID=bsc_your_client_id \
  --env BETTERSTR_CLIENT_SECRET=bss_your_client_secret
Then start a new Claude Code session and ask it to list your properties. If it answers with your property names, everything is wired up.

Checking it works

In either app, type "List my BetterSTR properties". Claude should call the list_properties tool and come back with your active properties. If you see a credentials error, re-copy the secret from your profile. If the tools do not appear at all, confirm Node.js is installed by running node -v in a terminal.

Let Claude do the install

You do not have to touch a config file yourself. Once you have the two credentials from step 1, open Claude and ask it to set the connector up. Claude Desktop and Claude Code both know how to edit their own configuration and restart.

Paste this into Claude

Set up the BetterSTR MCP for me. The npm package is @betterstr/claude-mcp. Use client id bsc_your_client_id and client secret bss_your_client_secret, add it to your config, restart, and then list my properties to prove it works. Swap in your real values first. Claude writes the config entry, restarts itself, and confirms the tools are available.

Keeping the secret safe: the credentials only go into the config file on your own machine. If you would rather not paste a secret into a chat window, create a separate credential pair just for this, and revoke it later from your profile if you want.

What Claude can do

The connector currently exposes 51 tools. Below is each area with the kind of request that works well. You do not need to name the tool; describe what you want and Claude picks the right one.

Reservations

Read-only. Claude can search by date window, property, status, confirmation code or guest name.

Who is checking out of Surfers Paradise this weekend?Claude filters departures to the coming Saturday and Sunday at that property and lists the guests.
Compare my booking counts for June and July across every property.Two booking-date queries, then a short table with totals per property and the change between months.
Pull up the booking for confirmation code HMABC123.Works with either our internal id or the code the guest sees on their booking.

Payment links Stripe Connect

If your account has Stripe connected, Claude can produce a link a guest opens to pay an extra amount. Creating the link never charges anyone.

Make a 120 dollar late checkout link for the Nguyen family at 30c Snowmass, in the currency they booked in.Claude reads the reservation currency, generates the link and hands it back for you to send.

Guidebook entries

Your guidebook is a tree: a top-level menu, sub-menus under it, and content cards at the third level. Claude knows the structure and creates each level in order, showing you the plan first.

Add a "Rubbish and Recycling" card under House Rules on the Atiamuri guide. Collection is Tuesday, yellow bin is recycling.Claude finds the House Rules menu, proposes the new card, and creates it once you say yes.
Change the WiFi password in every guide tagged Ohakune to "snowday2026". Show me the entries before you edit them.A tag-wide edit. Claude lists each matching entry first so you can check nothing unexpected is included.
Remove the "Live Camera" section from 30d Snowmass.Deletes cascade to child entries, so Claude always asks once more before removing anything with children.

Guidebook look and settings

Colours, fonts, palettes, host details, map and weather settings, for one property or as the default for every property. Claude shows you which properties already override a setting before changing the default.

Switch every guide to the Alpine Chalet palette, but leave the Gold Coast apartment as it is.Claude lists the palettes, sets the account default, and checks the Gold Coast property keeps its own colours.
Put my phone number and a short host bio on all my guides.Host details go in the account defaults, so new properties get them too.
Build a full Things To Do section for 132c Miro Street with a card each for the mountain, the Old Coach Road and the Saturday market.Claude shows the outline first, then creates the menu, sub-menus and cards in a few bulk calls instead of one at a time.

Tags

Tags group properties so a pin, a screensaver or a TV banner can apply to all of them at once. Claude can now create tags and add or remove properties.

Make a Ruapehu tag and put every Ohakune and National Park property in it.Claude creates the tag, matches the properties by town, and shows you the list before tagging them.

Map locations

Pins can belong to one property, a tag, or every property. Claude looks the place up on Google first and confirms the details with you before saving.

Pin the nearest hospital to the Gold Coast apartment.Google Places search, then name, address, phone and a Maps link for you to approve.
Which of my pins have no website recorded?Claude lists your locations and filters client-side, so you can fix them in one pass.

SMS to guests Charged per message

Claude can text guests who hold a reservation on your account. It cannot text arbitrary numbers. Every send is quoted first, with the recipient list, segment count and total cost, and only goes out after you confirm.

Text everyone staying in Queenstown tonight that the road is closed at Frankton until 6pm.Claude resolves the properties, finds guests in residence with a valid phone number, quotes the cost and waits.
Send tomorrow's arrivals at Snowmass their guidebook link with a welcome note.Include the token {guide_link} in your message and the server swaps in each guest's short link.

Messages must use plain GSM characters, so no emoji. Anything sent to a reservation that has already checked out triggers an extra confirmation, even if you told Claude earlier not to ask.

WiFi status and control WiFi plan required

With a BetterSTR-managed WiFi plan (hosted UniFi, hosted Omada, or your own UniFi controller), Claude can read live network state and act on individual devices.

Is every access point at Hidden Hollow online right now?Live from your controller, cached for 30 seconds so follow-up questions are instant.
What is sitting on the guest portal at Snowmass without being authorised?Device names, MAC addresses, SSID and how recently each was seen.
Let the Sonos through on the guest network for a week.Claude confirms the device and duration, then authorises it.

Fill your guide gaps New

Added October 2026. Every time a guest asks your guide's Ask AI a question the guide can't answer, we note the topic. That list, the same one as the Guide gaps card under Tools → Ask AI queries, is now available to Claude.

Claude can list your open gaps by property and topic, read the exact questions guests asked, ask you for the real answer, add it to the guide in the right place, and mark the gap done. It never makes up house facts like door codes, appliance models or rules; it asks you.

What are guests asking that my guides don't answer?A short list per property, most-asked first, with the latest question for each topic.
Go through the gaps for 30c Snowmass one by one. Ask me for each answer, then add it to the guide.Claude reads the questions, asks you, drafts a card, files it under the right menu after you OK it, and marks the gap done.
Two properties keep getting asked about the hot water. Add a troubleshooting card to both.One answer from you, two cards, two gaps closed.

If a property shows your default guide because it has no entries of its own, Claude tells you before adding anything there, because one new entry would replace the whole default guide on that property.

Android TV New

Added October 2026. Claude can now see and run your BetterSTR TVs: settings, power, in-room messages, emergency banners, screensavers and the smart home devices a TV controls.

Everything a TV does is queued for its next check-in, usually within a minute, so Claude tells you a command is queued rather than done and can check back. Pairing a new TV, removing one and changing plans stay in the dashboard.

Fleet health and settings

Which of my TVs are off or haven't checked in today?Every TV with its live state (on, standby or off), when it last checked in, its property and app version.
Change the welcome heading on every Snowmass TV to "Welcome to Snowmass".Claude lists the TVs, shows each current title, and updates them once you confirm.
Turn on the Plex PIN for the lounge TV at Atiamuri and hide the Netflix tile.Settings changes go through the same checks as the TV page in the dashboard.

Emergency banners and messages

An emergency banner shows over whatever the TV is playing, at one property, every property in a tag, or everywhere. It can expire by itself. A message is a one-off note on chosen TVs, like a welcome or a checkout reminder.

State Highway 49 is closed at Ohakune until 6pm. Put a banner on every Ruapehu TV and text the guests staying there.Claude shows the banner, which properties it reaches and when it expires, then quotes the SMS separately. Nothing goes out until you say yes.
Send the Smith family's TV a welcome message and turn it on so they see it when they walk in.Claude finds the TV at their property, sends the note and wakes the TV.
Ask everyone checking out tomorrow for a star rating on their TV.A review request: high scores see your review link, low scores get a private feedback form.

Smart home Premium TV

If a TV controls Home Assistant or Shelly devices on the property's network, Claude can read their state and switch them through the TV.

Is the heat pump at Hidden Hollow on? Set it to heat, 21 degrees, before the 3pm check-in.Claude reads the latest state, queues the change, then checks the TV's next report to confirm it took.
Turn off the outside lights at every empty property.Claude checks which properties have no guest staying before touching anything.

Screensavers

Use the same slideshow on all Ruapehu TVs and add a weather slide.A tag default: every TV in the tag picks it up, except any TV you gave its own screensaver.

WiFi guest marketing list

Added September 2026. Everything your captive portal has collected, the same list you see under WiFi → Marketing in the members area, is now available to Claude through the list_wifi_guests tool and to any other software through the API.

This one does not need an active WiFi plan. The sign-ins were collected while your portal was running and they remain yours.

Each guest record carries the property, name, email, phone, whether they ticked the marketing opt-in, whether their email was verified, first and last sign-in (in your account timezone) and how many times they have connected. You can narrow the pull by property, by a date window on either the first or the latest sign-in, by opt-in status, or by a search term, and page through as many as you have.

Export all opted-in WiFi guests from Pointe Landing as a table with name, email and phone.Claude filters to that property and to guests who opted in, then formats the rows for you to paste into your mailing tool.
How many new guests signed in on my WiFi in August, per property?A first-seen window for the month, grouped by property, with the opt-in rate alongside.
Give me everyone who connected at any Ohakune property between 1 and 15 June.Claude resolves the tag to its properties and uses the latest-sign-in window.
Pull my whole guest list, keep going until you have every page, and save it as CSV.The tool returns up to 1,000 rows per call and tells Claude when more remain, so "all of them" really means all of them.
Which guests opened the verification email but never clicked the link?Useful for a gentle follow-up. Claude filters on the opened and verified flags.

Marketing consent

For anything you plan to email, Claude defaults to guests who ticked the marketing opt-in and tells you it did so. Ask explicitly if you want the full list for another reason, such as a lost-property notice.

Pulling the same data without Claude

The MCP is a thin layer over the BetterSTR User API, so anything Claude can read, your own scripts and automation tools can read too, with the same credentials. The guest list endpoint is the one most hosts ask about, because it feeds a CRM or email platform on a schedule.

curl -u "bsc_your_client_id:bss_your_client_secret" \
  "https://api.betterstr.com/user-api/v1/wifi/guests?marketing_opt_in=true&first_seen_from=2026-08-01&format=csv" \
  -o new_guests.csv
  • Zapier, Make, n8n: use an HTTP module with Basic auth on a daily schedule. Filter with first_seen_from set to your last run so each pull only brings new sign-ups.
  • ChatGPT: there is no ChatGPT connector, but a Custom GPT with an Action pointed at the same endpoint and Basic auth works, as does asking ChatGPT to write the Zapier step for you.
  • Spreadsheets: drop format=csv on the URL and import the file. The columns match the CSV export on the members page, with a property id column added at the end.
  • Anything else: JSON is the default, and the response includes has_more plus totals so you can page cleanly.

Machine-readable spec for AI tools and API importers

The whole API is described in an OpenAPI 3.1 document at api.betterstr.com/user-api/openapi.json. Point a ChatGPT Custom GPT Action, Zapier's API import, Postman, or any coding assistant at that URL and it gets every endpoint, parameter, response shape and error code without guessing. For ChatGPT: create a GPT, open Actions, choose Import from URL, paste the link, and set authentication to Basic with your client id as the username and secret as the password.

Prose documentation with worked examples is in the API README; the guest list endpoint is under WiFi.

Guard rails

Because the connector edits live guidebooks and sends real messages, it is deliberately cautious.

  • It asks which one you meant. Say "Snowmass" when you own five Snowmass units and Claude lists them and waits, rather than guessing.
  • It shows the plan before writing. Creates, edits and deletes are summarised first: the target, the change, and how many properties it touches. Say "go ahead without asking" per request, or "stop confirming for this session", to skip the check.
  • Deletes and multi-row changes always re-confirm. Even after blanket consent.
  • Anything a guest could see is checked first. TV power, messages, banners and smart home actions are always summarised before they go out, with which TVs or devices they reach. Heating, locks and turning a TV off at an occupied property need your OK for that action, even after "stop confirming".
  • SMS is quoted, never fired blind. Recipients, cost and segments come back first. Guests can reply STOP and are excluded from future sends automatically.
  • Guest data is treated as personal information. Claude uses it for the task you gave it and does not volunteer it elsewhere.
  • Rate limits apply per credential. Reservation and Google Places lookups have their own smaller buckets. Premium accounts get higher limits that scale with property count.

Which parts need a paid plan

Most tools work on a free account. Google Places search and place details need Premium, because each lookup costs us a Google request; you can still add pins by giving coordinates. WiFi status and device control need a BetterSTR WiFi plan. Payment links need Stripe connected. SMS is pay per message from your account balance. On Android TV, smart home control, Plex, HDMI switching and custom live TV need a Premium TV; everything else works on the free TV plan.

Tool reference

For the curious, or for writing your own prompts. Names are what Claude sees; you can mention them directly if you want to force a particular tool.

ToolWhat it does
Properties and tags
list_propertiesActive properties with uuid, name, address, timezone and entry count. Filters: name or address text, city, country.
list_tags / get_tagYour property tags, and one tag with the properties it covers.
create_tag NewMake a new tag.
attach_tag_properties / detach_tag_property NewAdd properties to a tag, or take one out.
Guidebook entries
list_entriesTop-level menu or the children of one entry.
get_entryOne entry with its direct children.
create_entryAdd a menu, sub-menu or content card.
update_entryChange title, content, icon, parent, order or visibility.
delete_entryRemove an entry and everything under it.
bulk_create_entries NewUp to 50 entries in one call, for building a whole section.
Guide gaps and settings
list_guide_gaps NewTopics guests asked Ask AI about that the guide didn't answer, per property.
get_guide_gap_questions NewThe actual questions behind one gap.
resolve_guide_gap NewMark a gap as done.
get_guide_settings / update_guide_settings NewOne property's colours, fonts, host details, map and other settings.
get_guide_defaults / update_guide_defaults NewThe same settings as the default for every property.
list_palettes NewNamed colour palettes you can apply.
Reservations
list_reservationsFilter by check-in, check-out or booking date, status, property or guest name.
get_reservationOne reservation by id or confirmation code.
generate_payment_linkA pay-now URL for an extra charge on a reservation.
send_smsQuote, then send, a text to guests of chosen reservations.
Map locations
list_locationsPins, filterable by scope, property or tag.
search_places / get_placeGoogle Places lookup and details. Premium.
add_locationCreate a pin for a property, a tag or all properties.
update_locationEdit a pin, including moving it between scopes.
delete_locationRemove a pin.
WiFi
list_wifi_guestsYour captive-portal guest list with name, email, phone, opt-in, verification and sign-in dates. Filter by property, date window, opt-in or search. No WiFi plan needed.
list_wifi_controllersYour controllers and the property each serves.
get_wifi_statusAccess points, client counts by SSID and unauthorised devices for one property.
list_wifi_clientsEvery connected client with filters for AP, SSID, wired and unauthorised.
authorize_wifi_clientLet a captive-portal device through for a set time.
kick_wifi_clientDisconnect a client. Always confirmed first.
Android TV
list_tvs / get_tv NewYour TVs with live power state, last check-in, version and settings.
update_tv NewChange a TV's settings: title, message, apps, Plex, screensaver and more.
get_tv_power / set_tv_power NewSee whether a TV is on, and turn it on or off.
send_tv_message NewA one-off message or star-rating request on chosen TVs.
list_emergency_broadcasts NewYour emergency banners and whether each is live.
create_ / update_ / delete_emergency_broadcast NewA banner over everything on a property's, a tag's or all your TVs, with optional expiry.
get_tv_smart_home / control_tv_smart_home NewRead and switch the Home Assistant and Shelly devices a TV controls. Premium TV.
get_screensaver_defaults / set_ / delete_screensaver_default NewOne screensaver for all your TVs, or all TVs in a tag.

Source code and issue tracker: gitlab.com/icepicknz/betterstr-claude-mcp. The npm package is @betterstr/claude-mcp. The original announcement is on our blog, and the October update with the TV and guide gap tools is here.

Troubleshooting and FAQ

Claude says the BetterSTR tools are not available

Restart Claude Desktop fully after editing the config file, and check the JSON has no trailing commas. In Claude Code, run claude mcp list to confirm the entry exists. Both apps need Node.js 18 or newer on the path.

I get "invalid_credentials" or "credentials_revoked"

The secret is shown once when you create the pair. If you lost it, create a new pair in your profile, update the config, and revoke the old one.

I hit a rate limit

The error tells you how many seconds to wait. Reservation and Google Places lookups have separate, smaller buckets. Premium raises every limit and scales it with your property count.

Can I use this with ChatGPT or another assistant?

The connector speaks MCP over standard input and output, so any MCP-capable host can run it. ChatGPT does not run local MCP servers, but a Custom GPT Action can call the User API directly by importing openapi.json. See pulling the same data without Claude.

Can Claude add or remove a TV, or change its plan?

No. Pairing uses the code on the TV screen, and removing a TV or changing its plan stays in Members → Android TV so nothing billable happens from a chat. Claude can change everything else about a TV you already have.

Claude says a TV command is "queued". Did it work?

TVs check in about once a minute and run queued commands then. Ask Claude to check the TV's power or smart home state a minute later to confirm. A TV that is fully switched off at the wall can't receive a turn-on command.

Is my data sent anywhere other than BetterSTR?

The connector only talks to api.betterstr.com. It has no analytics and stores nothing on disk. What Claude sees during a conversation is governed by your Anthropic plan and settings.

Can I limit what a credential is allowed to do?

Not yet. Each credential pair has full access to your account through the API, so treat the secret like a password. Create one pair per tool or teammate so you can revoke them individually.

Want Claude to do something it cannot yet?

Every new tool so far came from a host asking for it. Tell us the workflow and we will look at adding it.

Suggest a tool Create API credentials