@nightsquawktech/appfolio-mcp-server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/COMMERCIAL.md +35 -0
  2. package/LICENSE +661 -0
  3. package/README.md +127 -0
  4. package/dist/catalog/index.json +1511 -0
  5. package/dist/catalog/report-spec.js +27 -0
  6. package/dist/catalog/reports/account_totals.json +112 -0
  7. package/dist/catalog/reports/additional_fees.json +73 -0
  8. package/dist/catalog/reports/aged_payables_summary.json +124 -0
  9. package/dist/catalog/reports/aged_receivables_detail.json +132 -0
  10. package/dist/catalog/reports/amenities_by_property.json +73 -0
  11. package/dist/catalog/reports/annual_budget_comparative.json +138 -0
  12. package/dist/catalog/reports/annual_budget_forecast.json +125 -0
  13. package/dist/catalog/reports/appfolio_stack_usage.json +112 -0
  14. package/dist/catalog/reports/association_work_order.json +232 -0
  15. package/dist/catalog/reports/balance_sheet.json +124 -0
  16. package/dist/catalog/reports/balance_sheet_comparative.json +126 -0
  17. package/dist/catalog/reports/balance_sheet_comparison.json +113 -0
  18. package/dist/catalog/reports/bank_account_association.json +94 -0
  19. package/dist/catalog/reports/bill_detail.json +183 -0
  20. package/dist/catalog/reports/board_of_directors.json +87 -0
  21. package/dist/catalog/reports/budget_comparative.json +162 -0
  22. package/dist/catalog/reports/budget_comparison.json +141 -0
  23. package/dist/catalog/reports/cancelled_processes.json +122 -0
  24. package/dist/catalog/reports/cash_flow.json +158 -0
  25. package/dist/catalog/reports/cash_flow_comparison.json +158 -0
  26. package/dist/catalog/reports/cash_flow_detail.json +129 -0
  27. package/dist/catalog/reports/charge_detail.json +198 -0
  28. package/dist/catalog/reports/chart_of_accounts.json +22 -0
  29. package/dist/catalog/reports/check_register.json +181 -0
  30. package/dist/catalog/reports/check_register_detail.json +181 -0
  31. package/dist/catalog/reports/completed_processes.json +117 -0
  32. package/dist/catalog/reports/delinquency.json +164 -0
  33. package/dist/catalog/reports/delinquency_as_of.json +155 -0
  34. package/dist/catalog/reports/deposit_register.json +51 -0
  35. package/dist/catalog/reports/dues_roll.json +89 -0
  36. package/dist/catalog/reports/dues_roll_itemized.json +113 -0
  37. package/dist/catalog/reports/eligible_debt_summary.json +73 -0
  38. package/dist/catalog/reports/email_delivery_errors.json +104 -0
  39. package/dist/catalog/reports/expense_distribution.json +109 -0
  40. package/dist/catalog/reports/expense_register.json +149 -0
  41. package/dist/catalog/reports/fixed_assets.json +111 -0
  42. package/dist/catalog/reports/flows_assigned_tasks.json +103 -0
  43. package/dist/catalog/reports/fund_balance_sheet.json +113 -0
  44. package/dist/catalog/reports/fund_balance_sheet_active_funds.json +113 -0
  45. package/dist/catalog/reports/fund_income_statement.json +132 -0
  46. package/dist/catalog/reports/general_ledger.json +166 -0
  47. package/dist/catalog/reports/gross_potential_rent_enhanced.json +102 -0
  48. package/dist/catalog/reports/guest_card_inquiries.json +177 -0
  49. package/dist/catalog/reports/guest_cards.json +161 -0
  50. package/dist/catalog/reports/historical_advertised_rent.json +92 -0
  51. package/dist/catalog/reports/homeowner_delinquency.json +143 -0
  52. package/dist/catalog/reports/homeowner_delinquency_as_of.json +161 -0
  53. package/dist/catalog/reports/homeowner_directory.json +126 -0
  54. package/dist/catalog/reports/homeowner_ledger.json +59 -0
  55. package/dist/catalog/reports/homeowner_prepayment_balance.json +127 -0
  56. package/dist/catalog/reports/homeowner_resale.json +107 -0
  57. package/dist/catalog/reports/homeowner_vehicle_info.json +104 -0
  58. package/dist/catalog/reports/import_variances.json +41 -0
  59. package/dist/catalog/reports/in_progress_workflows.json +181 -0
  60. package/dist/catalog/reports/inactive_guest_cards.json +134 -0
  61. package/dist/catalog/reports/income_register.json +131 -0
  62. package/dist/catalog/reports/income_statement.json +130 -0
  63. package/dist/catalog/reports/income_statement_comparative.json +140 -0
  64. package/dist/catalog/reports/income_statement_comparison.json +135 -0
  65. package/dist/catalog/reports/income_statement_date_range.json +134 -0
  66. package/dist/catalog/reports/inspection_detail.json +107 -0
  67. package/dist/catalog/reports/insurance_enforcement.json +22 -0
  68. package/dist/catalog/reports/insurance_usage.json +92 -0
  69. package/dist/catalog/reports/inventory_status.json +73 -0
  70. package/dist/catalog/reports/inventory_usage.json +131 -0
  71. package/dist/catalog/reports/keys_detail.json +131 -0
  72. package/dist/catalog/reports/late_fee_policy_comparison.json +135 -0
  73. package/dist/catalog/reports/lease_expiration_detail.json +147 -0
  74. package/dist/catalog/reports/lease_expiration_summary.json +95 -0
  75. package/dist/catalog/reports/lease_history.json +147 -0
  76. package/dist/catalog/reports/leasing_agent_performance.json +54 -0
  77. package/dist/catalog/reports/leasing_funnel_performance.json +113 -0
  78. package/dist/catalog/reports/leasing_summary.json +92 -0
  79. package/dist/catalog/reports/loans.json +95 -0
  80. package/dist/catalog/reports/occupancy_custom_fields.json +73 -0
  81. package/dist/catalog/reports/occupancy_summary.json +95 -0
  82. package/dist/catalog/reports/owner1099.json +135 -0
  83. package/dist/catalog/reports/owner1099_detail.json +156 -0
  84. package/dist/catalog/reports/owner_custom_fields.json +73 -0
  85. package/dist/catalog/reports/owner_directory.json +101 -0
  86. package/dist/catalog/reports/owner_leasing.json +115 -0
  87. package/dist/catalog/reports/owner_withholdings.json +170 -0
  88. package/dist/catalog/reports/payment_plans.json +128 -0
  89. package/dist/catalog/reports/premium_leads_billing_detail.json +70 -0
  90. package/dist/catalog/reports/project_budget_detail.json +56 -0
  91. package/dist/catalog/reports/project_directory.json +144 -0
  92. package/dist/catalog/reports/property_budget.json +83 -0
  93. package/dist/catalog/reports/property_custom_fields.json +73 -0
  94. package/dist/catalog/reports/property_directory.json +73 -0
  95. package/dist/catalog/reports/property_group_directory.json +85 -0
  96. package/dist/catalog/reports/property_performance.json +115 -0
  97. package/dist/catalog/reports/property_staff_assignments.json +73 -0
  98. package/dist/catalog/reports/prospect_source_tracking.json +92 -0
  99. package/dist/catalog/reports/purchase_order.json +163 -0
  100. package/dist/catalog/reports/receivables_activity.json +138 -0
  101. package/dist/catalog/reports/renewal_summary.json +134 -0
  102. package/dist/catalog/reports/rent_roll.json +114 -0
  103. package/dist/catalog/reports/rent_roll_commercial.json +106 -0
  104. package/dist/catalog/reports/rent_roll_itemized.json +125 -0
  105. package/dist/catalog/reports/rentable_items.json +97 -0
  106. package/dist/catalog/reports/rental_applications.json +118 -0
  107. package/dist/catalog/reports/renter_directory.json +60 -0
  108. package/dist/catalog/reports/resident_financial_activity.json +107 -0
  109. package/dist/catalog/reports/screening_assessments.json +104 -0
  110. package/dist/catalog/reports/screening_usage.json +92 -0
  111. package/dist/catalog/reports/security_deposit_funds_detail.json +141 -0
  112. package/dist/catalog/reports/showings.json +123 -0
  113. package/dist/catalog/reports/student_housing_rent_roll_by_bed.json +125 -0
  114. package/dist/catalog/reports/surveys_summary.json +118 -0
  115. package/dist/catalog/reports/tenant_debt_collections_status.json +90 -0
  116. package/dist/catalog/reports/tenant_directory.json +120 -0
  117. package/dist/catalog/reports/tenant_ledger.json +72 -0
  118. package/dist/catalog/reports/tenant_tickler.json +102 -0
  119. package/dist/catalog/reports/tenant_transactions_summary.json +97 -0
  120. package/dist/catalog/reports/tenant_unpaid_charges_summary.json +147 -0
  121. package/dist/catalog/reports/tenant_vehicle_info.json +107 -0
  122. package/dist/catalog/reports/trial_balance.json +104 -0
  123. package/dist/catalog/reports/trial_balance_by_property.json +104 -0
  124. package/dist/catalog/reports/trust_account_balance.json +116 -0
  125. package/dist/catalog/reports/trust_account_balance_detail.json +112 -0
  126. package/dist/catalog/reports/twelve_month_cash_flow.json +157 -0
  127. package/dist/catalog/reports/twelve_month_income_statement.json +147 -0
  128. package/dist/catalog/reports/unit_custom_fields.json +73 -0
  129. package/dist/catalog/reports/unit_directory.json +80 -0
  130. package/dist/catalog/reports/unit_inspection.json +95 -0
  131. package/dist/catalog/reports/unit_turn_detail.json +104 -0
  132. package/dist/catalog/reports/unit_vacancy.json +143 -0
  133. package/dist/catalog/reports/unpaid_balances_by_month.json +181 -0
  134. package/dist/catalog/reports/upcoming_activities.json +142 -0
  135. package/dist/catalog/reports/vendor1099.json +84 -0
  136. package/dist/catalog/reports/vendor_custom_fields.json +22 -0
  137. package/dist/catalog/reports/vendor_directory.json +134 -0
  138. package/dist/catalog/reports/vendor_ledger.json +122 -0
  139. package/dist/catalog/reports/vendor_ledger_enhanced.json +122 -0
  140. package/dist/catalog/reports/violation_detail.json +122 -0
  141. package/dist/catalog/reports/work_order.json +254 -0
  142. package/dist/catalog/reports/work_order_labor_summary.json +148 -0
  143. package/dist/catalog-db/endpoint-spec.js +22 -0
  144. package/dist/catalog-db/endpoints/delete_inspections_inspectionid.json +21 -0
  145. package/dist/catalog-db/endpoints/delete_inventories_id.json +21 -0
  146. package/dist/catalog-db/endpoints/delete_properties_propertyid_marketing_photos_marketingphotoid.json +27 -0
  147. package/dist/catalog-db/endpoints/delete_properties_propertyid_photos_photoid.json +27 -0
  148. package/dist/catalog-db/endpoints/delete_units_unitid_photos_photoid.json +27 -0
  149. package/dist/catalog-db/endpoints/delete_work_orders_workorderid_attachments_attachmentid.json +27 -0
  150. package/dist/catalog-db/endpoints/get_bank_accounts.json +58 -0
  151. package/dist/catalog-db/endpoints/get_bills.json +185 -0
  152. package/dist/catalog-db/endpoints/get_ca_associations.json +106 -0
  153. package/dist/catalog-db/endpoints/get_ca_bank_balances.json +101 -0
  154. package/dist/catalog-db/endpoints/get_ca_board_members.json +146 -0
  155. package/dist/catalog-db/endpoints/get_ca_homeowner_ledgers.json +70 -0
  156. package/dist/catalog-db/endpoints/get_ca_homeowners.json +151 -0
  157. package/dist/catalog-db/endpoints/get_ca_renters.json +132 -0
  158. package/dist/catalog-db/endpoints/get_ca_rules.json +76 -0
  159. package/dist/catalog-db/endpoints/get_ca_units.json +130 -0
  160. package/dist/catalog-db/endpoints/get_ca_violations.json +119 -0
  161. package/dist/catalog-db/endpoints/get_charges.json +76 -0
  162. package/dist/catalog-db/endpoints/get_corporate_entities.json +88 -0
  163. package/dist/catalog-db/endpoints/get_custom_fields.json +120 -0
  164. package/dist/catalog-db/endpoints/get_delinquent_charges.json +88 -0
  165. package/dist/catalog-db/endpoints/get_gl_accounts.json +115 -0
  166. package/dist/catalog-db/endpoints/get_gl_details.json +154 -0
  167. package/dist/catalog-db/endpoints/get_inventories.json +131 -0
  168. package/dist/catalog-db/endpoints/get_inventory_locations.json +70 -0
  169. package/dist/catalog-db/endpoints/get_jobs.json +79 -0
  170. package/dist/catalog-db/endpoints/get_journal_entries.json +137 -0
  171. package/dist/catalog-db/endpoints/get_late_fee_policies.json +148 -0
  172. package/dist/catalog-db/endpoints/get_leads.json +248 -0
  173. package/dist/catalog-db/endpoints/get_leads_notes.json +83 -0
  174. package/dist/catalog-db/endpoints/get_leases.json +70 -0
  175. package/dist/catalog-db/endpoints/get_leases_renewal_pricings.json +52 -0
  176. package/dist/catalog-db/endpoints/get_listings.json +259 -0
  177. package/dist/catalog-db/endpoints/get_occupancies_documents.json +70 -0
  178. package/dist/catalog-db/endpoints/get_owner_groups.json +230 -0
  179. package/dist/catalog-db/endpoints/get_owners.json +258 -0
  180. package/dist/catalog-db/endpoints/get_owners_attachments.json +82 -0
  181. package/dist/catalog-db/endpoints/get_owners_notes.json +71 -0
  182. package/dist/catalog-db/endpoints/get_owners_ownerid.json +247 -0
  183. package/dist/catalog-db/endpoints/get_payables.json +138 -0
  184. package/dist/catalog-db/endpoints/get_portfolios.json +70 -0
  185. package/dist/catalog-db/endpoints/get_properties.json +267 -0
  186. package/dist/catalog-db/endpoints/get_properties_attachments.json +76 -0
  187. package/dist/catalog-db/endpoints/get_properties_marketing_photos.json +76 -0
  188. package/dist/catalog-db/endpoints/get_properties_notes.json +71 -0
  189. package/dist/catalog-db/endpoints/get_properties_photos.json +76 -0
  190. package/dist/catalog-db/endpoints/get_property_groups.json +84 -0
  191. package/dist/catalog-db/endpoints/get_recurring_charges.json +106 -0
  192. package/dist/catalog-db/endpoints/get_rental_applications.json +186 -0
  193. package/dist/catalog-db/endpoints/get_rental_applications_notes.json +71 -0
  194. package/dist/catalog-db/endpoints/get_showings.json +99 -0
  195. package/dist/catalog-db/endpoints/get_tenant_ledgers.json +82 -0
  196. package/dist/catalog-db/endpoints/get_tenants.json +273 -0
  197. package/dist/catalog-db/endpoints/get_tenants_notes.json +71 -0
  198. package/dist/catalog-db/endpoints/get_unit_types.json +168 -0
  199. package/dist/catalog-db/endpoints/get_units.json +359 -0
  200. package/dist/catalog-db/endpoints/get_units_attachments.json +76 -0
  201. package/dist/catalog-db/endpoints/get_units_notes.json +71 -0
  202. package/dist/catalog-db/endpoints/get_units_photos.json +70 -0
  203. package/dist/catalog-db/endpoints/get_users.json +88 -0
  204. package/dist/catalog-db/endpoints/get_vendors.json +317 -0
  205. package/dist/catalog-db/endpoints/get_vendors_notes.json +71 -0
  206. package/dist/catalog-db/endpoints/get_work_orders.json +322 -0
  207. package/dist/catalog-db/endpoints/get_work_orders_attachments.json +83 -0
  208. package/dist/catalog-db/endpoints/patch_bills_billid.json +156 -0
  209. package/dist/catalog-db/endpoints/patch_ca_violations_violationid.json +71 -0
  210. package/dist/catalog-db/endpoints/patch_inspections_inspectionid.json +77 -0
  211. package/dist/catalog-db/endpoints/patch_inventories_id.json +113 -0
  212. package/dist/catalog-db/endpoints/patch_inventory_locations_id.json +52 -0
  213. package/dist/catalog-db/endpoints/patch_journal_entries_journalentryid.json +90 -0
  214. package/dist/catalog-db/endpoints/patch_leads_guestcardid_notes_id.json +46 -0
  215. package/dist/catalog-db/endpoints/patch_leads_leadid.json +162 -0
  216. package/dist/catalog-db/endpoints/patch_leases_leaseid.json +52 -0
  217. package/dist/catalog-db/endpoints/patch_owner_groups_id.json +72 -0
  218. package/dist/catalog-db/endpoints/patch_owners_ownerid.json +344 -0
  219. package/dist/catalog-db/endpoints/patch_owners_ownerid_notes_id.json +46 -0
  220. package/dist/catalog-db/endpoints/patch_portfolios_portfolioid.json +46 -0
  221. package/dist/catalog-db/endpoints/patch_properties_propertyid.json +333 -0
  222. package/dist/catalog-db/endpoints/patch_properties_propertyid_marketing_photos_marketingphotoid.json +46 -0
  223. package/dist/catalog-db/endpoints/patch_properties_propertyid_notes_id.json +46 -0
  224. package/dist/catalog-db/endpoints/patch_properties_propertyid_photos_photoid.json +46 -0
  225. package/dist/catalog-db/endpoints/patch_property_groups_propertygroupid.json +40 -0
  226. package/dist/catalog-db/endpoints/patch_recurring_charges_recurringchargeid.json +89 -0
  227. package/dist/catalog-db/endpoints/patch_rental_applications_rentalapplicationid.json +47 -0
  228. package/dist/catalog-db/endpoints/patch_rental_applications_rentalapplicationid_notes_id.json +46 -0
  229. package/dist/catalog-db/endpoints/patch_showings_showingid.json +69 -0
  230. package/dist/catalog-db/endpoints/patch_tenants_bulk.json +131 -0
  231. package/dist/catalog-db/endpoints/patch_tenants_tenantid.json +48 -0
  232. package/dist/catalog-db/endpoints/patch_tenants_tenantid_notes_id.json +46 -0
  233. package/dist/catalog-db/endpoints/patch_unit_types_unittypeid.json +126 -0
  234. package/dist/catalog-db/endpoints/patch_units_unitid.json +296 -0
  235. package/dist/catalog-db/endpoints/patch_units_unitid_notes_id.json +46 -0
  236. package/dist/catalog-db/endpoints/patch_units_unitid_photos_photoid.json +46 -0
  237. package/dist/catalog-db/endpoints/patch_vendors_vendorid.json +263 -0
  238. package/dist/catalog-db/endpoints/patch_vendors_vendorid_notes_id.json +46 -0
  239. package/dist/catalog-db/endpoints/patch_work_orders_workorderid.json +273 -0
  240. package/dist/catalog-db/endpoints/patch_work_orders_workorderid_notes_id.json +46 -0
  241. package/dist/catalog-db/endpoints/post_bank_accounts_bulk.json +167 -0
  242. package/dist/catalog-db/endpoints/post_bills.json +160 -0
  243. package/dist/catalog-db/endpoints/post_bills_billid_attachments.json +40 -0
  244. package/dist/catalog-db/endpoints/post_bills_bulk.json +185 -0
  245. package/dist/catalog-db/endpoints/post_bills_bulk_async.json +192 -0
  246. package/dist/catalog-db/endpoints/post_ca_violations.json +63 -0
  247. package/dist/catalog-db/endpoints/post_ca_violations_violationid_attachments.json +41 -0
  248. package/dist/catalog-db/endpoints/post_charges.json +56 -0
  249. package/dist/catalog-db/endpoints/post_charges_bulk.json +70 -0
  250. package/dist/catalog-db/endpoints/post_charges_bulk_async.json +70 -0
  251. package/dist/catalog-db/endpoints/post_charges_chargeid_attachments.json +40 -0
  252. package/dist/catalog-db/endpoints/post_corporate_gl_accounts_bulk.json +71 -0
  253. package/dist/catalog-db/endpoints/post_gl_accounts_bulk.json +77 -0
  254. package/dist/catalog-db/endpoints/post_inspections.json +70 -0
  255. package/dist/catalog-db/endpoints/post_inspections_bulk.json +76 -0
  256. package/dist/catalog-db/endpoints/post_inspections_inspectionid_attachments.json +41 -0
  257. package/dist/catalog-db/endpoints/post_inventories.json +105 -0
  258. package/dist/catalog-db/endpoints/post_inventories_bulk.json +119 -0
  259. package/dist/catalog-db/endpoints/post_inventory_locations.json +44 -0
  260. package/dist/catalog-db/endpoints/post_inventory_locations_bulk.json +58 -0
  261. package/dist/catalog-db/endpoints/post_journal_entries.json +101 -0
  262. package/dist/catalog-db/endpoints/post_journal_entries_bulk.json +115 -0
  263. package/dist/catalog-db/endpoints/post_journal_entries_journalentryid_attachments.json +41 -0
  264. package/dist/catalog-db/endpoints/post_late_fee_policies_bulk.json +115 -0
  265. package/dist/catalog-db/endpoints/post_leads.json +204 -0
  266. package/dist/catalog-db/endpoints/post_leads_guestcardid_notes.json +40 -0
  267. package/dist/catalog-db/endpoints/post_occupancies_occupancyid_attachments.json +41 -0
  268. package/dist/catalog-db/endpoints/post_owner_groups.json +96 -0
  269. package/dist/catalog-db/endpoints/post_owners.json +330 -0
  270. package/dist/catalog-db/endpoints/post_owners_bulk.json +203 -0
  271. package/dist/catalog-db/endpoints/post_owners_ownerid_attachments.json +40 -0
  272. package/dist/catalog-db/endpoints/post_owners_ownerid_notes.json +40 -0
  273. package/dist/catalog-db/endpoints/post_properties_bulk.json +245 -0
  274. package/dist/catalog-db/endpoints/post_properties_propertyid_attachments.json +40 -0
  275. package/dist/catalog-db/endpoints/post_properties_propertyid_marketing_photos.json +52 -0
  276. package/dist/catalog-db/endpoints/post_properties_propertyid_notes.json +40 -0
  277. package/dist/catalog-db/endpoints/post_properties_propertyid_photos.json +40 -0
  278. package/dist/catalog-db/endpoints/post_recurring_charges.json +81 -0
  279. package/dist/catalog-db/endpoints/post_recurring_charges_bulk.json +95 -0
  280. package/dist/catalog-db/endpoints/post_rental_applications_rentalapplicationid_attachments.json +41 -0
  281. package/dist/catalog-db/endpoints/post_rental_applications_rentalapplicationid_notes.json +40 -0
  282. package/dist/catalog-db/endpoints/post_showings.json +62 -0
  283. package/dist/catalog-db/endpoints/post_tenants_bulk.json +161 -0
  284. package/dist/catalog-db/endpoints/post_tenants_tenantid_notes.json +40 -0
  285. package/dist/catalog-db/endpoints/post_unit_types_bulk.json +138 -0
  286. package/dist/catalog-db/endpoints/post_units_bulk.json +236 -0
  287. package/dist/catalog-db/endpoints/post_units_unitid_attachments.json +40 -0
  288. package/dist/catalog-db/endpoints/post_units_unitid_notes.json +40 -0
  289. package/dist/catalog-db/endpoints/post_units_unitid_photos.json +40 -0
  290. package/dist/catalog-db/endpoints/post_vendors.json +279 -0
  291. package/dist/catalog-db/endpoints/post_vendors_bulk.json +279 -0
  292. package/dist/catalog-db/endpoints/post_vendors_vendorid_notes.json +40 -0
  293. package/dist/catalog-db/endpoints/post_work_orders.json +251 -0
  294. package/dist/catalog-db/endpoints/post_work_orders_workorderid_attachments.json +41 -0
  295. package/dist/catalog-db/endpoints/post_work_orders_workorderid_notes.json +40 -0
  296. package/dist/catalog-db/endpoints/put_leases_renewal_pricings_bulk.json +58 -0
  297. package/dist/catalog-db/endpoints/put_units_pricing_matrices_bulk.json +58 -0
  298. package/dist/catalog-db/endpoints/put_units_pricing_matrices_bulk_async.json +46 -0
  299. package/dist/catalog-db/endpoints/put_units_unitid_pricing_matrices.json +66 -0
  300. package/dist/catalog-db/index.json +1894 -0
  301. package/dist/clients/appfolio-client.js +131 -0
  302. package/dist/clients/appfolio-db-client.js +186 -0
  303. package/dist/helpers/register-db-tools.js +27 -0
  304. package/dist/helpers/register-report-tools.js +27 -0
  305. package/dist/index.js +10 -0
  306. package/dist/server/appfolio-mcp-server.js +18 -0
  307. package/dist/tools/call-endpoint.js +109 -0
  308. package/dist/tools/describe-endpoint.js +63 -0
  309. package/dist/tools/describe-report.js +55 -0
  310. package/dist/tools/list-endpoints.js +90 -0
  311. package/dist/tools/list-reports.js +58 -0
  312. package/dist/tools/run-report.js +102 -0
  313. package/package.json +42 -0
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_rental_applications_rentalapplicationid_notes",
3
+ "resource": "rental_applications",
4
+ "name": "Create Rental Application Note",
5
+ "method": "POST",
6
+ "path": "/rental_applications/{RentalApplicationId}/notes",
7
+ "description": "Add a note to a rental application",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "RentalApplicationId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The rental application to which the note will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Note object",
22
+ "attributes": [
23
+ {
24
+ "name": "Body",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "A brief informative message about the rental applications note. A rental applications note cannot exceed 65,535 characters."
28
+ }
29
+ ]
30
+ },
31
+ "responseFields": [
32
+ {
33
+ "name": "Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the rental applications note"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"Body\": \"This rental application has been submitted on 11/11/2023\"\n}"
40
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "operationId": "post_showings",
3
+ "resource": "showings",
4
+ "name": "Create Showings",
5
+ "method": "POST",
6
+ "path": "/showings",
7
+ "description": "Create a showing",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Showing object",
14
+ "attributes": [
15
+ {
16
+ "name": "LeadId",
17
+ "type": "string <uuid>",
18
+ "required": true,
19
+ "description": "Unique identifier of the lead associated with the showing. Reference the Leads endpoint for any necessary associations."
20
+ },
21
+ {
22
+ "name": "UnitId",
23
+ "type": "string <uuid>",
24
+ "required": true,
25
+ "description": "Unique identifier of the unit that the interested party will be shown. Reference the Units endpoint for any necessary associations."
26
+ },
27
+ {
28
+ "name": "StartAt",
29
+ "type": "string <date-time>",
30
+ "required": true,
31
+ "description": "The start time of the showing. The value must adhere to the ISO 8601 format YYYY-MM-DDThh:mm:ssZ and the default time zone is Coordinated Universal Time (UTC)."
32
+ },
33
+ {
34
+ "name": "EndAt",
35
+ "type": "string <date-time>",
36
+ "required": true,
37
+ "description": "The end time of the showing. The value must adhere to the ISO 8601 format YYYY-MM-DDThh:mm:ssZ and the default time zone is Coordinated Universal Time (UTC)."
38
+ },
39
+ {
40
+ "name": "AssignedUserId",
41
+ "type": "string <uuid>",
42
+ "required": false,
43
+ "description": "The AppFolio Property Manager user responsible for the showing. Reference the Users endpoint for any necessary associations."
44
+ },
45
+ {
46
+ "name": "Notes",
47
+ "type": "string",
48
+ "required": false,
49
+ "description": "A brief informative message about the showing"
50
+ }
51
+ ]
52
+ },
53
+ "responseFields": [
54
+ {
55
+ "name": "Id",
56
+ "type": "string <uuid>",
57
+ "required": false,
58
+ "description": "Unique identifier of the created showing"
59
+ }
60
+ ],
61
+ "requestSample": "{\n \"AssignedUserId\": \"80c5cb28-547f-11ec-bfa5-02975b268737\",\n \"EndAt\": \"2022-02-08T18:45:00Z\",\n \"LeadId\": \"71c5cb28-547f-11ec-bfa5-02975b268737\",\n \"Notes\": \"Prospect was very excited about the unit.\",\n \"StartAt\": \"2022-02-08T18:30:00Z\",\n \"UnitId\": \"91c5cb28-547f-11ec-bfa5-02975b268737\"\n}"
62
+ }
@@ -0,0 +1,161 @@
1
+ {
2
+ "operationId": "post_tenants_bulk",
3
+ "resource": "tenants",
4
+ "name": "Bulk Create Tenants",
5
+ "method": "POST",
6
+ "path": "/tenants/bulk",
7
+ "description": "Create Tenants in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Tenant objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of tenant objects to create",
20
+ "attributes": [
21
+ {
22
+ "name": "ReferenceId",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "Transient unique ID assigned by the developer. Used to reference individual tenant in the bulk-creation of tenants."
26
+ },
27
+ {
28
+ "name": "MoveInOn",
29
+ "type": "string <date>",
30
+ "required": true,
31
+ "description": "The date the tenant physically started or will start occupancy. Dictates whether the \"future\" or \"current\" option is displayed in the status field."
32
+ },
33
+ {
34
+ "name": "UnitId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "The unit the tenant occupies."
38
+ },
39
+ {
40
+ "name": "FirstName",
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "The tenant's first name. Required if IsCompany is false or not provided."
44
+ },
45
+ {
46
+ "name": "LastName",
47
+ "type": "string",
48
+ "required": false,
49
+ "description": "The tenant's last name. Required if IsCompany is false or not provided."
50
+ },
51
+ {
52
+ "name": "MiddleName",
53
+ "type": "string",
54
+ "required": false,
55
+ "description": "The tenant's middle name"
56
+ },
57
+ {
58
+ "name": "CompanyName",
59
+ "type": "string",
60
+ "required": false,
61
+ "description": "The display name of the tenant's company. Required if IsCompany is true."
62
+ },
63
+ {
64
+ "name": "IsCompany",
65
+ "type": "boolean",
66
+ "required": false,
67
+ "description": "Whether the tenant is a company (controls if the company name should be used as the name of the tenant). When true, CompanyName is required. When false, FirstName and LastName are required."
68
+ },
69
+ {
70
+ "name": "MoveOutOn",
71
+ "type": "string <date>",
72
+ "required": false,
73
+ "description": "The date the tenant physically ended or will end occupancy. Dictates whether the \"notice\" or \"past\" option is displayed in the status field."
74
+ },
75
+ {
76
+ "name": "PrimaryTenant",
77
+ "type": "boolean",
78
+ "required": false,
79
+ "description": "Indicates whether or not the tenant is the primary leaseholder for the occupancy. At least one PrimaryTenant is required per UnitId. Note: PrimaryTenant: true automatically sets the TenantType to Financially Responsible."
80
+ },
81
+ {
82
+ "name": "TenantType",
83
+ "type": "string",
84
+ "required": false,
85
+ "description": "The type of tenant. At least one tenant with TenantType Financially Responsible is required per UnitId.",
86
+ "enum": ["Financially Responsible", "Other Occupant", "Co-signer"]
87
+ },
88
+ {
89
+ "name": "Addresses",
90
+ "type": "array",
91
+ "required": false,
92
+ "description": "The tenant's address(es)"
93
+ },
94
+ {
95
+ "name": "PhoneNumbers",
96
+ "type": "array",
97
+ "required": false,
98
+ "description": "The tenant's phone number(s)"
99
+ },
100
+ {
101
+ "name": "Pets",
102
+ "type": "array",
103
+ "required": false,
104
+ "description": "Contains details about the tenant's pet(s)"
105
+ },
106
+ {
107
+ "name": "Vehicles",
108
+ "type": "array",
109
+ "required": false,
110
+ "description": "Contains details about the tenant's vehicle(s)"
111
+ },
112
+ {
113
+ "name": "Emails",
114
+ "type": "array",
115
+ "required": false,
116
+ "description": "The tenant's email address(es)"
117
+ },
118
+ {
119
+ "name": "Tags",
120
+ "type": "Array of strings",
121
+ "required": false,
122
+ "description": "User-defined tag(s) that categorize the tenant"
123
+ },
124
+ {
125
+ "name": "NextRentIncrease",
126
+ "type": "string <date>",
127
+ "required": false,
128
+ "description": "The date of the tenant is eligible for a rent increase"
129
+ },
130
+ {
131
+ "name": "LeaseStartDate",
132
+ "type": "string <date>",
133
+ "required": false,
134
+ "description": "The day the lease agreement starts"
135
+ },
136
+ {
137
+ "name": "LeaseEndDate",
138
+ "type": "string <date>",
139
+ "required": false,
140
+ "description": "The last day of the lease agreement"
141
+ },
142
+ {
143
+ "name": "LastLeaseRenewal",
144
+ "type": "string <date>",
145
+ "required": false,
146
+ "description": "The date the last lease renewal agreement was started"
147
+ }
148
+ ]
149
+ }
150
+ ]
151
+ },
152
+ "responseFields": [
153
+ {
154
+ "name": "JobId",
155
+ "type": "string <uuid>",
156
+ "required": false,
157
+ "description": "Unique identifier of the bulk create job"
158
+ }
159
+ ],
160
+ "requestSample": "{\n \"data\": [\n {},\n {},\n {},\n {},\n {}\n ]\n}"
161
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_tenants_tenantid_notes",
3
+ "resource": "tenants",
4
+ "name": "Create Tenant Note",
5
+ "method": "POST",
6
+ "path": "/tenants/{TenantId}/notes",
7
+ "description": "Add a note to a tenant",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "TenantId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The tenant to which the note will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Note object",
22
+ "attributes": [
23
+ {
24
+ "name": "Body",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "A brief informative message about the tenant note. A tenant note cannot exceed 65,535 characters."
28
+ }
29
+ ]
30
+ },
31
+ "responseFields": [
32
+ {
33
+ "name": "Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the tenant note"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"Body\": \"This tenant have scheduled a cleaning service on 11/11/2023\"\n}"
40
+ }
@@ -0,0 +1,138 @@
1
+ {
2
+ "operationId": "post_unit_types_bulk",
3
+ "resource": "unit_types",
4
+ "name": "Bulk Create Unit Types",
5
+ "method": "POST",
6
+ "path": "/unit_types/bulk",
7
+ "description": "Create unit types in bulk.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Unit Type objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of unit type objects to create in bulk.",
20
+ "attributes": [
21
+ {
22
+ "name": "Name",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The name of the unit type. This value must be unique per PropertyId, meaning different unit types can use the same Name only when their PropertyIds are different."
26
+ },
27
+ {
28
+ "name": "ReferenceId",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "Transient unique ID assigned by the developer. Used to reference individual unit types in the bulk-creation of unit types."
32
+ },
33
+ {
34
+ "name": "PropertyId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "Unique identifier of the property associated with the unit type."
38
+ },
39
+ {
40
+ "name": "ApplicationFee",
41
+ "type": "number",
42
+ "required": false,
43
+ "description": "The fee charged when applying for a unit of this type. If the property associated with the unit type is payments enabled (if the property's bank account is payment enabled), then the ApplicationFee must be $0.00 or between $6.00 and $200.00."
44
+ },
45
+ {
46
+ "name": "Amenities",
47
+ "type": "Array of strings",
48
+ "required": false,
49
+ "description": "The amenities associated with the unit type. Amenity names are case-sensitive."
50
+ },
51
+ {
52
+ "name": "Bathrooms",
53
+ "type": "number",
54
+ "required": false,
55
+ "description": "The number of bathrooms for this unit type."
56
+ },
57
+ {
58
+ "name": "Bedrooms",
59
+ "type": "integer",
60
+ "required": false,
61
+ "description": "The number of bedrooms for this unit type."
62
+ },
63
+ {
64
+ "name": "CatsAllowed",
65
+ "type": "string",
66
+ "required": false,
67
+ "description": "The unit type's cat policy. Valid values include \"Yes\", \"No\" or null. A null value indicates that the unit type may not have specified a policy for cats.",
68
+ "enum": ["Yes", "No"]
69
+ },
70
+ {
71
+ "name": "Deposit",
72
+ "type": "number",
73
+ "required": false,
74
+ "description": "The security deposit amount."
75
+ },
76
+ {
77
+ "name": "DogsAllowed",
78
+ "type": "string",
79
+ "required": false,
80
+ "description": "The unit type's dog policy.",
81
+ "enum": ["Large & Small", "Small Only", "No"]
82
+ },
83
+ {
84
+ "name": "FutureMarketRent",
85
+ "type": "number",
86
+ "required": false,
87
+ "description": "The projected future market rent for the unit type. This attribute must be provided together with FutureMarketRentEffectiveOn date. Both attributes must either be present or absent together."
88
+ },
89
+ {
90
+ "name": "FutureMarketRentEffectiveOn",
91
+ "type": "string <date-time>",
92
+ "required": false,
93
+ "description": "The date when the FutureMarketRent will take effect. This attribute must be provided together with FutureMarketRent. Both attributes must either be present or absent together."
94
+ },
95
+ {
96
+ "name": "MarketRent",
97
+ "type": "number <decimal>",
98
+ "required": false,
99
+ "description": "The current market rent for the unit type."
100
+ },
101
+ {
102
+ "name": "MarketingTitle",
103
+ "type": "string",
104
+ "required": false,
105
+ "description": "The title of the listing for syndication."
106
+ },
107
+ {
108
+ "name": "MarketingDescription",
109
+ "type": "string",
110
+ "required": false,
111
+ "description": "A description of the listing for syndication."
112
+ },
113
+ {
114
+ "name": "SquareFeet",
115
+ "type": "number",
116
+ "required": false,
117
+ "description": "The size of the unit type in square feet."
118
+ },
119
+ {
120
+ "name": "YouTubeURL",
121
+ "type": "string <uri>",
122
+ "required": false,
123
+ "description": "The URL of the YouTube video for the listing(s)."
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ },
129
+ "responseFields": [
130
+ {
131
+ "name": "JobId",
132
+ "type": "string <uuid>",
133
+ "required": false,
134
+ "description": "Unique identifier for the bulk creation job."
135
+ }
136
+ ],
137
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
138
+ }
@@ -0,0 +1,236 @@
1
+ {
2
+ "operationId": "post_units_bulk",
3
+ "resource": "units",
4
+ "name": "Bulk Create Units",
5
+ "method": "POST",
6
+ "path": "/units/bulk",
7
+ "description": "Create units in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Unit objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of unit objects to create",
20
+ "attributes": [
21
+ {
22
+ "name": "Name",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The unit name as displayed in the AppFolio Property Manager"
26
+ },
27
+ {
28
+ "name": "ReferenceId",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "Transient unique ID assigned by the developer. Used to reference individual units in the bulk-creation of units."
32
+ },
33
+ {
34
+ "name": "PropertyId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "Unique identifier of the property associated with the unit"
38
+ },
39
+ {
40
+ "name": "Address1",
41
+ "type": "string",
42
+ "required": true,
43
+ "description": "The primary street address of the unit"
44
+ },
45
+ {
46
+ "name": "City",
47
+ "type": "string",
48
+ "required": true,
49
+ "description": "The city where the unit is located"
50
+ },
51
+ {
52
+ "name": "State",
53
+ "type": "string",
54
+ "required": true,
55
+ "description": "The state where the unit is located"
56
+ },
57
+ {
58
+ "name": "Zip",
59
+ "type": "string",
60
+ "required": true,
61
+ "description": "The zip code where the unit is located"
62
+ },
63
+ {
64
+ "name": "UnitTypeId",
65
+ "type": "string <uuid>",
66
+ "required": false,
67
+ "description": "When present, the unit type can dictate fields like bedrooms, bathrooms, sq. feet, etc. Attempting to create a Unit with values that conflict with the Unit Type will cause an error."
68
+ },
69
+ {
70
+ "name": "Bathrooms",
71
+ "type": "number",
72
+ "required": false,
73
+ "description": "The number of desired bathrooms"
74
+ },
75
+ {
76
+ "name": "Bedrooms",
77
+ "type": "integer",
78
+ "required": false,
79
+ "description": "The number of desired bedrooms"
80
+ },
81
+ {
82
+ "name": "SquareFeet",
83
+ "type": "number",
84
+ "required": false,
85
+ "description": "The size of the unit in square feet"
86
+ },
87
+ {
88
+ "name": "Description",
89
+ "type": "string",
90
+ "required": false,
91
+ "description": "A brief, informative description of the unit"
92
+ },
93
+ {
94
+ "name": "ListedMarketRent",
95
+ "type": "string <decimal>",
96
+ "required": false,
97
+ "description": "The rent per month as listed on the market",
98
+ "deprecated": true
99
+ },
100
+ {
101
+ "name": "ListedRent",
102
+ "type": "string <decimal>",
103
+ "required": false,
104
+ "description": "The rent per month as listed on the market. This value reflects either the market rent or the advertised rent, depending on whether \"Use Market Rent On Ads\" is enabled in AppFolio Property Manager.",
105
+ "deprecated": true
106
+ },
107
+ {
108
+ "name": "MarketRent",
109
+ "type": "string <decimal>",
110
+ "required": false,
111
+ "description": "The unit's base market rent, representing its estimated fair market value based on current market conditions and comparable properties. It does not include advertised adjustments or amenity fees."
112
+ },
113
+ {
114
+ "name": "AdvertiseUsingListedMarketRent",
115
+ "type": "boolean",
116
+ "required": false,
117
+ "description": "Indicates whether or not to use the listed market rent as the advertised rent. Defaults to true if no value is provided or null is passed in."
118
+ },
119
+ {
120
+ "name": "CatsAllowed",
121
+ "type": "string",
122
+ "required": false,
123
+ "description": "The unit's cat policy. Enum: \"Yes\" \"No\" or null",
124
+ "enum": ["Yes", "No"]
125
+ },
126
+ {
127
+ "name": "DogsAllowed",
128
+ "type": "string",
129
+ "required": false,
130
+ "description": "The unit's dog policy. Enum: \"Large & Small\" \"Small Only\" \"No\" or null",
131
+ "enum": ["Large & Small", "Small Only", "No"]
132
+ },
133
+ {
134
+ "name": "Address2",
135
+ "type": "string",
136
+ "required": false,
137
+ "description": "Additional street address information pertaining to the unit"
138
+ },
139
+ {
140
+ "name": "MaintenanceNotes",
141
+ "type": "string",
142
+ "required": false,
143
+ "description": "A brief informative message about the unit's maintenance"
144
+ },
145
+ {
146
+ "name": "MarketingTitle",
147
+ "type": "string",
148
+ "required": false,
149
+ "description": "The title of the listing for syndication"
150
+ },
151
+ {
152
+ "name": "MarketingDescription",
153
+ "type": "string",
154
+ "required": false,
155
+ "description": "A description of the listing for syndication"
156
+ },
157
+ {
158
+ "name": "NonRevenue",
159
+ "type": "boolean",
160
+ "required": false,
161
+ "description": "Indicates whether or not the unit is rentable and is a model unit, office or other non revenue unit"
162
+ },
163
+ {
164
+ "name": "Deposit",
165
+ "type": "number",
166
+ "required": false,
167
+ "description": "The security deposit amount"
168
+ },
169
+ {
170
+ "name": "ApplicationFee",
171
+ "type": "number",
172
+ "required": false,
173
+ "description": "The application fee amount"
174
+ },
175
+ {
176
+ "name": "RentReady",
177
+ "type": "boolean",
178
+ "required": false,
179
+ "description": "Indicates whether or not the unit is ready to be occupied by a tenant"
180
+ },
181
+ {
182
+ "name": "Amenities",
183
+ "type": "Array of strings",
184
+ "required": false,
185
+ "description": "The amenities associated with the unit. Amenity names are case-sensitive. Cannot be specified when a Unit Type that defines amenities is assigned."
186
+ },
187
+ {
188
+ "name": "Tags",
189
+ "type": "Array of strings",
190
+ "required": false,
191
+ "description": "User-defined tag(s) that categorize the unit"
192
+ },
193
+ {
194
+ "name": "LastInspectedDate",
195
+ "type": "string <date>",
196
+ "required": false,
197
+ "description": "The date the unit was last inspected"
198
+ },
199
+ {
200
+ "name": "YouTubeURL",
201
+ "type": "string <uri>",
202
+ "required": false,
203
+ "description": "The URL of the YouTube video for the listing(s)"
204
+ },
205
+ {
206
+ "name": "AvailableOn",
207
+ "type": "string <date>",
208
+ "required": false,
209
+ "description": "The date upon which the unit can be leased. The date must be within three years of today's date"
210
+ }
211
+ ]
212
+ }
213
+ ]
214
+ },
215
+ "responseFields": [
216
+ {
217
+ "name": "data",
218
+ "type": "array",
219
+ "required": false,
220
+ "description": "Array of created unit status objects"
221
+ },
222
+ {
223
+ "name": "data[].UnitId",
224
+ "type": "string",
225
+ "required": false,
226
+ "description": "Unique identifier of the created unit"
227
+ },
228
+ {
229
+ "name": "data[].ReferenceId",
230
+ "type": "string",
231
+ "required": false,
232
+ "description": "Transient unique ID assigned by the developer. Used to reference individual units in the bulk-creation of units."
233
+ }
234
+ ],
235
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
236
+ }