This article is for VRTrust users who have connected the MCP with Claude, Codex, or another AI agent.
For instructions on how to set up the MCP, click here.
π‘ Tips for Best Results
Name the team if you manage more than one (e.g. "for the Sunset Properties team") so the assistant scopes the request correctly.
Be specific with dates and amounts: "June 1β30, 2024" and "$250.00" parse more reliably than "last month" or "a couple hundred bucks."
Ask to preview before you commit: many actions (fee changes, PMS cutovers) support a dry-run/preview step. Ask for it explicitly if you want to see the impact first.
Anything that writes data will be confirmed with you first: you'll always see what's about to change before it happens.
Sections on this Page:
Note on safety: Reads (looking things up) happen automatically. Anything that creates, updates, or deletes data will always be confirmed with you before it runs, the assistant needs confirm: true to write anything.
π’ Teams & Setup
Say this... | What happens |
"Find the team named Sunset Properties" | Looks up the team by name so the assistant can scope future requests to it (GET /teams/lookup) |
"What issues does the Beachfront Rentals team have right now?" | Pulls the team's health/issue summary β broken connections, unbalanced entries, unpaid reservations, etc. (GET /teams/{id}/issues) |
"Show me issues across all my managed teams" | Cross-team issue dashboard for portfolio monitoring (GET /teams/issues) |
"What's this team's books-closed date?" | Retrieves current settings including the books-closed date (GET /teams/{id}/settings) |
"Move the books-closed date to August 1st" | Updates the period-locking date (PUT /teams/{id}/books-closing) |
"Generate some demo data for this test team" | Seeds sample data for a sandbox/test team (POST /teams/{id}/generate-demo-data) |
π Listings
Say this... | What happens |
"List all active listings" | Fetches listings filtered by status (GET /listings?status=active) |
"Create a new listing called Ocean Breeze Cottage in Destin, FL" | Creates a listing, optionally with initial ownership (POST /listings) |
"Show me the details for Beach House" | Gets full listing info β address, currency, active ownership, fee subscriptions (GET /listings/{id}) |
"Mark the Mountain Cabin listing as inactive" | Updates listing status (PUT /listings/{id}) |
"What's the opening balance on Twin Cabin?" | Retrieves the listing's opening balance record (GET /listings/{id}/opening-balance) |
"Export all my listings to CSV" | Downloads a CSV of the listing portfolio (GET /listings/csv) |
"Set Twin Cabin East as a sub-property of Twin Cabin" | Assigns a parent listing for grouped reporting (PUT /listings/{id}/parent) |
π₯ Contacts (Owners & Vendors)
Say this... | What happens |
"Add a new owner named John Smith, email [email protected]" | Creates an owner contact (POST /contacts) |
"Add ABC Cleaning Services as a vendor" | Creates a vendor contact (POST /contacts) |
"Show me all active owners" | Filters contacts by type and status (GET /contacts?type=owner&status=active) |
"Update John Smith's payout account" | Updates a contact's payoutAccountId (PUT /contacts/{id}) |
"Send an owner portal invite to John Smith" | Emails the owner an invite link (POST /contacts/{id}/invite) |
"Revoke owner portal access for this contact" | Removes portal access (PATCH /contacts/{id}/revoke-access) |
"Who has viewer access to this owner's account?" | Lists delegated owner-portal viewers (GET /contacts/{id}/viewers) |
π Ownership Periods
Say this... | What happens |
"Show ownership history for Beach House" | Lists all ownership periods for a listing (GET /listings/{id}/ownership-periods) |
"End the current ownership period on July 1st, then start a new one for the new owner at 100%" | Closes the current period and opens a new one (PUT then POST to ownership-periods) |
"Split ownership of Ocean Breeze 60/40 between two owners starting Jan 1" | Creates an ownership period with multiple members and splits (POST /listings/{id}/ownership-periods) |
π΅ Recurring Fees
Say this... | What happens |
"Create a 20% management fee on rent plus cleaning" | Creates a percentage-based fee template with a formula (POST /recurring-fees) |
"Add a flat $150 cleaning fee" | Creates a flat-rate fee template (POST /recurring-fees) |
"Subscribe Beach House to the management fee starting January 1" | Attaches a fee template to a listing (POST /listings/{id}/fee-subscriptions) |
"Preview what this fee change would do to reservation #ABC123" | Dry-runs a fee calculation without saving it (POST /recurring-fees/preview) |
"End the channel fee subscription on Mountain Cabin" | Sets an end date on a fee subscription (PUT /listings/{id}/fee-subscriptions/{subId}) |
π Reservations
Say this... | What happens |
"Show me all bookings for Beach House checking in this month" | Filters reservations by listing and date range (GET /reservations) |
"Pull up reservation ABC123" | Gets full reservation detail β payment lines, adjustments, totals (GET /reservations/{id}) |
"Add a $50 owner credit to reservation ABC123 for a guest complaint" | Creates an owner adjustment on the reservation (POST /reservations/{id}/adjustments) |
"Waive half the management fee on this booking" | Creates a fee adjustment overriding the calculated fee (POST /reservations/{id}/adjustments) |
"Cancel this reservation" | Updates reservation status, marking revenue entries inactive (PATCH /reservations/{id}/status) |
"Export June reservations to CSV" | Downloads a filtered CSV export (GET /reservations/csv) |
π° Transactions (Deposits, Expenses, Transfers)
Say this... | What happens |
"Record a $250 repair expense for Beach House, paid by ABC HVAC" | Creates an expense transaction with vendor and listing attached (POST /transactions) |
"Log the Airbnb payout for this week's bookings" | Creates a deposit transaction, linking payment lines to reservations (POST /transactions) |
"Pay John Smith $1,500 from his June statement" | Creates a transfer transaction tied to an owner statement (POST /transactions) |
"Attach this invoice PDF to the HVAC repair expense" | Uploads the file, then links it via attachmentIds (POST /transaction-attachments β PUT /transactions/{id}) |
"Mark that expense as paid on June 15th" | Updates payment status and date (PUT /transactions/{id}) |
"Show me all unpaid expenses for this year" | Filters transactions by type and payment status (GET /transactions) |
"Set up a recurring $200/month pest control expense" | Creates a recurring transaction template (POST /transactions/recurring-templates) |
π Owner Statements
Say this... | What happens |
"Generate June's statement for Beach House" | Creates a draft statement with calculated financials and rows (POST /owner-statements or /statements) |
"Publish the June statement for John Smith" | Locks the statement and notifies the owner (PUT /statements/{id}) |
"Show me all published statements for 2024" | Filters statements by status and year (GET /statements) |
"Pay out the balance on this statement" | Records the owner payout tied to the statement (POST /statements/{id}/pay) |
"Download a PDF of all statements for July" | Bulk PDF export by month/listing range (GET /statements/pdf/batch) |
"This layout changed β refresh the published statement to match" | Re-applies the current layout to an existing statement (POST /statements/{id}/refresh-layout) |
πΌοΈ Statement Layouts
Say this... | What happens |
"Create a standard owner statement layout with revenue and expense sections" | Creates a layout template with sections/columns (POST /statement-layouts) |
"Add an internal-notes section only managers can see" | Creates a section with visible: "manager" (POST/PUT /statement-layouts/{id}) |
"Assign this layout to all my beachfront listings" | Sets activeListingIds on the layout (PUT /statement-layouts/{id}) |
"Which layouts are currently locked?" | Lists layouts and flags ones with attached statements (GET /statement-layouts) |
π Reports
Say this... | What happens |
"Give me a P&L for Q2 2024" | Runs a profit & loss report for the date range (GET /reports/profit-and-loss) |
"What's the balance sheet as of June 30th?" | Runs a balance sheet snapshot (GET /reports/balance-sheet) |
"Run a trial balance for this team" | Verifies debits equal credits across all accounts (GET /reports/trial-balance) |
"How much do guests currently owe us?" | Runs an aging AR report (GET /reports/guest-balances) |
"Reconcile the trust account for June" | Compares expected vs. actual trust balances, by owner/listing (GET /reports/trust-reconciliation) |
"What sales tax do I owe for Q1?" | Runs a tax liability report by jurisdiction (GET /reports/sales-tax-liability) |
"Export the trust reconciliation to CSV" | Downloads a report export (GET /reports/trust-reconciliation/csv) |
π¦ Accounts & Banking
Say this... | What happens |
"Create a new expense account called Pool Maintenance" | Creates a ledger account under a category (POST /accounts) |
"Add a trust checking account for Chase, last 4 4567" | Creates a bank-type account with banking metadata (POST /accounts) |
"What's the reconciliation summary for the trust account this quarter?" | Pulls reconciled/unreconciled totals for a date range (GET /accounts/{id}/summary) |
"Connect this bank account to our Plaid feed" | Links a bank account to an external banking connection (POST /accounts/{id}/connect-bank-account) |
"Show me unmatched bank records for June" | Lists unreconciled imported transactions (GET /bank-records) |
"Create a rule that auto-matches Airbnb payouts to the trust account" | Creates a bank matching rule (POST /bank-rules) |
"Recalculate balances on the operating account" | Forces a balance recompute (POST /accounts/{id}/recalculate-balances) |
π Connections (PMS, Channels, Payments)
Say this... | What happens |
"List all my active connections" | Shows connected PMS/channel/payment integrations (GET /connections) |
"Sync the Hostaway connection now" | Triggers an on-demand data sync (POST /connections/{id}/sync) |
"I'm switching PMS providers β what listings need mapping?" | Shows how new PMS listings map to existing ones before cutover (GET /connections/pms-cutover/listing-mappings) |
"Preview a PMS cutover to the new system on May 1st" | Dry-runs the cutover and surfaces blockers before committing (POST /connections/pms-cutover/preview) |
"Go ahead and apply that PMS cutover" | Executes the cutover in one transaction (after your explicit confirmation) (POST /connections/pms-cutover/apply) |
ποΈ Migrations & Historical Data
Say this... | What happens |
"Migrate this legacy VRI team to a GL-enabled team starting January 1" | Bootstraps a new GL team from the legacy source (POST /teams/migrate-vri-to-vrt) |
"Which legacy accounts still need mapping for the migration?" | Shows unmapped legacy accounts with suggested targets (GET /teams/migrate-vri-to-vrt/statements/account-mappings) |
"Import the historical statements now that mappings are set" | Imports pre-cutover owner statements onto the historical ledger (POST /teams/migrate-vri-to-vrt/statements) |
"Import last year's owner statement history from this CSV data" | Posts already-resolved statement data to the historical ledger (POST /statements/historic) |
"Load our old QuickBooks journal entries as historical GL detail" | Imports pre-go-live journal entries without touching live balances (POST /general-ledger/historical) |
"Set the opening trial balance as of December 31st" | Loads/edits opening balances by account (GET/PUT /general-ledger/opening-trial-balance) |
π Audit & Monitoring
Say this... | What happens |
"What changed on this transaction recently?" | Pulls the audit timeline for that entity (GET /audit/timeline) |
"Show me recent mutation activity on this team" | Lists audit mutation records with filters (GET /audit/mutations) |
"Why did this journal entry change?" | Shows journal delta audit rows tied to a specific entry (GET /audit/journal-deltas) |