MCP App Store
by KeenEthics
Proprietio icon

Proprietio

By Proprietio

Get New App Alerts

Overview

Proprietio connects ChatGPT to a property-management portfolio so property managers, owners, and accounting teams can ask operational questions in plain language. It can look up properties, units, leases, residents, vendors, work orders, and accounting reports; generate daily briefs, command-center summaries, owner updates, and risk radar; find available units; suggest open tour times without booking; triage maintenance issues without creating work orders; and spot recurring maintenance problems without returning resident contact details. All actions run through the configured Proprietio backend.

Tools

proprietio_close_work_order

ChatGPT
Marks a work order as completed, stores the resolution note (at least 5 characters), and returns the work order ID, status and closing time. Use when the user says a job is done, fixed or resolved. Not for other status changes (use proprietio_update_work_order). Writes data. Requires the maintenance:write scope.

proprietio_create_work_order

ChatGPT
Creates a new maintenance work order and returns its ID, status, creation time and a link to it in the Proprietio app. Use when the user asks to open, log or report a maintenance request. Each call creates another work order, so check proprietio_search_work_orders for an existing ticket and confirm the details with the user first. The production backend only accepts unit-level work orders: pass unit_id, or the call returns an error. Not for judging urgency without saving anything (use proprietio_triage_issue) or changing an existing ticket (use proprietio_update_work_order). Writes data. Requires the maintenance:write scope.

proprietio_find_recurring_maintenance_issues

ChatGPT
Lists units that had the same kind of maintenance problem (plumbing, HVAC, electrical and so on) three or more times in the last 90 days, most frequent first, at most 25. Takes no parameters. Use for questions such as 'which units keep having plumbing problems'. Returns the unit and trade only, never resident details. Not for current open tickets (use proprietio_search_work_orders). Live data only: returns an error when the server runs on demo data. Read-only. Requires the maintenance:read scope.

proprietio_get_balance_sheet

ChatGPT
Returns the balance sheet for one property, one portfolio or every property at a single date: assets, liabilities and equity with totals. Use for asset, liability or equity balances at a point in time. Not for income or expenses over a period (use proprietio_get_income_statement or proprietio_get_noi). Read-only. Requires the accounting:read scope.

proprietio_get_command_center

ChatGPT
Returns a dashboard-style snapshot for one property, one portfolio or every property: five KPI tiles (occupancy, delinquency, open work orders, loss-to-lease, number of properties at medium risk or above), one risk scorecard per property ranked by a 0-100 risk score, a ranked action queue of up to max_actions items with a due bucket and owner role, and a ui_model for rendering cards. Use when the user wants an overview or dashboard of how the portfolio is running. Not for a short daily to-do list (use proprietio_get_daily_brief), only the at-risk properties (use proprietio_get_risk_radar), revenue, expenses or NOI for a period (use proprietio_get_income_statement or proprietio_get_noi), or an update to send to owners (use proprietio_get_owner_update). Figures are a snapshot as of as_of_date; period_start and period_end are only echoed back and do not filter them. Read-only; returns no resident names or contact details. Requires the properties:read, accounting:read and maintenance:read scopes.

proprietio_get_daily_brief

ChatGPT
Returns a short, ranked to-do list for one property, one portfolio or every property: a one-line headline, occupancy and rent totals, the top delinquency balances by property, counts of urgent, stale (open 7+ days) and unassigned work orders, and up to max_items prioritized items, each naming the tool to open next and, where there is one, the record ID. Use when the user asks what needs attention today or wants a morning operations summary. Not for KPI tiles or per-property risk scores (use proprietio_get_command_center or proprietio_get_risk_radar), a written owner report (use proprietio_get_owner_update), or full lists of work orders or balances (use proprietio_search_work_orders or proprietio_get_delinquency). Open work orders reflect their current status, whatever the as_of_date. Read-only; returns no resident names or contact details. Requires the properties:read, accounting:read and maintenance:read scopes.

proprietio_get_delinquency

ChatGPT
Returns overdue resident balances for one property, one portfolio or every property: totals in aging buckets (0-30, 31-60, 61-90 and 90+ days) and a breakdown grouped by property, unit or resident. Use for questions such as 'who owes rent', 'how much is past due' or 'what is over 60 days late'. group_by: "resident" returns resident names and IDs; 'property' and 'unit' return totals only. Not for rent levels or occupancy (use proprietio_get_rent_roll) or a list of all residents, including those who owe nothing (use proprietio_list_residents). Read-only. Requires the accounting:read scope.

proprietio_get_general_ledger

ChatGPT
Returns individual general ledger entries (date, account, property, amount, description) for one property, one portfolio or every property between two inclusive dates, optionally for a single GL account. Use to inspect the transactions behind a number, for example the April entries in '4000-Rental Income'. Returns at most limit entries (default 100, maximum 500) with no paging; narrow the dates or set account to see other entries. Not for totals or statements (use proprietio_get_income_statement, proprietio_get_noi or proprietio_get_balance_sheet). Read-only. Requires the accounting:read scope.

proprietio_get_income_statement

ChatGPT
Returns the profit and loss statement for one property, one portfolio or every property over an inclusive date range: revenue and operating expense lines with their totals. Use for P&L, revenue or expense questions over a period. Both dates are required; for a month, pass its first and last day. Not for a single NOI figure (use proprietio_get_noi), balances at a date (use proprietio_get_balance_sheet), or individual transactions (use proprietio_get_general_ledger). Read-only. Requires the accounting:read scope.

proprietio_get_lease

ChatGPT
Returns one lease: start and end dates, monthly rent, security deposit, status (active, expired or future), the unit, and the residents on the lease with their current balance due. Resident email, phone and internal IDs are left out unless include_contact_info is true. Use when the user asks about a specific lease's terms, dates or rent. Needs a lease ID, found in current_lease_id from proprietio_list_units or in active_leases from proprietio_get_property. Not for listing all residents of a property (use proprietio_list_residents). Read-only. Requires the accounting:read scope.

proprietio_get_noi

ChatGPT
Returns net operating income for one property, one portfolio or every property over an inclusive date range: total revenue, operating expenses and NOI (revenue minus operating expenses). Use when the user asks for NOI or operating profit for a period. Both dates are required; for a month, pass its first and last day. Not for the line-by-line P&L (use proprietio_get_income_statement) or an update written for owners (use proprietio_get_owner_update). Read-only. Requires the accounting:read scope.

proprietio_get_owner_update

ChatGPT
Drafts an update for property owners or investors on one property, one portfolio or every property: revenue, operating expenses, NOI and margin for the period, occupancy, delinquency total, open and urgent work orders, the highest-risk property, an optional action plan of up to 5 items, a subject line and a copy-ready email body. Use when the user asks for an owner, investor or monthly report they can paste or edit. It only returns text and sends nothing; no Proprietio tool emails owners. Not for an internal dashboard (use proprietio_get_command_center) or P&L line items (use proprietio_get_income_statement). The period defaults to the first day of the as_of_date month through as_of_date; occupancy, delinquency and work orders are as of as_of_date, not averages over the period. Read-only; returns no resident names or contact details. Requires the properties:read, accounting:read and maintenance:read scopes.

proprietio_get_property

ChatGPT
Returns one property's record together with all of its units (unit number, bedrooms, bathrooms, size, current and market rent, occupancy) and its active leases. Use when the user names a specific property and wants its details, unit mix or current leases. Needs a property ID; if you only have the name, find the ID with proprietio_search_properties first. Not for an occupancy rate or an occupied-only unit list (use proprietio_list_units), or rent and loss-to-lease totals (use proprietio_get_rent_roll). Read-only. Requires the properties:read scope.

proprietio_get_rent_roll

ChatGPT
Returns the rent roll for one property, one portfolio or every property: unit count, occupied count, occupancy %, contracted monthly rent, market monthly rent, loss-to-lease (market minus contracted rent), and one row per unit with occupancy, current rent and market rent. Use for occupancy, rent level, vacancy and loss-to-lease questions. Contains no resident names or balances: for who owes money use proprietio_get_delinquency, for resident names use proprietio_list_residents. Read-only. Requires the accounting:read scope.

proprietio_get_risk_radar

ChatGPT
Scores each property's operating risk from 0 to 100 and returns property scorecards ranked by score (risk level critical, high, medium, low or healthy, top risk, recommended focus, contributing factors), a summary, risk totals by category (maintenance, delinquency, leasing, revenue) and the top 5 next actions. The score is a fixed weighting of emergency and high-priority work orders, work orders open 7+ days, unassigned work orders, delinquency balance, vacant units, loss-to-lease and, when lease data is available, leases ending within 60 days. Use when the user asks which properties are at risk or why a property is flagged. Not for KPI tiles (use proprietio_get_command_center) or the records behind a factor (use proprietio_search_work_orders, proprietio_get_delinquency or proprietio_get_rent_roll). risk_threshold and max_properties filter only the returned scorecards; the summary and category totals cover every property in scope. Read-only; returns no resident names or contact details. Requires the properties:read, accounting:read and maintenance:read scopes.

proprietio_get_work_order

ChatGPT
Returns one work order (status, priority, category, description, unit, timestamps, days open, resolution notes) and its assigned vendor's name, trade, phone, email and rating, or null when no vendor is assigned. Use when the user asks about a specific work order by ID. Not for finding work orders by status, property or age (use proprietio_search_work_orders). Read-only. Requires the maintenance:read scope.

proprietio_list_available_units

ChatGPT
Lists units currently marked available (vacant or listed for rent) across the connected account, cheapest first, at most 8, optionally filtered by minimum bedrooms and maximum monthly rent in dollars. Use for leasing questions such as 'what 2-bedrooms do we have under $2,000'. Not for every unit of one property, occupied ones included (use proprietio_list_units). Returns no resident data. Live data only: returns an error when the server runs on demo data. Read-only. Requires the properties:read scope.

proprietio_list_residents

ChatGPT
Lists the residents of exactly one property or one unit, with each resident's name and current balance due. Email, phone and the resident, unit and property IDs are included only when include_contact_info is true; a resident ID is needed before proprietio_send_message can message a resident. Use for questions such as 'who lives in unit 102' or 'which residents at this property have a balance'. Pass property_id or unit_id, never both. Not for balances broken down by how overdue they are (use proprietio_get_delinquency) or rent amounts (use proprietio_get_rent_roll). Read-only. Requires the tenants:read scope.

proprietio_list_units

ChatGPT
Lists the units of one property with unit number, bedrooms, bathrooms, square footage, current and market rent, occupancy and current lease ID, plus the property's occupancy rate. Set occupied_only to leave out vacant units. Use for questions about a property's units or occupancy, or to find a unit ID or lease ID. Not for units available to rent across the account with bedroom or price filters (use proprietio_list_available_units), or rent totals and loss-to-lease (use proprietio_get_rent_roll). Read-only. Requires the properties:read scope.

proprietio_list_vendors

ChatGPT
Lists vendors with ID, name, trade, phone, email, rating and approval status. Only approved vendors are returned unless approved_only is false; trade filters on an exact value such as 'plumbing', 'hvac', 'electrical' or 'general'. Use to find a vendor ID before assigning a work order, or to answer who to call for a trade. Not for the vendor already assigned to a work order (use proprietio_get_work_order). Read-only. Requires the maintenance:read scope.

proprietio_search_properties

ChatGPT
Lists properties in the connected account, optionally filtered by city, two-letter state code, owner name or unit count range, and returns count plus each property's ID, name, address, unit count, year built, acquisition date, owner and current value. Use to find a property ID, or for questions such as 'which properties do we have in Austin'. There is no name filter: to find a property by name, call it with no filters and match on name. With no filters it returns every property. Not for one property's units and leases (use proprietio_get_property). Read-only. Requires the properties:read scope.

proprietio_search_work_orders

ChatGPT
Lists work orders matching optional filters (property, status, priority, category, minimum days open) and returns count plus each work order's ID, property, unit, category, priority, status, description, assigned vendor ID, days open and timestamps. With no filters it returns every work order in every status, completed ones included. Use for questions such as 'open work orders at this property', 'any emergencies' or stale tickets (min_days_open: 7). Filters are exact values; there is no free-text, vendor or date-range filter. Not for the assigned vendor's contact details (use proprietio_get_work_order) or units with repeat problems (use proprietio_find_recurring_maintenance_issues). Read-only. Requires the maintenance:read scope.

proprietio_send_message

ChatGPT
Sends one message, with a subject and body, through Proprietio messaging to one resident. Use when the user asks to message, notify or remind a resident. The recipient receives it outside this conversation and it cannot be recalled, so show the user the recipient and the exact text and get their confirmation before calling. Each call sends another message. Pass exactly one of to_resident_id or to_vendor_id. Resident IDs come from proprietio_list_residents or proprietio_get_lease with include_contact_info: true. Vendor messaging is not supported by the production backend yet and returns an error. Not for owner or investor updates: draft those with proprietio_get_owner_update; this tool cannot reach owners. Sends externally. Requires the communications:write scope.

proprietio_suggest_tour_times

ChatGPT
Proposes open 30-minute tour slots over the next days days (default 5, maximum 14) in the organization's time zone, skipping slots already booked, optionally for one unit. Use when someone asks when a unit can be shown. It does not book or hold a slot, and no Proprietio tool books tours. Live data only: returns an error when the server runs on demo data. Read-only. Requires the properties:read scope.

proprietio_triage_issue

ChatGPT
Classifies a maintenance problem described in plain words: urgency (EMERGENCY, URGENT or ROUTINE), likely trade, and a safe first-step checklist when one exists. Use when the user describes a problem and asks how urgent it is or which trade to call. It reads no property data and creates no work order; to log the problem, use proprietio_create_work_order. Live data only: returns an error when the server runs on demo data. Read-only. Requires the maintenance:read scope.

proprietio_update_work_order

ChatGPT
Changes the status, priority or assigned vendor of an existing work order and can record a note with the change; fields you omit are left as they are. Use when the user asks to reassign, re-prioritize, move a ticket to another status, or add a note. To finish a job with a resolution, use proprietio_close_work_order instead. The production backend rejects the status 'cancelled'. Writes data. Requires the maintenance:write scope.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps