Build on UrusPro instead of rebuilding it
UrusPro is a Malaysian property operations platform you can use as the engine behind your own homestay or room rental product. Connect any MCP client to https://uruspro.com/mcp, sign in with OAuth, and your AI or app gets 39 tools for listings, calendars, bookings, monthly rent, deposits and tasks, all in RM.
https://uruspro.com/mcp
What can you build on UrusPro?
An AI agent for hosts
Claude or ChatGPT that answers who has not paid rent, who checks in today, and changes the weekend price when asked.
A WhatsApp or Telegram bot
Your bot checks availability, books a stay for a guest who messaged directly, and records a cash payment without opening the portal.
Your own dashboard or app
Your vibe-coded app reads listings, calendars and collections from UrusPro, and writes back through the same tools.
Operations automation
After a checkout, your agent creates the cleaning task, assigns it to staff and closes the repair request when it is done.
Why use UrusPro as the engine?
- Booking rules are already enforced in the database: no double bookings, prices re-checked, status only moves along legal paths.
- Malaysian monthly rentals are done: rent schedules, deposits, part payments and arrears in RM.
- Calendars sync with Airbnb and Booking.com over iCal every 15 minutes.
- Every business is isolated at the database level, so your product does not have to build tenant isolation.
How do you connect your AI or app?
- Create an UrusPro account. That is the only step done in the portal.
- Add https://uruspro.com/mcp as an MCP server in your client.
- Sign in to UrusPro when asked and press Allow. The client registers itself; there is no API key to copy.
- Call your first tool: create_house for a new place, or list_listings if you already have some.
Claude: Settings, Connectors, Add custom connector. ChatGPT: Settings, Connectors, Create (developer mode). For other clients:
Claude Code
claude mcp add --transport http uruspro https://uruspro.com/mcpCursor, Windsurf, VS Code (mcp.json)
{
"mcpServers": {
"uruspro": { "url": "https://uruspro.com/mcp" }
}
}What are the 39 tools?
Every tool runs as the signed-in user and sees only their businesses. Write tools are marked so your client can ask for confirmation first.
Houses, rooms and beds
| Tool | What it does | |
|---|---|---|
list_houses | Houses in a business, with their rooms and listings. | read |
create_house | Add a new house: homestay, by room, by bed or a mix. | write |
add_room | Add a room, rented as a room or by the bed. | write |
add_bed | Add one more bed to a room rented by bed. | write |
Listings and photos
| Tool | What it does | |
|---|---|---|
list_organizations | The businesses this user manages. | read |
list_listings | Every room, bed or house, with status and prices in RM. | read |
find_listings | Search listings by name, area or id. | read |
get_listing | One listing in full, with its photos. | read |
update_listing | Change name, description, address, rules, wifi, deposit, stay types. | write |
update_listing_prices | Change nightly, weekend and monthly prices. | write |
set_listing_live | Switch a listing on or off for guests. | write |
add_listing_photos | Add photos from public https links. | write |
arrange_listing_photos | Reorder, pick the cover or remove photos. | write |
Calendar and availability
| Tool | What it does | |
|---|---|---|
check_availability | Whether a listing is free for a stay. | read |
listing_calendar | Bookings, tenancies and blocks in a date range. | read |
block_dates | Close dates for owner use or repairs. | write |
unblock_dates | Reopen blocked dates. | write |
Bookings
| Tool | What it does | |
|---|---|---|
list_bookings | Bookings and tenancies, filtered by date and status. | read |
get_booking | One booking or tenancy in full. | read |
today_schedule | Who checks in and out on a day. | read |
create_booking | Book a stay for a guest dealt with directly. | write |
update_booking_status | Approve, mark paid, check in, complete or cancel. | write |
quote_booking_change | Price a date or listing change before making it. | read |
change_booking | Move a booking to new dates or another listing. | write |
Payments and deposits
| Tool | What it does | |
|---|---|---|
set_booking_discount | Give a discount in RM before payment. | write |
record_part_payment | Record a part payment (cash, transfer). | write |
refund_booking | Record a refund in UrusPro's books. | write |
booking_deposit | Record a deposit held, settled or reopened. | write |
Monthly rentals
| Tool | What it does | |
|---|---|---|
rent_status | Rent months due or overdue for every tenancy. | read |
add_tenant | Add an existing tenant and their rent schedule. | write |
record_rent_payment | Record rent received for one month. | write |
update_tenancy | Change start date, term, rent or deposit. | write |
end_tenancy | End a tenancy early on a move-out date. | write |
Tasks and repairs
| Tool | What it does | |
|---|---|---|
list_staff | Staff who can be given tasks. | read |
list_tasks | Cleaning, repair, move-in and move-out tasks. | read |
create_task | Add a task and assign it to staff. | write |
update_task | Change a task's status, assignee or time. | write |
list_repair_requests | Repair requests from guests and tenants. | read |
resolve_repair_request | Close a request as fixed or not needed. | write |
Is there public data without signing in?
Yes, read-only. Every published listing has a machine twin at hellostay.my/property/{slug}.json and .md (name, prices in RM, capacity, amenities, photos, booking link), and every unit has an iCal feed for its calendar.
What can MCP not do yet?
- Publishing a listing to the public catalogue unreviewed: UrusPro reviews every new listing first.
- Guest online booking and payment: that happens on UrusPro's booking pages, not through your own API.
- API keys for unattended scripts: access today is an OAuth sign-in by the host.
- Webhooks. Clients ask; UrusPro does not push events out.
- Moving money. refund_booking records a refund; the money itself is sent from the bank or gateway.
How is access controlled?
- OAuth 2.1 with PKCE and dynamic client registration. The token is the host's own session.
- Every call runs under Row Level Security, so a client cannot name someone else's business.
- The host can see and disconnect every connected app in the portal, under AI connection.
- Every tool call is recorded and the host sees recent activity in the portal. The limit is 60 calls a minute per user.
Frequently asked questions
Yes. Your app or AI agent connects to https://uruspro.com/mcp as the signed-in host and uses 39 tools for listings, calendars, bookings, rent and tasks. You build the interface; UrusPro stores the data and enforces the rules.