@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,46 @@
1
+ {
2
+ "operationId": "patch_rental_applications_rentalapplicationid_notes_id",
3
+ "resource": "rental_applications",
4
+ "name": "Update Rental Application Note",
5
+ "method": "PATCH",
6
+ "path": "/rental_applications/{RentalApplicationId}/notes/{Id}",
7
+ "description": "Update 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
+ "name": "Id",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the note to update"
23
+ }
24
+ ],
25
+ "requestBody": {
26
+ "required": true,
27
+ "description": "Note object",
28
+ "attributes": [
29
+ {
30
+ "name": "Body",
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "A brief informative message about the rental application note. A rental application note cannot exceed 65,535 characters."
34
+ }
35
+ ]
36
+ },
37
+ "responseFields": [
38
+ {
39
+ "name": "Id",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the updated rental application note"
43
+ }
44
+ ],
45
+ "requestSample": "{\n \"Body\": \"This rental application has been submitted on 11/11/2023\"\n}"
46
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "operationId": "patch_showings_showingid",
3
+ "resource": "showings",
4
+ "name": "Update Showing",
5
+ "method": "PATCH",
6
+ "path": "/showings/{showingId}",
7
+ "description": "Update a showing",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "showingId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the showing to update"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Showing update object",
22
+ "attributes": [
23
+ {
24
+ "name": "AssignedUserId",
25
+ "type": "string <uuid>",
26
+ "required": false,
27
+ "description": "AppFolio Property Manager user assigned to the showing. A null value passed to AssignedUserId will unassign the user previously assigned to the showing. Omitting AssignedUserId from the request body will not update the assigned user. Reference the Users endpoint for any necessary associations."
28
+ },
29
+ {
30
+ "name": "StartAt",
31
+ "type": "string <date-time>",
32
+ "required": false,
33
+ "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)."
34
+ },
35
+ {
36
+ "name": "EndAt",
37
+ "type": "string <date-time>",
38
+ "required": false,
39
+ "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)."
40
+ },
41
+ {
42
+ "name": "Notes",
43
+ "type": "string",
44
+ "required": false,
45
+ "description": "A brief informative message about the showing"
46
+ },
47
+ {
48
+ "name": "Status",
49
+ "type": "string",
50
+ "required": false,
51
+ "description": "The status of the showing",
52
+ "enum": [
53
+ "scheduled",
54
+ "canceled",
55
+ "no-show"
56
+ ]
57
+ }
58
+ ]
59
+ },
60
+ "responseFields": [
61
+ {
62
+ "name": "Id",
63
+ "type": "string <uuid>",
64
+ "required": false,
65
+ "description": "Unique identifier of the updated showing"
66
+ }
67
+ ],
68
+ "requestSample": "{\n \"AssignedUserId\": \"f6b42b23-85e1-4a8a-a581-ceab1055e310\",\n \"EndAt\": \"2022-02-08T18:45:00Z\",\n \"Notes\": \"Prospect wants to see the unit.\",\n \"StartAt\": \"2022-02-08T18:30:00Z\",\n \"Status\": \"canceled\"\n}"
69
+ }
@@ -0,0 +1,131 @@
1
+ {
2
+ "operationId": "patch_tenants_bulk",
3
+ "resource": "tenants",
4
+ "name": "Bulk Update Tenants",
5
+ "method": "PATCH",
6
+ "path": "/tenants/bulk",
7
+ "description": "Update 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 update",
20
+ "attributes": [
21
+ {
22
+ "name": "Id",
23
+ "type": "string <uuid>",
24
+ "required": true,
25
+ "description": "Unique identifier for the tenant"
26
+ },
27
+ {
28
+ "name": "FirstName",
29
+ "type": "string",
30
+ "required": false,
31
+ "description": "The tenant's first name"
32
+ },
33
+ {
34
+ "name": "LastName",
35
+ "type": "string",
36
+ "required": false,
37
+ "description": "The tenant's last name"
38
+ },
39
+ {
40
+ "name": "MiddleName",
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "The tenant's middle name"
44
+ },
45
+ {
46
+ "name": "CompanyName",
47
+ "type": "string",
48
+ "required": false,
49
+ "description": "The display name of the tenant's company. Cannot be blank unless IsCompany is false."
50
+ },
51
+ {
52
+ "name": "IsCompany",
53
+ "type": "boolean",
54
+ "required": false,
55
+ "description": "Whether the tenant is a company (controls if the company name should be used as the name of the tenant). When true, CompanyName must be set. When false, FirstName and LastName must both be set."
56
+ },
57
+ {
58
+ "name": "MoveInOn",
59
+ "type": "string <date>",
60
+ "required": false,
61
+ "description": "The date the tenant physically started or will start occupancy. Dictates whether the \"future\" or \"current\" option is displayed in the status field."
62
+ },
63
+ {
64
+ "name": "MoveOutOn",
65
+ "type": "string <date>",
66
+ "required": false,
67
+ "description": "The date the tenant physically ended or will end occupancy. Dictates whether the \"notice\" or \"past\" option is displayed in the status field."
68
+ },
69
+ {
70
+ "name": "PrimaryTenant",
71
+ "type": "boolean",
72
+ "required": false,
73
+ "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."
74
+ },
75
+ {
76
+ "name": "TenantType",
77
+ "type": "string",
78
+ "required": false,
79
+ "description": "The type of tenant. At least one tenant with TenantType Financially Responsible is required per UnitId.",
80
+ "enum": ["Financially Responsible", "Other Occupant", "Co-signer"]
81
+ },
82
+ {
83
+ "name": "Addresses",
84
+ "type": "array",
85
+ "required": false,
86
+ "description": "The tenant's address(es). Passing any number of addresses will replace all existing addresses for the tenant. Passing an empty array [] will remove all existing addresses for the tenant."
87
+ },
88
+ {
89
+ "name": "PhoneNumbers",
90
+ "type": "array",
91
+ "required": false,
92
+ "description": "The tenant's phone number(s). Passing any number of phone numbers will replace all existing phone numbers for the tenant. Passing an empty array [] will remove all existing phone numbers for the tenant."
93
+ },
94
+ {
95
+ "name": "Pets",
96
+ "type": "array",
97
+ "required": false,
98
+ "description": "Contains details about the tenant's pet(s). This will add new pets to the tenant and not remove any existing pets."
99
+ },
100
+ {
101
+ "name": "Vehicles",
102
+ "type": "array",
103
+ "required": false,
104
+ "description": "Contains details about the tenant's vehicle(s). This will add new vehicles to the tenant and not remove any existing vehicles."
105
+ },
106
+ {
107
+ "name": "Emails",
108
+ "type": "array",
109
+ "required": false,
110
+ "description": "The tenant's email address(es). Passing any number of emails will replace all existing email addresses for the tenant. Passing an empty array [] will remove all existing email addresses for the tenant."
111
+ },
112
+ {
113
+ "name": "Tags",
114
+ "type": "Array of strings",
115
+ "required": false,
116
+ "description": "User-defined tag(s) that categorize the tenant. Providing an array of valid strings will overwrite all existing tags. Passing in an empty array [] or an array of empty strings [\"\"] or [\"\", \"\"] will clear all existing tags. Passing in an array of a valid string and an empty string [\"tag_name\", \"\"] will result in Tags: [\"tag_name\"]. Passing in null will result in no change."
117
+ }
118
+ ]
119
+ }
120
+ ]
121
+ },
122
+ "responseFields": [
123
+ {
124
+ "name": "JobId",
125
+ "type": "string <uuid>",
126
+ "required": false,
127
+ "description": "Unique identifier of the bulk update job"
128
+ }
129
+ ],
130
+ "requestSample": "{\n \"data\": [\n {},\n {}\n ]\n}"
131
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "operationId": "patch_tenants_tenantid",
3
+ "resource": "tenants",
4
+ "name": "Update Tenant",
5
+ "method": "PATCH",
6
+ "path": "/tenants/{tenantId}",
7
+ "description": "Update 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": "Unique identifier of the tenant to update"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Tenant object",
22
+ "attributes": [
23
+ {
24
+ "name": "OccupancyCustomFields",
25
+ "type": "object",
26
+ "required": false,
27
+ "description": "The custom fields for the associated entity",
28
+ "attributes": [
29
+ {
30
+ "name": "CustomFieldId",
31
+ "type": "object",
32
+ "required": false,
33
+ "description": "The value of the CustomField to update. Ensure the value set for CustomFieldId matches the type that was set for the CustomField at creation. For example, if boolean is the type set for the CustomField associated with this CustomFieldId, the value set here must be either true or false. Note: To clear the value of a CustomField, set CustomFieldId to null in the PATCH request. For array-type custom fields (select_multiple), use an empty array [] or empty string \"\" instead of null, as null will be ignored."
34
+ }
35
+ ]
36
+ }
37
+ ]
38
+ },
39
+ "responseFields": [
40
+ {
41
+ "name": "Id",
42
+ "type": "string <uuid>",
43
+ "required": false,
44
+ "description": "Unique identifier of the updated tenant"
45
+ }
46
+ ],
47
+ "requestSample": "{\n \"OccupancyCustomFields\": {\n \"a965e7d8-a17d-11ec-b909-0242ac120002\": \"a new value\",\n \"454d8635-521e-4864-99fb-0bd6200d3a0f\": true,\n \"c80d3dd1-9eba-45aa-803c-666280b8ff24\": 87.4,\n \"3277c366-1783-42a9-b925-0bca2afbe391\": \"0e9a7b18-1778-4a03-bc1c-f913aeaef6bc\"\n }\n}"
48
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "operationId": "patch_tenants_tenantid_notes_id",
3
+ "resource": "tenants",
4
+ "name": "Update Tenant Note",
5
+ "method": "PATCH",
6
+ "path": "/tenants/{TenantId}/notes/{Id}",
7
+ "description": "Update 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
+ "name": "Id",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the note to update"
23
+ }
24
+ ],
25
+ "requestBody": {
26
+ "required": true,
27
+ "description": "Note object",
28
+ "attributes": [
29
+ {
30
+ "name": "Body",
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "A brief informative message about the tenant note. A tenant note cannot exceed 65,535 characters."
34
+ }
35
+ ]
36
+ },
37
+ "responseFields": [
38
+ {
39
+ "name": "Id",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the updated tenant note"
43
+ }
44
+ ],
45
+ "requestSample": "{\n \"Body\": \"This tenant have scheduled a cleaning service on 11/30/2022 - Updated\"\n}"
46
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "operationId": "patch_unit_types_unittypeid",
3
+ "resource": "unit_types",
4
+ "name": "Update Unit Type",
5
+ "method": "PATCH",
6
+ "path": "/unit_types/{unitTypeId}",
7
+ "description": "Update a unit Type.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "unitTypeId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the unit type to update."
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Attributes to update on the unit type.",
22
+ "attributes": [
23
+ {
24
+ "name": "ApplicationFee",
25
+ "type": "number",
26
+ "required": false,
27
+ "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 and $200."
28
+ },
29
+ {
30
+ "name": "Amenities",
31
+ "type": "Array of strings",
32
+ "required": false,
33
+ "description": "The amenities associated with the unit type. Amenity names are case-sensitive. Providing an array of valid strings will overwrite all existing amenities. Passing in an empty array [] or an array of empty strings [\"\"] or [\"\", \"\"] will clear all existing amenities. Passing in an array of a valid string and an empty string [\"amenity_name\", \"\"] will result in Amenities: [\"amenity_name\"]. Passing in null will result in no change."
34
+ },
35
+ {
36
+ "name": "Bathrooms",
37
+ "type": "number",
38
+ "required": false,
39
+ "description": "The number of bathrooms for this unit type."
40
+ },
41
+ {
42
+ "name": "Bedrooms",
43
+ "type": "integer",
44
+ "required": false,
45
+ "description": "The number of bedrooms for this unit type."
46
+ },
47
+ {
48
+ "name": "CatsAllowed",
49
+ "type": "string",
50
+ "required": false,
51
+ "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.",
52
+ "enum": ["Yes", "No"]
53
+ },
54
+ {
55
+ "name": "Deposit",
56
+ "type": "number",
57
+ "required": false,
58
+ "description": "The security deposit amount."
59
+ },
60
+ {
61
+ "name": "DogsAllowed",
62
+ "type": "string",
63
+ "required": false,
64
+ "description": "The unit type's dog policy.",
65
+ "enum": ["Large & Small", "Small Only", "No"]
66
+ },
67
+ {
68
+ "name": "FutureMarketRent",
69
+ "type": "number",
70
+ "required": false,
71
+ "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."
72
+ },
73
+ {
74
+ "name": "FutureMarketRentEffectiveOn",
75
+ "type": "string <date-time>",
76
+ "required": false,
77
+ "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."
78
+ },
79
+ {
80
+ "name": "MarketRent",
81
+ "type": "number <decimal>",
82
+ "required": false,
83
+ "description": "The current market rent for the unit type."
84
+ },
85
+ {
86
+ "name": "MarketingTitle",
87
+ "type": "string",
88
+ "required": false,
89
+ "description": "The title of the listing for syndication."
90
+ },
91
+ {
92
+ "name": "MarketingDescription",
93
+ "type": "string",
94
+ "required": false,
95
+ "description": "A description of the listing for syndication."
96
+ },
97
+ {
98
+ "name": "Name",
99
+ "type": "string",
100
+ "required": false,
101
+ "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."
102
+ },
103
+ {
104
+ "name": "SquareFeet",
105
+ "type": "number",
106
+ "required": false,
107
+ "description": "The size of the unit type in square feet."
108
+ },
109
+ {
110
+ "name": "YouTubeURL",
111
+ "type": "string <uri>",
112
+ "required": false,
113
+ "description": "The URL of the YouTube video for the listing(s)."
114
+ }
115
+ ]
116
+ },
117
+ "responseFields": [
118
+ {
119
+ "name": "Id",
120
+ "type": "string <uuid>",
121
+ "required": false,
122
+ "description": "Unique identifier of the updated unit type."
123
+ }
124
+ ],
125
+ "requestSample": "{\n \"Name\": \"Unit Type A\",\n \"Amenities\": [\n \"gym\",\n \"covered parking\"\n ],\n \"ApplicationFee\": 20.23,\n \"Bathrooms\": 2.5,\n \"Bedrooms\": 3,\n \"CatsAllowed\": \"Yes\",\n \"Deposit\": 300.34,\n \"DogsAllowed\": \"Large & Small\",\n \"MarketRent\": 1569.05,\n \"FutureMarketRent\": 699.99,\n \"FutureMarketRentEffectiveOn\": \"2022-02-08\",\n \"MarketingDescription\": \"Sample marketing description\",\n \"MarketingTitle\": \"Sample marketing title\",\n \"SquareFeet\": 2000,\n \"YouTubeURL\": \"https://www.youtube.com/watch?v=abc\"\n}"
126
+ }