MCP App Store
by KeenEthics
Yardi Virtuoso icon

Yardi Virtuoso

By Yardi Systems, Inc

Get New App Alerts

Overview

Yardi Virtuoso provides secure, real-time access to Yardi data and tools through Claude. It enables investment, property and asset management professionals to query financial models, predictive maintenance insights, market analysis, and portfolio data using natural language. Users can ask complex operational questions, explore strategic scenarios, and perform analysis without manual data extraction, all grounded in accurate, enterprise-grade Yardi data.

Tools

acq_acquisitions_get_acquisition_disposition_deal_lookups

ChatGPT
Stage/status and template lists for ACQUISITION or DISPOSITION deals only; does not look up the deals themselves. DealType is required: 21013 for acquisition deals, 21010 for disposition deals. lookupType is required: 'stages' for deal stages (statuses), 'templates' for deal templates. Both lists are per deal type — a stage id from one type is not valid for the other. ALWAYS USE this tool (do not answer from another tool or from memory) when the user names a deal stage, status, or template in words and a tool needs the numeric id: - 'under contract', 'closed', 'dead', 'LOI', 'due diligence' and similar stage names - deal template names - 'what deal stages exist', 'what statuses can a deal be in' DO NOT USE for: - Finding a specific deal by name or code -> get_im_autocomplete - The deals themselves and their current status values -> get_acquisition_disposition_deal_summary - Voyager workflow or approval statuses -> get_approval_workflow_status Stages return rows with id (hmy), name, and iorder (display sequence) — for display only; a stage id cannot be used to filter get_acquisition_disposition_deal_summary (its dealStatuses parameter uses a fixed, separate set of outcome codes, not these ids). Templates return rows with id (hmy) and name, and those ids DO work with get_acquisition_disposition_deal_summary's dealTemplates parameter. Example: 'What stages can an acquisition deal be in?' -> call this tool with DealType=21013 and lookupType='stages' and list the returned names in iorder sequence. Example: 'Show me only our Multifamily acquisition deals' -> call this tool with DealType=21013 and lookupType='templates' to find the 'Multifamily' id, then call get_acquisition_disposition_deal_summary with objectType=21013 and dealTemplates set to that id.

acq_acquisitions_get_acquisition_disposition_deal_summary

ChatGPT
Acquisition Manager deal pipeline only — acquisition (21013) or disposition (21010) deals; never Voyager properties or leases. objectType is required and selects the report: 21013 = Acquisitions Summary, 21010 = Dispositions Summary. If the user named a specific deal but not which side it sits on, call get_im_autocomplete with type='acquisitions' and again with type='dispositions' — whichever returns the record tells you the objectType to pass. If they named no deal at all, ask which report they want rather than guessing a side. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks for: - deal pipeline, pipeline overview, pipeline report - acquisitions summary / acquisition deal list / deals we are buying - dispositions summary / disposition deal list / deals we are selling - deal status, deal stage, deal owner across deals - 'show me our active/open acquisitions', 'which deals did we acquire or pass on' DO NOT USE for: - Rent roll or unit-level data on a deal -> get_acquisition_rent_roll_units - Sales comparables / comps on a deal -> get_acquisition_sales_comp_data - Resolving a single deal name to its hmy -> get_im_autocomplete - Status or template names and their hmy values -> get_acquisition_disposition_deal_lookups - Voyager property records, occupancy, or leases -> get_property / search_properties - Investment Manager investment entities and ownership -> get_investment_ownership_structure All filters other than objectType are optional. Multi-value filters use '^' as a delimiter (e.g. '123^456'); leave one blank to apply no restriction. Custom column filters (cdata_* query parameters) are also supported — append them to the query string using the column key names visible in the report grid. Known issue: each deal's ProjectedCloseData field currently returns the property's year-built value, not an actual projected close date. Treat it as unreliable — do not present it to the user as a close date until this is corrected. Example: 'Which acquisition deals have we actually acquired?' -> call this tool with objectType=21013 and dealStatuses=3. Example: 'Which acquisitions are still active, not yet closed or dead?' -> objectType=21013 and dealStatuses=0. Pipeline STAGE names like 'Under Contract' or 'Due Diligence' are shown for display only (the Stage field) and are not filterable — dealStatuses accepts only the seven outcome codes described on that parameter, not a stage id from get_acquisition_disposition_deal_lookups.

acq_amconfiguration_get_acquisition_comp_sets_config

ChatGPT
Full setup of every ACQUISITION sales-comparison comp set (membership and counts); returns no comparable rows themselves. Always call this before save_acquisition_comp_sets_config, so you can see a comp set's current Name and Deals before updating them — that save fully replaces deal membership, so acting without the current list will silently drop deals. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - what deals are in a comp set, comp set membership - how many properties or deals a comp set matches - comp set setup or configuration before editing one DO NOT USE for: - The comparable rows/grid data themselves -> get_acquisition_sales_comp_data - Just resolving a comp set name to its id -> get_acquisition_comp_sets_list (lighter and filterable) - Changing a comp set -> save_acquisition_comp_sets_config - Retail sales volume reporting -> get_sales_report Unlike get_acquisition_comp_sets_list, this always returns the complete list with deal membership and counts and has no search parameter. Code is not populated by this endpoint even though save_acquisition_comp_sets_config accepts it. The response also carries two internal bookkeeping fields alongside CompSetsConfig, unrelated to user-managed comp sets: AcqResearchRowCompSetName is the reserved name of a hidden system comp set that stores 'Yardi Research' sourced comp rows, and GlobalYardiResearchCompSetId is that hidden comp set's hmy, or 0 if it hasn't been created yet. Both can be ignored for normal comp set list/edit workflows.

acq_amconfiguration_get_om_scan_sales_comp_config

ChatGPT
OM Scan sales-comp FIELD MAPPING only — which data points exist and their sources; returns no deal, comp, or scan data. Call this before building or interpreting an OM scan so you know which fields are available and what each one means. It is a prerequisite for create_om_scan_with_acquisition_deals — the optional per-deal fields on that tool come from this list. ALWAYS USE this tool (do not answer from another tool or from memory) when the user or agent asks: - what fields can an OM scan capture - OM scan / offering memorandum data points, field mapping, or schema - which sales comp fields are available before scanning a document DO NOT USE for: - Actual sales comparable rows for a deal -> get_acquisition_sales_comp_data - Creating the scan and its deals -> create_om_scan_with_acquisition_deals - Comp set membership and configuration -> get_acquisition_comp_sets_config Returns a slimmed model per data point: datapointID, Datapoint, Datatype, acqMgrTableSource, acqMgrDataPoint, acqMgrDataPointLabel, Description.

acq_rentroll_get_acquisition_rent_roll_units

ChatGPT
Rent roll rows entered on an ACQUISITION DEAL only; never a property/lease rent roll from Voyager, commercial, or student housing. The id you pass must be an acquisition deal hmy, not a property or unit id. If you only have a name or code and are not certain it is an acquisition deal, call get_im_autocomplete with type='acquisitions' first and use the returned id. A deal with no rent roll yet returns an empty array — that is expected, not an error. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks, about a DEAL: - rent roll, rent roll units, rent roll rows - unit mix, unit list, unit breakdown for a deal - tenants, in-place rent, market rent, occupancy or vacancy on a deal - 'what units are on the Maple Street deal' DO NOT USE for: - A commercial property's rent roll -> get_commercial_rent_roll - Student housing rent roll by term -> get_term_rent_roll - Voyager property units or unit search -> search_units / get_unit - Property-level occupancy -> get_occupancy_report - Deal status, owner, or projected close -> get_acquisition_disposition_deal_summary - Sales comparables for the deal -> get_acquisition_sales_comp_data Call this before save_acquisition_rent_roll_units whenever you intend to edit: it is the only way to discover an existing row's id, and an update replaces every column with what you send, so you need the current values to avoid clobbering them. Example: 'What's the rent roll on the Maple Street deal?' -> call get_im_autocomplete with type='acquisitions' and searchTerm='Maple Street', then call this tool with dealId set to the returned id.

acq_salescomparison_get_acquisition_comp_sets_list

ChatGPT
Name-to-id lookup for ACQUISITION sales-comparison comp sets; returns id and name only, no comps and no deal membership. Use this whenever the user names a comp set in words and another tool needs its numeric id. Omit searchTerm to list every comp set. ALWAYS USE this tool (do not answer from another tool or from memory) when you need to: - resolve a comp set name or code to its hmy - confirm a comp set exists before referencing it - list the available comp sets by name DO NOT USE for: - A comp set's deal membership and match counts -> get_acquisition_comp_sets_config - The comparable rows themselves -> get_acquisition_sales_comp_data - Resolving a deal name to its id -> get_im_autocomplete Example: 'Show me the comps in the Downtown Q3 set' -> call this tool with searchTerm='Downtown', take the matching id, then call get_acquisition_sales_comp_data with compSetId set to it.

acq_salescomparison_get_acquisition_sales_comp_data

ChatGPT
ACQUISITION sales COMPARABLES (comps) grid only — property/deal comparables used to value a deal; NOT retail sales volume or revenue. compSetTabId is required and selects which grid you get: 'comps', 'deals', or 'properties'. If the user names a comp set in words rather than by id, call get_acquisition_comp_sets_list first and pass the returned id as compSetId. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks for: - comps, comparables, sales comps, sales comparison data - comparable sales / recent sales used to price a deal - the comp grid or comp set tied to a deal - cap rates or price per unit on comparable properties DO NOT USE for: - Retail tenant sales volume or percentage rent -> get_sales_report - A deal's own status, owner, or projected close -> get_acquisition_disposition_deal_summary - Rent roll or unit-level detail on a deal -> get_acquisition_rent_roll_units - Comp set membership and setup -> get_acquisition_comp_sets_config - Changing comp set membership -> save_acquisition_comp_sets_config - Writing comparable rows onto a comp set -> save_acquisition_sales_comp_data - Yardi Research comps saved on a comp set (they appear on no tab here) -> get_acquisition_saved_research_comps This tool is also the source of the ColumnHeader and columnsYardiResearch arrays that save_acquisition_sales_comp_data needs, so call it first when preparing a save. Optionally provide the deal id, comp set, full list mode, and the projected-close date filter. This returns the same grid data and applies the same filters as the deal screen. Example: 'Show me the comps for deal 13 in comp set 5' -> call with dealId 13, compSetId 5, compSetTabId 'comps', compSetManageFullList '1'.

ar_aranalytics_get_aging_detail

ChatGPT
Get aging detail report

ast_propertylookup_get_property_info_basic

ChatGPT
Get basic property information (name, address, unit count) for one or more properties

ast_propertylookup_get_property_info_detailed

ChatGPT
Get detailed property information including Matrix property URL and images

ast_propertylookup_search_properties

ChatGPT
Search for properties by name, city, state, or zip code to get property codes

ast_propertyperformancekpis_get_available_kpis

ChatGPT
Get list of available KPIs grouped by category with their IDs

ast_propertyperformancekpis_get_kpi_detailed_definition

ChatGPT
Get detailed description and definition of a specific KPI

ast_propertyperformancekpis_get_kpi_values_by_property

ChatGPT
Get KPI values grouped by property with individual results and totals

ast_propertyperformancekpis_get_kpi_values_total

ChatGPT
Get total KPI values for one or more KPIs summarizing requested properties

cm_contractsearch_search_contracts

ChatGPT
Search and filter contracts by property, vendor, status, trade, or date range

cm_jobsearch_search_jobs

ChatGPT
Search and filter jobs by property, status, type, phase, manager, or budget range

cmg_affledgervirtuoso_get_affordable_resident_ledger_data

ChatGPT
Get affordable tenant ledger transactions for a tenant; includes HAP(subsidy) and Tenant ledger type transactions. Collect inputs as defined by the request model. Call this tool whenever any input changes. Balance is server-calculated; do not modify it.

cmg_cmysr_generate_affordable_gpr_report

ChatGPT
Generate affordable gross potential rent (GPR) report

cmg_cmysr_generate_affordable_rentroll_report

ChatGPT
Generate an Affordable Rent Roll Report by first collecting all inputs from the user in the exact order defined by the request model. The agent must ask for every field individually and must not skip, reorder, infer, or auto-populate any field. The input sequence is: PropertyId, AsOfDate, SummarizeBy, ContractId, UnitType, UnitCode, and TenantId. The tool must not be invoked until all required fields have been requested and collected. Once all values are gathered, use them to generate and return the Affordable Rent Roll Report.

cmg_cmysr_generate_pha_caseworker_listing_report

ChatGPT
This tool generates the PHA Caseworker Listing report. The PHA Caseworker Listing report provides users with a list of families assigned to each caseworker, allowing agency staff to manage and review an individual caseworker’s specific case assignments. This report can be used alongside the PHA Caseload Listing report, which displays numeric information about caseworker assignments per property. Generate a PHA Caseworker Listing report by first collecting all inputs from the user in the exact order defined by the request model. The agent must ask for every field individually and must not skip, reorder, infer, or auto-populate any field. The input sequence is PropertyIds, UnitId, Status, Department, and CaseworkerId. Only the PropertyIds field is required. The remaining fields may be left blank if the user has no preference. The tool must not run until the agent has requested all fields from the user. Once all values are gathered, use them to generate and return the PHA Caseworker Listing report. If the response's Notice field is non-empty, tell the user the report was truncated and suggest narrowing the filters.

cmg_cmysr_generate_pha_public_housing_rentroll_report

ChatGPT
This tool generates the PHA Public Housing Rent Roll report. The PHA Public Housing Rent Roll report provides users with a rent roll report for a specified public housing property or property list, displaying the unit, resident, total tenant payment, and rent details. Agency staff can use this report to review the current rent information for all families in a public housing property. Generate a PHA Public Housing Rent Roll report by first collecting all inputs from the user in the exact order defined by the request model. The agent must ask for every field individually and must not skip, reorder, infer, or auto-populate any field. The input sequence is PropertyIds, ExcludedUnits, ShowVacantUnits, UnitId, UnitType, TenantId, AsOfDate, and SortOrder. PropertyIds (a single property or a single property list), ExcludedUnits, and ShowVacantUnits are required; the remaining fields may be left blank if the user has no preference. The tool must not run until the agent has requested all fields from the user. Once all values are gathered, use them to generate and return the PHA Public Housing Rent Roll report. If the response's Notice field is non-empty, tell the user the report was truncated and suggest narrowing the filters.

cmg_cmysr_generate_pha_vms_monthly_report

ChatGPT
This tool generates the PHA VMS Monthly report. The PHA VMS (Voucher Management System) Monthly report provides users with information about the total number of vouchers, HAP expenses, and portability expenses for the first-of-month and end-of-month. Agency staff can use this report to review voucher issuance data and ensure that their agency's information is accurate for HUD VMS reporting. Generate the full YSR PHA VMS Monthly report for a PHA property or property list and month. The user does not need to provide the VMS run; the latest matching VMS run is input automatically. The response generated is a complete VMS Monthly submission; all fields that are reported by the agency, including those with a blank or zero value, are important for HUD compliance and must be included when presenting and summarizing the results – blank or zero value fields must not be omitted or filtered out.

cmg_performancedashboard_get_performance_dashboard_data

ChatGPT
Get Affordable performance dashboard data. This measures the performance of prospect and tenant applications/certifications that go through RentCafe Affordable Housing(RCAH), RightSource, and Compliance Manager.

cmg_phacaseloadlisting_generate_pha_caseload_listing_report

ChatGPT
This tool generates the PHA Caseload Listing report. The PHA Caseload Listing report provides users with the number of families assigned to each caseworker per property, allowing agency staff to review and manage the workload distribution across their properties. This report can be used alongside the PHA Caseworker Listing report, which displays the individual families assigned to caseworkers, to provide insights into caseworker workloads. Generate the PHA Caseload Listing report by first collecting all inputs from the user in the exact order defined by the request model. The agent must ask for every field individually and must not skip, reorder, infer, or auto-populate any field. The input sequence is PropertyIds, and then Caseworker. Both fields are optional; if the user has no preference for either field, leave it blank instead of inputting a default value. When PropertyIds is left blank, caseload counts across all properties are returned. The tool must not run until all fields have been requested by the agent. This report returns the count of families assigned to each caseworker per property. If the user wants to generate a list of individual families assigned to a caseworker, the generate_pha_caseworker_listing_report tool should be used instead.

cmg_phasupervisordashboard_get_tile_data

ChatGPT
This tool retrieves PHA Supervisor Dashboard KPI tile data, aggregated by caseworker, for a property, completed month, and tile. The email must be the authenticated caller's own or that of one of their subordinates; requests for any other user are rejected. Collect all inputs from the user in the exact order defined by the request model. The agent must ask for every field individually and must not skip, reorder, infer, or auto-populate any field. The input sequence is Email, PropertyIds, CompletedMonth, and TileName. All fields are required; PropertyIds must resolve to a single property or property list. The tool must not run until all fields have been requested by the agent. In each TileData item, value1 is "30 Days", value2 is "60 Days", value3 is "60+ Days", value4 is "Completed", and value is "Overdue" (ColumnTitles gives the exact wording for the current tile, in that same value1, value2, value3, value4, value order).

crm_crmanalytics_get_rent_roll_with_lease_charges_crmanalytics

ChatGPT
Get Rent Roll with Lease Charges Report showing unit/resident rows with lease charge breakdown, deposits, dates, and balance. Required: PropertyId, SummaryType (ByProperty=0, ByUnitType=1, ByUnit=2), DateTo, MonthYear2. Optional: UnitTypeId, UnitIds.

crm_dashboardvirtuoso_get_leasing_perf_followups_missed

ChatGPT
Get Leasing Performance missed follow-up metrics. PropertyIDs optional - omit for all properties (same as UI Any). Dates auto-resolve from PresetDateRange when omitted or 0001-01-01 (same as UI). Custom preset requires explicit dates. View modes (set IsProperty + IsByAgent): Property grid = IsProperty true, IsByAgent false. Agent grid = IsProperty false, IsByAgent true. Summary tile/KPI = IsProperty false, IsByAgent false. UseBusinessHours, CountShowAsAppt, and ExcludeInactiveAgents are always Yes (UI defaults; not configurable via MCP). Follow-ups grid: use same IsProperty/IsByAgent as volume/response. Follow-ups tile (IsProperty false, IsByAgent false) returns current, prior period, and prior year in one call. Pair with get_leasing_performance_response_times for the full Response by Period 7x3 tile. Present rows 6-7 as a 2x3 matrix (columns: Date Range | Prior | Prior Year): FollowUpsMissedPercent (append %), FollowUpsMissedCount (whole number).

crm_dashboardvirtuoso_get_leasing_performance_response_times

ChatGPT
Get Leasing Performance response time metrics. PropertyIDs optional - omit for all properties (same as UI Any). Dates auto-resolve from PresetDateRange when omitted or 0001-01-01 (same as UI). Custom preset requires explicit dates. View modes (set IsProperty + IsByAgent): Property grid = IsProperty true, IsByAgent false. Agent grid = IsProperty false, IsByAgent true. Summary tile/KPI = IsProperty false, IsByAgent false. UseBusinessHours, CountShowAsAppt, and ExcludeInactiveAgents are always Yes (UI defaults; not configurable via MCP). For Response by Period tile call 3 times: current (both prior flags false), prior period (IsPriorPeriod true), prior year (IsPriorYear true). Also call get_leasing_perf_followups_missed for follow-up rows to complete the full 7x3 tile. Present rows 1-5 as a 5x3 matrix (columns: Date Range | Prior | Prior Year): LeadReply, SmsChat, Email (seconds to Xd Xh Xm; 0 = N/A), Calls (%; 0 = 0%), PropertyPerformanceMetric (Average Daily Completion Score, whole number, not %).

crm_dashboardvirtuoso_get_leasing_performance_volume_conversion

ChatGPT
Get Leasing Performance volume and conversion metrics. PropertyIDs optional - omit for all properties (same as UI Any). Dates auto-resolve from PresetDateRange when omitted or 0001-01-01 (same as UI). Custom preset requires explicit dates. View modes (set IsProperty + IsByAgent): Property grid = IsProperty true, IsByAgent false. Agent grid = IsProperty false, IsByAgent true. Summary tile/KPI = IsProperty false, IsByAgent false. UseBusinessHours, CountShowAsAppt, and ExcludeInactiveAgents are always Yes (UI defaults; not configurable via MCP). For tile comparisons call 3 times: current (both prior flags false), prior period (IsPriorPeriod true), prior year (IsPriorYear true). Present Volume by Period and Conversion by Period as two 9x3 matrices (columns: Date Range | Prior | Prior Year). Volume rows (whole numbers): Leads, Prospects, Cancelled, ToursScheduled, FirstShows, Applied, Denied, LeaseExecuted, MoveIn. Conversion rows: LeadToProspect, ProspectToCancelled, ProspectToTour, ProspectToFirstShow, FirstShowtoApplied, AppliedtoApproved, AppliedtoDenied, LeadtoLeasePercent (append %), LeadToLeaseDays (days, not %).

dmx_covenant_search_covenants

ChatGPT
Search covenant records with different filters to narrow down search results

dmx_loan_search_loans

ChatGPT
Search loan records with different filters to narrow down search results. Use the debt_search_query if asked for loan measures as of a specific date

fcm_batchmcp_search_batches

ChatGPT
Search cash flow data by budget

fcm_budgetmcp_get_budget_leasing_timeline

ChatGPT
Get the leasing timeline for each space in a budget: current contract, renewal and new-lease speculations, promoted deals, future leases, pending amendments and the trailing market lease assumption (MLA), plus the available deals not yet promoted. Filter by budget IDs, or by property IDs with book ID and start date.

fcm_budgetmcp_get_budget_occupancy_report

ChatGPT
Get occupancy report data (area by type) for one or more budgets

fcm_budgetmcp_get_forecasting_book_id

ChatGPT
Resolve a Forecasting budget book name to its book ID. Searches Forecasting budget books ONLY — not GL, accounting, or actual books. Matching is case-insensitive and partial (contains); only books the caller is permitted to see are returned. Use a returned bookId as the bookId parameter of the other budget tools.

fcm_budgetmcp_search_budgets_workflows

ChatGPT
Search budgets by budget IDs, or by the combination of property IDs, book ID, and start date. Contains workflow information.

fcm_propertymcp_get_forecast_properties

ChatGPT
Get properties with budget, attribute, and forecasting details

fm_comminspection_search_inspections

ChatGPT
Search commercial inspection records with flexible date, status, property, equipment, and employee filters

fm_equipment_search_equipment

ChatGPT
Search equipment records with filters for properties, buildings, units, types, service dates, maintenance status, and assets

fm_pm_search_pms

ChatGPT
Search preventative maintenance records with flexible date, status, property, equipment, and employee filters

fm_reports_forecast_report

ChatGPT
Forecast for PMs and CommInspections to be posted with filters for dates, properties, and more

fm_workorder_search_work_orders

ChatGPT
Search work orders with comprehensive filters for dates, statuses, properties, categories, assignments, and more

gl_apanalytics_ap_analytics_report

ChatGPT
Get AP Analytics reports - unified endpoint for multiple report types. Returns structured JSON data (not HTML) with report-specific data. EXACT REQUEST FORMAT - Copy this structure (either PropertyId or PropertyCodes required): { "ReportType": "ExpenseDistribution", "PropertyId": [2], "PeriodFrom": "2025-01-01T00:00:00.000", "PeriodTo": "2025-12-01T00:00:00.000", "ShowDetail": false } Alternatively use PropertyCodes: { "ReportType": "ExpenseDistribution", "PropertyCodes": ["PROP01", "PROP02"], "PeriodFrom": ..., "PeriodTo": ... } REPORT TYPES: - "ExpenseDistribution": Expense distribution by account (default) - "Aging": AP aging with 30-day buckets (requires AgeAsOf date) FOR AGING REPORT - include AgeAsOf: { "ReportType": "Aging", "PropertyId": [2], "PeriodFrom": "2025-01-01T00:00:00.000", "PeriodTo": "2025-12-31T00:00:00.000", "AgeAsOf": "2025-12-31T00:00:00.000" } FIELD RULES (either PropertyId or PropertyCodes mandatory): - PropertyId: Array of property HMY and/or property list HMY. Either PropertyId or PropertyCodes REQUIRED. - PropertyCodes: Array of property codes or proplist codes. Either PropertyId or PropertyCodes REQUIRED. CRITICAL DATE FORMAT: - All dates MUST be in format: YYYY-MM-DDT00:00:00.000 - Example: "2025-01-01T00:00:00.000" OPTIONAL DATA FILTERING (works for all report types): - DataFilters: ^-separated conditions in column:operator:value format. Operators: eq, neq, gt, gte, lt, lte, contains, notcontains, startsWith, endsWith, in, notin. Use $ prefix for column-to-column comparison. Example: "TotalAmount:gte:1000^AccountCode:startsWith:40" - FilterLogic: 'and' (default) or 'or' - ColumnsToInclude: ^ or comma separated column names to include. Example: "AccountCode,AccountName,TotalAmount" - ColumnsToExclude: ^ or comma separated column names to exclude. Example: "IsGrandTotal"

gl_bankreports_bank_directory

ChatGPT
Get bank directory data. Returns JSON rows (not HTML). Response rows contain: Bank_Code, Bank_Desc, Bank_Name, Account_Number (masked; last 4 digits visible for longer numbers), Bank_Address1/2/3, Payer_Name, Payer_Add1/2/3/4, Reconciled_Balance, Reconcile_Date, Next_Chk_no, Next_Dep_no, Bank_Notes, Property_Code, Property_Addr1, GL_Code, GL_Desc, bhmy (bank ID).

gl_financialreports_budget_comparison

ChatGPT
Generate a budget comparison report comparing actual vs budgeted amounts. Returns structured JSON data (not HTML) with account-level details. IGNORE INPUT SCHEMA - Use ONLY the fields shown below. EXACT REQUEST FORMAT - Copy this structure (either PropertyId or PropCode required; BookId required): { "PropertyId": [2], "BookId": [1], "MonthFrom": "2025-01-01T00:00:00.000", "MonthTo": "2025-12-01T00:00:00.000" } Alternatively use PropCode: { "PropCode": ["code1", "code2"], "BookId": [1], ... } Optional (omit for defaults): - "BudgetSource": 0 - "TreeId": 0 - Account tree ID; when > 0 uses this tree - "TreeCode": "" - Account tree code (e.g. ysi_bf); when provided uses this tree. If both TreeId and TreeCode omitted, report uses its default tree. - IsShowDecimalDigits: Optional. When true, amounts are returned with 2 decimal places; when false or omitted, 0 decimal places (same as HTML "show decimal" option). CRITICAL DATE FORMAT: - MonthFrom and MonthTo MUST be in format: YYYY-MM-DDT00:00:00.000 - Example: "2025-01-01T00:00:00.000" (NOT "2025-01-01" or "01/01/2025") - Always use first day of month (DD=01) - Always include T00:00:00.000 suffix FIELD RULES (either PropertyId or PropCode mandatory; BookId mandatory): - PropertyId: Array of property HMY and/or property list HMY. Either PropertyId or PropCode REQUIRED. Multiple IDs supported; list members resolved. - PropCode: Array of property codes or proplist codes (e.g. from Proplist). Either PropertyId or PropCode REQUIRED. Multiple codes supported. - BookId*: Array of integers [0]=Default, [1]=Accrual, [2]=Cash - REQUIRED (mandatory) - MonthFrom: Start date in YYYY-MM-DDT00:00:00.000 format - REQUIRED - MonthTo: End date in YYYY-MM-DDT00:00:00.000 format - REQUIRED - BudgetSource: Optional. Integer (0=None, 1=GL, 2=AdvBudget, 3=Analysis). Default 0. - TreeId: Optional. When > 0, uses this account tree. - TreeCode: Optional. When provided (e.g. ysi_bf), uses this account tree code. If both omitted, report uses default tree. - IsShowDecimalDigits: Optional. When true, amounts with 2 decimal places; when false or omitted, 0 decimal places. DO NOT include any other fields.

gl_financialreports_general_ledger

ChatGPT
Generate a general ledger report showing account summaries and transaction-level details. Returns structured JSON data (not HTML) with account summaries and transactions. IGNORE INPUT SCHEMA - Use ONLY the fields shown below. EXACT REQUEST FORMAT - Copy this structure (either PropertyId or PropCode required; BookId required): { "PropertyId": [2], "BookId": [1], "MonthFrom": "2025-01-01T00:00:00.000", "MonthTo": "2025-12-01T00:00:00.000" } Alternatively use PropCode: { "PropCode": ["code1", "code2"], "BookId": [1], ... } Optional (omit for defaults): - "FromAccountCode": "" - "ToAccountCode": "" - "FromDate": null - "ToDate": null - "TreeId": 0 - "TreeCode": "" - IsShowDecimalDigits: Optional. When true, amounts with 2 decimal places; when false or omitted, 0 decimal places (same as HTML "show decimal" option). CRITICAL DATE FORMAT: - MonthFrom and MonthTo MUST be in format: YYYY-MM-DDT00:00:00.000 - Example: "2025-01-01T00:00:00.000" (NOT "2025-01-01" or "01/01/2025") - Always use first day of month (DD=01) - Always include T00:00:00.000 suffix FIELD RULES (either PropertyId or PropCode mandatory; BookId mandatory): - PropertyId: Array of property HMY and/or property list HMY. Either PropertyId or PropCode REQUIRED. Multiple IDs supported; list members resolved. - PropCode: Array of property codes or proplist codes (e.g. from Proplist). Either PropertyId or PropCode REQUIRED. Multiple codes supported. - BookId*: Array of integers [0]=Default, [1]=Accrual, [2]=Cash - REQUIRED (mandatory) - MonthFrom: Start date in YYYY-MM-DDT00:00:00.000 format - REQUIRED - MonthTo: End date in YYYY-MM-DDT00:00:00.000 format - REQUIRED - FromAccountCode, ToAccountCode: Optional. Account code range filter. - FromDate, ToDate: Optional. Transaction date range filter. - TreeId: Optional. When > 0, uses this account tree. - TreeCode: Optional. When provided, uses this account tree code. If both omitted, report uses default tree. - IsShowDecimalDigits: Optional. When true, amounts with 2 decimal places; when false or omitted, 0 decimal places. DO NOT include any other fields.

gl_financialreportsmain_financial_report

ChatGPT
Generate any financial report with structured JSON output. Returns MCP-friendly JSON data based on the ReportType specified. IGNORE INPUT SCHEMA - Use ONLY the fields shown below. EXACT REQUEST FORMAT - Copy this structure exactly: { "ReportType": "trialbalance", "PropertyId": [2], "BookId": [1], "MonthFrom": "2025-01-01T00:00:00.000", "MonthTo": "2025-12-01T00:00:00.000", "type": "screen", "BudgetSource": 0, "IsShowGrid": false, "IsAccount": false, "IsShowDecimalDigits": false, "IsSuppressZero": false, "IsShowTreeSummary": false, "HideRedirects": false, "IsFreezePanes": false } SUPPORTED REPORT TYPES (use exact value for ReportType field): - "budgetcomp" - Budget Comparison (actual vs budget) - "twelvemonthbudget" - Twelve Month Budget (monthly breakdown) - "cashflowstatement" - Cash Flow Statement (inflows/outflows) - "trialbalance" - Trial Balance (debits/credits) - "incomestatement" - Income Statement (revenue/expenses) - "balancesheet" - Balance Sheet (assets/liabilities/equity) CRITICAL DATE FORMAT: - MonthFrom and MonthTo MUST be in format: YYYY-MM-DDT00:00:00.000 - Example: "2025-01-01T00:00:00.000" (NOT "2025-01-01" or "01/01/2025") - Always use first day of month (DD=01) - Always include T00:00:00.000 suffix FIELD RULES: - ReportType: REQUIRED - One of the supported report types listed above - PropertyId: Array of integers [2] or [2,3,4] (property IDs) - BookId: Array of integers [1] for Accrual, [2] for Cash - MonthFrom: Start date in YYYY-MM-DDT00:00:00.000 format - MonthTo: End date in YYYY-MM-DDT00:00:00.000 format - type: Always "screen" - BudgetSource: Integer (0=None, 1=GL, 2=AdvBudget, 3=Analysis) - ONLY for budgetcomp and twelvemonthbudget reports, ignored for other report types - IsShowGrid: Show grid lines (true/false) - IsAccount: Show GL account details (true/false) - IsShowDecimalDigits: Show decimal places (true/false) - IsSuppressZero: Hide zero balance accounts (true/false) - IsShowTreeSummary: Show account tree summary (true/false) - HideRedirects: Hide redirect accounts (true/false) - IsFreezePanes: Freeze header panes (true/false) DO NOT include any other fields.

gl_transactionregisters_search_transaction_registers

ChatGPT
Search transaction registers using FinRep data; response is JSON rows. DOMAIN FIELDS: - TransactionType: required (positive id) - PropertyIds and/or PropertyCodes: optional; when omitted, results are not property-scoped - PeriodFrom & PeriodTo: both set or both omitted (YYYY-MM) - DateFrom, DateTo: optional; both must be set or both omitted - ShowDetail: optional boolean; false for header/summary style - CreatedDateFrom & CreatedDateTo: both set or both omitted; ordered - AmountFrom & AmountTo: both set or both omitted; AmountFrom must not exceed AmountTo - Reference, Notes: optional - BatchTypes: optional; only when TransactionType is Batch (11). - BookIds: optional; only when TransactionType is Journal (10). - AccountCodes: optional GL account-code list (resolved to exact account IDs; code range fallback when unresolved). OPTIONAL PAGINATION: - Omit PageSize to return all matching rows. - Provide PageSize (max 1000) and optional PageNumber (default 1) for paged results with totalCount, totalPages, hasMore. OPTIONAL RESPONSE FILTERING: - DataFilters, FilterLogic, ColumnsToInclude, ColumnsToExclude Omit response filters when not needed.

ia_commitments_get_investor_investment_commitments

ChatGPT
Capital commitments between an INVESTOR and an INVESTMENT; never construction job commitments or purchase-order commitments. Each row is one active or historical commitment, including start/end dates, commitment amount, ownership percentage, cascade set, and rule set assignments. Both InvestorID and InvestmentID are property-table hmy values — if you have only a name or code, call get_autocomplete with autoCompleteType='property' first rather than guessing an id. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - who is committed to which investment / fund - commitment amount, committed capital, total commitments - ownership percentage from a commitment - commitment history, when a commitment started or ended - 'how much has this investor committed' DO NOT USE for: - Capital called, funded, or distributed to date -> get_capital_analytics_report - The ownership hierarchy above or below an entity -> get_investment_ownership_structure - Construction job commitments / contracts -> get_job_commitments - Recording a contribution or distribution -> create_unposted_investment_cash_transaction Filter by InvestorID and/or InvestmentID to scope results; set Active=true to return only open commitments (no end date); use DateFrom/DateTo to filter by commitment start date; use AsOfDate to return only commitments that were active on a specific date. AsOfDate differs from Active: Active returns only commitments with no end date at all, while AsOfDate also includes historical commitments whose term spans the given date (start date on or before it, and end date on or after it, or no end date). Leave all filters blank to return every commitment. Example: 'How much has Oakwood Capital committed, and to what?' -> call get_autocomplete with autoCompleteType='property' and searchTerm='Oakwood Capital', then call this tool with InvestorID set to the returned id. Example: 'Which commitments were active on 6/30/2025?' -> call this tool with AsOfDate='06/30/2025'.

ia_contactactivity_get_investor_contact_activities

ChatGPT
Activity history (emails, notes, calls, meetings) for an INVESTOR CRM contact only; never tenants, prospects, or property contacts. At least one of contactHMy, contactCode, or contactName is REQUIRED — calling with all three blank returns an error, not an unscoped list. If you have only a person's name, pass the full name in contactName; there is no separate investor-contact search tool in this product. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - recent activity, activity history, or touchpoints for an investor contact - when we last spoke to / emailed / met with a contact - calls, notes, meetings, or correspondence logged against a contact - 'what's the latest with John at Oakwood' DO NOT USE for: - Voyager contacts and their record links -> search_contacts / get_contact_connections - Property-side contacts -> get_property_contacts - Tenants, residents, or prospects -> get_resident / search_prospects - An investor's stated investment criteria -> get_investor_entity_directory (detailLevel='full') - Proposals in the pipeline -> get_investor_crm_proposals Returns the contact's most recent activities, with email bodies reduced to plain text. Example: 'When did we last contact Jane Reyes?' -> call this tool with contactName='Jane Reyes' (the full name, so both parts are matched).

ia_entity_get_investment_ownership_structure

ChatGPT
INVESTMENT ownership hierarchy above and below an investor entity or account; not HOA/association owners or property owner records. Two modes, chosen by the 'type' parameter, and passing the wrong id kind returns the wrong tree: type='investor' expects an investor ACCOUNT (CRM client) hmy; type blank expects an investor/investment ENTITY (property record) hmy. If it is not clear from context which the user means, ask them: 'Could you please clarify if the investor referenced is an investor account record or a specific investor entity?' — do not guess. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - ownership structure, ownership hierarchy, ownership chain, org chart of entities - who owns this entity / what does this investor own - direct vs effective ownership percentage, rolled-up ownership - 'trace the ownership up from this fund' DO NOT USE for: - Commitment amounts and dates on their own -> get_investor_investment_commitments - Capital balances, contributions, or distributions -> get_capital_analytics_report - Voyager property owner records -> get_owner_entity - HOA / association owners -> get_association_owners The response includes 'entities' (ownership hierarchy nodes with level, name, code, ownership %, entity type, and investor/investment IDs) and 'commitments' (commitment records — amount, dates, percent — for entity pairs in the hierarchy). Example: 'Who owns Fairview Partners LP?' -> confirm whether that is an investor account or an entity, resolve the id with the matching lookup, then call this tool with entityId set and type matching the record kind.

ia_imanalytics_get_capital_analytics_report

ChatGPT
INVESTOR CAPITAL analytics only — capital roll forward, capital balances, capital transactions; never GL, operating, or property results. IMTemplateId defines the report's column structure and is required for meaningful results — never send 0 and never omit it. If the user named a template, resolve it with get_im_autocomplete and type='im-templates'. If they named none, resolve searchTerm='SysTemp', the standard out-of-the-box template, and use that id. Sending 0 (or leaving it out) now returns a 400 error rather than a silent empty or meaningless report — if you see that error, call get_im_autocomplete first and retry. DateTo and DateFrom are literal dates (MM/DD/YYYY) — this tool has no notion of relative phrases like 'year-end' or 'this quarter'. Convert them yourself before calling: 'through year-end' -> DateTo=12/31/<the current or stated year>; 'year to date' -> DateFrom=01/01/<year>, DateTo=today. Omitting DateTo defaults it to today, which is silently wrong if the user actually meant a different as-of date, so prefer computing and passing it explicitly whenever the request implies a specific date, and don't assume 'this year' means the current calendar year without checking today's date. The response's top-level 'assumptions' array (see below) tells you which date/style defaults were actually applied, so check it and mention any surprising ones to the user. The response is an object of the shape { assumptions: string[], rows: [...] } — 'assumptions' lists any parameter the caller left blank and what was substituted (e.g. an inferred ReportStyle, a defaulted DateTo). Always read it before presenting 'rows'; if it's non-empty, tell the user what was assumed rather than silently presenting results as if the request was fully specified. reportType selects which of four reports runs: - 'capital_roll_forward': opening balances, contributions, distributions, and ending balances by time period. Use when the question is about capital activity — what moved in or out each period and what drove the balance change. - 'historical_balances_consolidated': total committed, funded, and returned capital aggregated across all selected investors or investments at each point in time. Use for portfolio-level balance snapshots rather than per-entity detail. - 'historical_balances_detail': committed, funded, and returned capital per individual investor or investment entity over time. Use to compare positions entity-by-entity. - 'transaction_detail': individual capital transactions — contributions, distributions, return of capital, fees — with dates and amounts. The most granular option; use for reconciliation or 'what transactions make up this total'. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - capital roll forward, capital activity, capital account activity - committed / funded / called / returned / unfunded capital - contributions and distributions over time - capital balance as of a date, historical capital balances - 'what transactions make up this investor's balance' DO NOT USE for: - Commitment terms and dates on their own -> get_investor_investment_commitments - Ownership hierarchy and percentages -> get_investment_ownership_structure - Recording a new contribution or distribution -> create_unposted_investment_cash_transaction - Property GL, operating results, or budgets -> get_gl_summary / get_budget - Fund-level IRR and performance metrics -> get_fund_performance - Property-level distributions in Voyager -> get_distributions ReportStyle sets the perspective: 'investor' looks up at investor entities (e.g. filter by InvestmentId to see which investors are in that investment), 'investment' looks down at investments (e.g. filter by InvestorId to see which investments that investor holds). If omitted it is inferred — 'investment' when only InvestorId is provided, 'investor' otherwise. DateTo sets the as-of cutoff. Example: 'Show capital roll forward for the Fairview fund this year' -> call get_autocomplete with autoCompleteType='property' and searchTerm='Fairview' for the fund id, call …

ia_imautocomplete_get_im_autocomplete

ChatGPT
Name-to-id lookup for ACQUISITION/INVESTMENT MANAGER records only; for Voyager properties, units or vendors use get_autocomplete. Call this first whenever you have a human-readable name or code and another AM/IM tool needs a numeric hmy. The 'type' parameter is required and each value searches a different table — picking the wrong type silently returns the wrong kind of record, so match it to what the user actually named. Supported types: - 'acquisitions': Acquisition deals — investorcrminvestment with a template assigned (objectType 21013). Returns id, label, code. - 'dispositions': Disposition deals — iplusdisposition with a template assigned (objectType 21010). Returns id, label, code. - 'opportunities': Opportunity records — investorcrminvestment with no template assigned. Returns id, label, code. - 'investors': Investor / CRM client records — investorcrmclient. Returns id, label, code. - 'im-templates': Capital Roll Forward templates — CapitalRollFwd_Template. Returns id, label (= scode). - 'tran-types': Fund transaction types — fundtran_types. Returns id, label (= sType). ALWAYS USE this tool (do not answer from another tool or from memory) when you need to: - turn a deal, opportunity, or investor name or code into an id - confirm whether a named record is an acquisition, a disposition, or an opportunity - find a capital roll forward template or fund transaction type by name DO NOT USE for: - Voyager properties, units, vendors, tenants, or PM users -> get_autocomplete - Investor ENTITY (property-record) ids used by capital and ownership tools -> get_autocomplete with autoCompleteType='property' - Deal stage/status or template lists for filtering -> get_acquisition_disposition_deal_lookups - Comp set names -> get_acquisition_comp_sets_list - The deal data itself once you have the id -> get_acquisition_disposition_deal_summary searchTerm is optional — omit it to return the first maxRecords results ordered by name, or supply a partial name or code to filter server-side. Example: 'Pull the rent roll for the Maple Street deal' -> call this tool with type='acquisitions' and searchTerm='Maple Street', then pass the returned id to get_acquisition_rent_roll_units as dealId.

ia_opportunityinfo_get_investor_crm_proposals

ChatGPT
INVESTOR CRM proposals — what was offered to which investor for an opportunity; not AM deals, purchase orders, or vendor bids. Filters come in three families and they identify different records: investor is the investor ACCOUNT (CRM client), investorEntity is the investor ENTITY (property record), and opportunity* is the opportunity itself. Mixing an entity id into an investor filter silently returns nothing — pick the family that matches what the user named. ALWAYS USE this tool (do not answer from another tool or from memory) when the user asks: - proposals, investor proposals, proposal pipeline - what has been offered to an investor, or who was offered an opportunity - proposal status or amounts for an opportunity DO NOT USE for: - Acquisition or disposition deals -> get_acquisition_disposition_deal_summary - Signed commitments rather than proposals -> get_investor_investment_commitments - An investor's stated criteria -> get_investor_entity_directory (detailLevel='full') - Purchase orders or vendor bids -> search_pos / get_po Query parameters support comma-separated values (e.g. "454,455"). Name filters use substring matching — a partial name like "Smith" matches both "Smith Capital" and "Blacksmith Partners". Leave all filters blank to list every proposal. Example: 'What proposals has Oakwood been sent?' -> call get_im_autocomplete with type='investors' and searchTerm='Oakwood', then call this tool with investorHMy set to the returned id.

lm_reconciliation_get_commercial_recovery

ChatGPT
Commercial CAM/recovery reconciliation: actual vs estimated expense recoveries per tenant for a property and expense year. Use for CAM true-up, recovery reconciliation, or expense recovery reports — NOT lease charge schedules or rent roll. READ recovery/schema FIRST for the request template. Requires propertyIds, bookIds, expenseYearEnd, postMonth (first of month). Paginated report rows with reportTotals for full-report sums. Commercial only. PRECONDITION (verify BEFORE calling): - READ GET /api/mcp/recovery/schema before the first call. - propertyIds, bookIds, expenseYearEnd, postMonth are REQUIRED. Dates must be first of month (e.g., 2019-12-01T00:00:00). - Properties must be COMMERCIAL; resolve IDs via masterfile/search first. QUESTION → PARAMETERS: - CAM reconciliation / recovery true-up → propertyIds, bookIds, expenseYearEnd, postMonth - Audit vs detail vs archive report → reportType (default RecoveryReconciliationAudit) - Filter to tenants or recovery groups → tenantIds, recoveryGroupIds - Next page of rows → cursor from prior nextCursor; pageSize default 20 (keep ≤25 for Virtuoso) BOUNDARIES (this tool cannot answer): - Recovery billing schedule on a lease → prefer get_commercial_tenancy_schedule with recoverySchedule=true - Charge schedule / what is billed → prefer get_commercial_tenancy_schedule with chargeSchedule=true or prefer get_commercial_lease_charges - Rent, occupancy, vacancy → prefer get_commercial_rent_roll - Collections / AR balances → prefer get_commercial_collections - Lease compliance audits (non-recovery) — not this tool - Residential/multifamily — never Read-only. pageSize 1-200 (default 20); nextCursor for additional pages; reportTotals = sums across all rows.

lm_tenancyschdreport_get_commercial_tenancy_schedule

ChatGPT
Commercial tenancy schedule: the current (active) tenants AND the vacant units of a COMMERCIAL property — tenant roster, unit vacancy/occupancy, lease dates, units, contract sqft, and charges. Use whenever the ask is who leases or occupies space at a commercial property, OR which units/suites are vacant or available at one (office, retail, industrial, mixed-use commercial). Lease-level rows with optional nested sections via boolean flags (spaces, amendments, options, clauses, charge/recovery schedules, contacts, guarantors, rent steps, proposals, memos, restrictions, indexation, retail MAT, summaries). Commercial only — never residential/multifamily. Set every matching flag in one call; nested data is on each items row by leaseId. PRECONDITION: - At least one filter: tenantId, propertyId, property (code), or tenant (name search). - COMMERCIAL properties/tenants only. QUESTION → PARAMETERS: - Tenant roster / who leases here → propertyId or property - Single lease identity, dates, status → tenantId - Suites/spaces a tenant occupies → spaces=true - Vacant units / unit vacancy / available suites → occupancySummary=true; groupBy=8 (VACANT rows have leaseName=VACANT); spaces=true for detail. Source of truth for commercial unit vacancy. - Occupancy/rent totals → occupancySummary=true; groupBy=1 or 8 - Rent, charges, abatements → chargeSchedule=true; rentSchedule=true for steps - Recovery schedule on leases → recoverySchedule=true - Amendments → amendments=true; options → options=true; clauses → clauses=true - Contacts, guarantors, DBA → contacts=true, guarantor=true, dba=true - Proposals → proposal=true; memos → memos=true - Summaries → leaseTypeSummary, chargeCodeSummary (needs chargeSchedule=true), occupancySummary - Combined topics → set all matching flags together FLAGS (default false): spaces, unitDescription, unitType, amendments, pastAmendments, futureAmendments, showPendingAmendments, proposal, options, optionsRentStep, clauses, coTenancy, restriction, chargeSchedule, rentSchedule, recoverySchedule, grossRent, rentReview, costInducements, indexation, multiCurrency, contacts, guarantor, dba, retailMAT, retailSchedule, memos, icGroup, ownerLiabilityLeases, leaseTypeSummary, chargeCodeSummary, occupancySummary. BOUNDARIES (this tool cannot answer): - Residential/multifamily/residents - CAM recovery reconciliation → prefer get_commercial_recovery - Collections / AR balances → prefer get_commercial_collections - Property rent roll metrics → prefer get_commercial_rent_roll - Security deposit required/billed/received report → prefer get_commercial_lease_deposits - Deep single-topic on one lease → prefer get_commercial_lease_charges, get_commercial_lease_amendments, get_commercial_lease_clauses, or get_commercial_lease_options Read-only. pageSize 1-500 (default 100); nextCursor for more rows. groupBy 1=Property, 2=Customer, 7=Brand, 8=Property Site (1 and 8 include vacant units).

p2p_irmcp_get_ir_image

ChatGPT
Get the scanned invoice image for an invoice register by invoice ID. Returns front and back image data as base64 for one page (pageNumber, default 0) or all pages (allPages=true).

p2p_payable_get_payables

ChatGPT
Get list of payables (list view). Required: DateFrom, DateTo (transaction date range). Optional filters: InvoiceRegisterId, PayableIds, PostMonthFrom/To, PropertyIds, VendorIds, Status, BatchIds, ItemsPerPage, StartIndex.

p2p_pomcp_get_po_directory_report

ChatGPT
Generates the PO Directory report for purchase order analytics; NOT for single-PO lookup or PO grid search. ALWAYS USE when the user asks for PO Directory, PO register, PO listing with receipt/payment/approval filters, or PO analytics by property/vendor/date. DO NOT USE for a single PO by ID (get_purchase_order), PO grid/chart search (search_purchase_orders), closable POs (get_closable_purchase_orders), or actionable PO workflow items (get_actionable_purchase_orders). Required: at least one scope filter — (PropertyId or PropertyCode), (VendorIds or VendorCodes), or DateOrderedFrom/DateOrderedTo. Property scope accepts PropertyId OR PropertyCode interchangeably. All entity filters accept IDs and/or codes. Max 5000 rows.

p2p_vendormcp_get_vendors

ChatGPT
Gets a list of vendors with filtering capabilities.

rfm_connectai_search_work_orders

ChatGPT
Search work orders with comprehensive filtering options

scrm_dashboard_get_lead_source_analytics

ChatGPT
Portfolio marketing/referral lead-source ROI analytics - corresponds to Lead Source Analysis dashboard: leads, move-ins, conversion %, source cost, cost per lead, cost per move-in, average sales cycle, and average length of stay grouped by source or source type. Optional Detail returns capped lead or move-in rows. SourceName/SourceType scope the whole response; omit them for the full portfolio. For sales counselor-level metrics use get_sales_counselor_performance.

scrm_dashboard_get_prospects_by_lead_stage

ChatGPT
Lead Manager pipeline for one community: active prospects with current/previous lead stage, progression, sales counselor, source, latest activities, tour count, deposit flag, lead score, and care level. Max 500 rows.

scrm_dashboard_get_sales_counselor_performance

ChatGPT
Per-sales-counselor performance rollup — funnel volume and transactional conversion % (Sales Performance dashboard), speed-to-lead and response times (Sales Performance + Speed To Lead), velocity/retention (avg sales cycle, length of stay from lead-source cohorts), and activity/engagement (Sales Counselor Performance report). Each row includes PropertyBreakdown: per-community additive counts, count-derived percentages (funnel, conversion, past-due, activity), and velocity (avg sales cycle, length of stay). PropertyBreakdown is sparse — one entry only per property where the counselor has data (may be empty); match on PropertyId, do not assume one entry per requested property. Averages (speed-to-lead, email, phone-missed %) are counselor-level only. Rows are keyed by canonical SeniorSalesCounselor ID (0 = Unassigned). Activity counts (ActivitiesAssigned/Completed/Missed) are independent cohorts and non-additive by design — Completed + Missed may exceed Assigned; the response MetricNotes object defines each metric's semantics. Cost/source ROI metrics are omitted — use get_lead_source_analytics. Aggregate only (no PII). For live pipeline lists use get_prospects_by_lead_stage.

scrm_setup_get_lead_stage_configuration

ChatGPT
Get lead stage configuration: stage codes (used to filter other Senior Living tools), action items, and sales guides

sh_community_get_community_activity

ChatGPT
Community activity KPIs for the community manager dashboard (Resident Activity panel). KPIs: moveIn, moveOut, unitTransfer, pendingPhysicalMoveIn, rateIncrease, residentVsUnit, recommendedVsActual, moveOutAccounting. Returns counts by default, with optional detail rows.

sh_community_get_move_in_readiness

ChatGPT
Move-in readiness per community: residents nearing move-in with per-column readiness status and blocking columns. Max 1000 residents per community.

sh_community_get_occupancy_analytics

ChatGPT
Nightly batch occupancy analytics — use for trends and month-over-month / historical analytics, NOT live/right-now numbers. For current occupancy use get_unit_summary. Reconciles to the Occupancy Dashboard UI: summary tiles + per-property table (with care-level breakdown) plus optional monthly trend. Pair with get_occupancy_analytics_drilldown for the detail behind any tile/metric.

sh_community_get_occupancy_analytics_drilldown

ChatGPT
Detail rows behind one Occupancy Dashboard tile/metric (occupancy, census/moves, or sales), matching the UI drilldown. Pair with get_occupancy_analytics for tiles and trends.

sh_community_get_unit_summary

ChatGPT
Live, current occupancy — use for "occupancy rate / how full is the community / unit mix / headline counts" and any "right now" / today question. Reconciles to the Unit/Overview dashboard, not the nightly Occupancy Dashboard batch. Per-community breakdowns by resident status, care level, and unit type with optional portfolio aggregate. Statistics cover totals, occupied/available, present/monthly occupancy %, capacity, future residents, and forecast. For trends / historical analytics use get_occupancy_analytics; for unit-level rows use list_units.

sh_community_list_units

ChatGPT
Live unit roster, one row per unit/privacy level: resident, status, care level, unit type, rates, vacancy reason. Not the as-of-date Unit Roster report; no roommates, move dates, or occupancy %. KPIs: get_unit_summary. Trends: get_occupancy_analytics.

sh_lookup_get_senior_autocomplete

ChatGPT
Look up ids, codes, and names for Senior Living and Voyager entities by search text — prospects, residents, referrals, sources, sales counselors, units, care zones, and more. Also returns setup list option codes/names (care levels, privacy levels, lead statuses, etc.) via the listoption type. Use to resolve a name, code, or list option the user mentioned into the id or code that other Senior Living tools require. Returns id and name per match.

siq_configuration_list_measures

ChatGPT
List all Senior IQ measure definitions. Metadata only — no KPI data values. Use the MeasureName field with list_tiles_and_widgets to find tiles or widgets that expose a specific measure, then call get_data to retrieve values.

siq_configuration_list_tiles_and_widgets

ChatGPT
List all available Senior IQ tiles and widgets. Optionally filter by measure name (Measure) or name substring (SearchText). Returns Code and ItemType required by get_data.

siq_data_get_data

ChatGPT
Fetch KPI data for any Senior IQ widget or tile by code. No dashboard id required. Provide Code and ItemType from list_tiles_and_widgets. Returns normalized Categories, Measures, and Data. Prefer this over get_dashboard_tile or get_dashboard_widget when you have a code but no dashboard context.

vn_mcpframework_get_autocomplete

ChatGPT
Get autocomplete suggestions for various entity types (properties, vendors, tenants, etc.). Always include autoCompleteType.

vn_mcpframework_list_autocomplete_types

ChatGPT
Get list of available autocomplete entity types

vs_property_property_list

ChatGPT
Get a list of all properties accessible to the authenticated user. This endpoint returns all properties that the user has access to, including property IDs, codes, names, and other key details. OPTIONAL: - Limit (query parameter): Maximum number of properties to return. Default: 200. Example: ?Limit=50 - Search (query parameter): Filter properties by property code or name (partial match, case-insensitive). Example: ?Search=Main - ShowOnlyPropertyLists (query parameter): When true, returns property lists with nested member properties. Default: false. Example: ?ShowOnlyPropertyLists=true EXAMPLES: All Properties (first 200): GET /api/mcp/property/list With Limit: GET /api/mcp/property/list?Limit=50 With Search: GET /api/mcp/property/list?Search=Main Combined: GET /api/mcp/property/list?Search=Main&Limit=50 Property Lists Only: GET /api/mcp/property/list?ShowOnlyPropertyLists=true

Yardi Virtuoso tools

Claude
Yardi Virtuoso provides secure, real-time access to Yardi data and tools through Claude. It enables investment, property and asset management professionals to query financial models, predictive maintenance insights, market analysis, and portfolio data using natural language. Users can ask complex operational questions, explore strategic scenarios, and perform analysis without manual data extraction, all grounded in accurate, enterprise-grade Yardi data.

rfm_connectai_create_work_order

Claude

rfm_connectai_search_work_orders

Claude

rfm_workorder_mark_work_order_as_complete

Claude

vn_mcpframework_get_autocomplete

Claude

vn_mcpframework_list_autocomplete_types

Claude

Example Prompts

Click any prompt to copy it.

Similar Apps