@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,245 @@
1
+ {
2
+ "operationId": "post_properties_bulk",
3
+ "resource": "properties",
4
+ "name": "Bulk Create Properties",
5
+ "method": "POST",
6
+ "path": "/properties/bulk",
7
+ "description": "Create properties in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Property objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of property objects to create in bulk",
20
+ "attributes": [
21
+ {
22
+ "name": "Name",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The name of the property"
26
+ },
27
+ {
28
+ "name": "ReferenceId",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "Transient unique ID assigned by the developer. Used to reference individual properties in the bulk-creation of properties."
32
+ },
33
+ {
34
+ "name": "PropertyType",
35
+ "type": "string",
36
+ "required": true,
37
+ "description": "The type of property",
38
+ "enum": ["Commercial", "Multi-Family", "Self-Storage", "Single-Family", "Student-Housing"]
39
+ },
40
+ {
41
+ "name": "Address1",
42
+ "type": "string",
43
+ "required": true,
44
+ "description": "The primary street address of the property"
45
+ },
46
+ {
47
+ "name": "City",
48
+ "type": "string",
49
+ "required": true,
50
+ "description": "The city where the property is located"
51
+ },
52
+ {
53
+ "name": "State",
54
+ "type": "string",
55
+ "required": true,
56
+ "description": "The state where the property is located"
57
+ },
58
+ {
59
+ "name": "Zip",
60
+ "type": "string",
61
+ "required": true,
62
+ "description": "The zip code where the property is located"
63
+ },
64
+ {
65
+ "name": "OperatingCashBankAccountId",
66
+ "type": "string <uuid>",
67
+ "required": true,
68
+ "description": "Unique identifier of the operating cash bank account associated with the property"
69
+ },
70
+ {
71
+ "name": "EscrowCashBankAccountId",
72
+ "type": "string <uuid>",
73
+ "required": true,
74
+ "description": "Unique identifier of the escrow cash bank account associated with the property"
75
+ },
76
+ {
77
+ "name": "ExpensesCashBankAccountId",
78
+ "type": "string <uuid>",
79
+ "required": false,
80
+ "description": "Unique identifier of the expenses cash bank account associated with the property. Used for Dual-Operating Bank Accounts."
81
+ },
82
+ {
83
+ "name": "AdditionalCashAccounts",
84
+ "type": "array",
85
+ "required": false,
86
+ "description": "Array of additional cash GL & bank account combinations associated with the property. Cash accounts can only be assigned once per property.",
87
+ "attributes": [
88
+ {
89
+ "name": "BankAccountId",
90
+ "type": "string <uuid>",
91
+ "required": false,
92
+ "description": "Unique identifier of the additional cash bank account associated with the property"
93
+ },
94
+ {
95
+ "name": "GlAccountId",
96
+ "type": "string <uuid>",
97
+ "required": false,
98
+ "description": "Unique identifier of the additional cash GL account associated with the property"
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "name": "CurrentManagementFeePolicy",
104
+ "type": "object",
105
+ "required": false,
106
+ "description": "Contains details about the property's management fee policy"
107
+ },
108
+ {
109
+ "name": "LeaseFeePolicy",
110
+ "type": "object",
111
+ "required": false,
112
+ "description": "Contains details about the property's lease fee policy"
113
+ },
114
+ {
115
+ "name": "HomeWarrantyInfo",
116
+ "type": "object",
117
+ "required": false,
118
+ "description": "Object containing information about the property's home warranty policy"
119
+ },
120
+ {
121
+ "name": "AdminFee",
122
+ "type": "number",
123
+ "required": false,
124
+ "description": "The admin fee associated with the property"
125
+ },
126
+ {
127
+ "name": "Amenities",
128
+ "type": "Array of strings",
129
+ "required": false,
130
+ "description": "The amenities associated with the property"
131
+ },
132
+ {
133
+ "name": "CatsAllowed",
134
+ "type": "string",
135
+ "required": false,
136
+ "description": "The property's cat policy. Valid values include \"Yes\", \"No\" or null.",
137
+ "enum": ["Yes", "No"]
138
+ },
139
+ {
140
+ "name": "Class",
141
+ "type": "string",
142
+ "required": false,
143
+ "description": "Indicates the type and quality of the property based on factors such as age, location, amenities, and overall condition.",
144
+ "enum": ["A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-"]
145
+ },
146
+ {
147
+ "name": "DogsAllowed",
148
+ "type": "string",
149
+ "required": false,
150
+ "description": "The property's dog policy.",
151
+ "enum": ["Large & Small", "Small Only", "No"]
152
+ },
153
+ {
154
+ "name": "InsuranceExpiration",
155
+ "type": "string <date>",
156
+ "required": false,
157
+ "description": "The date the property's insurance expires"
158
+ },
159
+ {
160
+ "name": "MaintenanceLimit",
161
+ "type": "string <decimal>",
162
+ "required": false,
163
+ "description": "The dollar amount limit to not exceed for maintenance"
164
+ },
165
+ {
166
+ "name": "MaintenanceNotes",
167
+ "type": "string",
168
+ "required": false,
169
+ "description": "A brief informative message about the property's maintenance"
170
+ },
171
+ {
172
+ "name": "ManagementEndDate",
173
+ "type": "string <date-time>",
174
+ "required": false,
175
+ "description": "The date when the current management of the property ended"
176
+ },
177
+ {
178
+ "name": "ManagementEndReason",
179
+ "type": "string",
180
+ "required": false,
181
+ "description": "The reason for the end of the current management of the property",
182
+ "enum": ["Foreclosure", "Maintenance", "Management Company Concerns", "Management Company Terminated", "Owner Moved In", "Owner Self-Managing", "Owner Sold", "Owner Terminated Management", "Property Uninhabitable/Demolition", "Tenant Placement", "Other"]
183
+ },
184
+ {
185
+ "name": "ManagementStartDate",
186
+ "type": "string <date-time>",
187
+ "required": false,
188
+ "description": "The date when the current management of the property began"
189
+ },
190
+ {
191
+ "name": "NsfFee",
192
+ "type": "number",
193
+ "required": false,
194
+ "description": "The non-sufficient funds (NSF) fee associated with the property"
195
+ },
196
+ {
197
+ "name": "SiteManager",
198
+ "type": "object",
199
+ "required": false,
200
+ "description": "Contains the property site manager's contact information and details"
201
+ },
202
+ {
203
+ "name": "UnitEntryPreAuthorized",
204
+ "type": "boolean",
205
+ "required": false,
206
+ "description": "Indicates whether or not entry to the unit was pre-authorized"
207
+ },
208
+ {
209
+ "name": "YearBuilt",
210
+ "type": "integer",
211
+ "required": false,
212
+ "description": "The year in which the property was constructed"
213
+ },
214
+ {
215
+ "name": "Address2",
216
+ "type": "string",
217
+ "required": false,
218
+ "description": "Additional street address information pertaining to the property"
219
+ }
220
+ ]
221
+ }
222
+ ]
223
+ },
224
+ "responseFields": [
225
+ {
226
+ "name": "data",
227
+ "type": "array",
228
+ "required": false,
229
+ "description": "Array of created property status objects"
230
+ },
231
+ {
232
+ "name": "data[].PropertyId",
233
+ "type": "string",
234
+ "required": false,
235
+ "description": "Unique identifier of the created property"
236
+ },
237
+ {
238
+ "name": "data[].ReferenceId",
239
+ "type": "string",
240
+ "required": false,
241
+ "description": "Transient unique ID assigned by the developer. Used to reference individual properties in the bulk-creation of properties."
242
+ }
243
+ ],
244
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
245
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_properties_propertyid_attachments",
3
+ "resource": "properties",
4
+ "name": "Create Property Attachment",
5
+ "method": "POST",
6
+ "path": "/properties/{PropertyId}/attachments",
7
+ "description": "Upload an attachment to a property",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "PropertyId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The property to which the file will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Attachment object (multipart/form-data)",
22
+ "attributes": [
23
+ {
24
+ "name": "File",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "The file to upload, specified as Filename.file-extension"
28
+ }
29
+ ]
30
+ },
31
+ "responseFields": [
32
+ {
33
+ "name": "Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the property attachment"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
40
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "operationId": "post_properties_propertyid_marketing_photos",
3
+ "resource": "properties",
4
+ "name": "Create Property Marketing Photo",
5
+ "method": "POST",
6
+ "path": "/properties/{PropertyId}/marketing_photos",
7
+ "description": "Upload a marketing photo to a multi-family residential property. Marketing photos are not available for single-family residential properties.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "PropertyId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The property to which the marketing photo will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Marketing photo object",
22
+ "attributes": [
23
+ {
24
+ "name": "File",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "Filename.file-extension"
28
+ },
29
+ {
30
+ "name": "Position",
31
+ "type": "integer",
32
+ "required": false,
33
+ "description": "The position of the photo in the property marketing photo gallery. The position must be a non-negative integer. If multiple photos are associated with a property, the order of the remaining photos (positions 1 and above) will not change automatically if some photos are deleted."
34
+ },
35
+ {
36
+ "name": "MarketingCategory",
37
+ "type": "string",
38
+ "required": false,
39
+ "description": "The type of marketing photo"
40
+ }
41
+ ]
42
+ },
43
+ "responseFields": [
44
+ {
45
+ "name": "Id",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the property marketing photo"
49
+ }
50
+ ],
51
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\",\n \"Position\": 1\n}"
52
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_properties_propertyid_notes",
3
+ "resource": "properties",
4
+ "name": "Create Property Note",
5
+ "method": "POST",
6
+ "path": "/properties/{PropertyId}/notes",
7
+ "description": "Add a note to a property",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "PropertyId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The property 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 property note. A property 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 property note"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"Body\": \"This property has a scheduled cleaning service on 11/11/2023\"\n}"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_properties_propertyid_photos",
3
+ "resource": "properties",
4
+ "name": "Create Property Photo",
5
+ "method": "POST",
6
+ "path": "/properties/{PropertyId}/photos",
7
+ "description": "Upload a photo to a property",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "PropertyId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The property to which the photo will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Photo object",
22
+ "attributes": [
23
+ {
24
+ "name": "File",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "Filename.file-extension"
28
+ }
29
+ ]
30
+ },
31
+ "responseFields": [
32
+ {
33
+ "name": "Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the property photo"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
40
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "operationId": "post_recurring_charges",
3
+ "resource": "recurring_charges",
4
+ "name": "Create Recurring Charges",
5
+ "method": "POST",
6
+ "path": "/recurring_charges",
7
+ "description": "Create a recurring charge",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Recurring Charge object",
14
+ "attributes": [
15
+ {
16
+ "name": "Amount",
17
+ "type": "number <float>",
18
+ "required": true,
19
+ "description": "The amount of the recurring charge"
20
+ },
21
+ {
22
+ "name": "Frequency",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The frequency that the recurring charge occurs",
26
+ "enum": ["Monthly", "Every 3 Months", "Every 6 Months", "Once a Year"]
27
+ },
28
+ {
29
+ "name": "StartDate",
30
+ "type": "string <date>",
31
+ "required": true,
32
+ "description": "The start date of the recurring charge"
33
+ },
34
+ {
35
+ "name": "OccupancyId",
36
+ "type": "string <uuid>",
37
+ "required": true,
38
+ "description": "Unique identifier of the occupancy associated with the recurring charge"
39
+ },
40
+ {
41
+ "name": "GlAccountId",
42
+ "type": "string <uuid>",
43
+ "required": true,
44
+ "description": "Unique identifier of the general ledger account associated with the recurring charge"
45
+ },
46
+ {
47
+ "name": "Description",
48
+ "type": "string",
49
+ "required": false,
50
+ "description": "A brief summary or description of the recurring charge"
51
+ },
52
+ {
53
+ "name": "EndDate",
54
+ "type": "string <date>",
55
+ "required": false,
56
+ "description": "The end date of the recurring charge"
57
+ },
58
+ {
59
+ "name": "ProrateFirstMonth",
60
+ "type": "boolean",
61
+ "required": false,
62
+ "description": "Determines if the first month's recurring charge should be prorated. When true, the charge amount will be adjusted based on the start date within the month. Proration requires all of the following conditions: The start date cannot be the first day of a month, must be after the first day of the current month, the charge frequency must be Monthly, the charge cannot be an insurance charge, the charge cannot start and end in the same month, and the first charge has not posted."
63
+ },
64
+ {
65
+ "name": "ProrateLastMonth",
66
+ "type": "boolean",
67
+ "required": false,
68
+ "description": "Determines if the final month's recurring charge should be prorated. When true, the charge amount will be adjusted based on the end date within the month. Proration requires all of the following conditions: The end date must exist and not fall on the last day of a month, must be a future date, the charge frequency must be Monthly, the charge cannot be an insurance charge, the charge cannot start and end in the same month, and final charge has not posted."
69
+ }
70
+ ]
71
+ },
72
+ "responseFields": [
73
+ {
74
+ "name": "Id",
75
+ "type": "string <uuid>",
76
+ "required": false,
77
+ "description": "Unique identifier of the created recurring charge"
78
+ }
79
+ ],
80
+ "requestSample": "{\n \"Amount\": \"235.79\",\n \"Description\": \"Sample description of the recurring charge\",\n \"Frequency\": \"Monthly\",\n \"StartDate\": \"2022-12-25\",\n \"EndDate\": \"2023-12-25\",\n \"ProrateFirstMonth\": false,\n \"ProrateLastMonth\": false,\n \"OccupancyId\": \"71c5cb28-547f-11ec-bfa5-02975b268737\",\n \"GlAccountId\": \"d9009724-9f32-11ec-bc31-d46a96ab9b08\"\n}"
81
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "operationId": "post_recurring_charges_bulk",
3
+ "resource": "recurring_charges",
4
+ "name": "Bulk Create Recurring Charges",
5
+ "method": "POST",
6
+ "path": "/recurring_charges/bulk",
7
+ "description": "Create multiple recurring charges in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Recurring Charge objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of recurring charge objects to create in bulk",
20
+ "attributes": [
21
+ {
22
+ "name": "Amount",
23
+ "type": "number <float>",
24
+ "required": true,
25
+ "description": "The amount of the recurring charge"
26
+ },
27
+ {
28
+ "name": "Frequency",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The frequency that the recurring charge occurs",
32
+ "enum": ["Monthly", "Every 3 Months", "Every 6 Months", "Once a Year"]
33
+ },
34
+ {
35
+ "name": "StartDate",
36
+ "type": "string <date>",
37
+ "required": true,
38
+ "description": "The start date of the recurring charge"
39
+ },
40
+ {
41
+ "name": "OccupancyId",
42
+ "type": "string <uuid>",
43
+ "required": true,
44
+ "description": "Unique identifier of the occupancy associated with the recurring charge"
45
+ },
46
+ {
47
+ "name": "GlAccountId",
48
+ "type": "string <uuid>",
49
+ "required": true,
50
+ "description": "Unique identifier of the general ledger account associated with the recurring charge"
51
+ },
52
+ {
53
+ "name": "ReferenceId",
54
+ "type": "string",
55
+ "required": true,
56
+ "description": "Transient unique ID assigned by the developer. Used to reference individual recurring charges in the bulk-creation of recurring charges."
57
+ },
58
+ {
59
+ "name": "Description",
60
+ "type": "string",
61
+ "required": false,
62
+ "description": "A brief summary or description of the recurring charge"
63
+ },
64
+ {
65
+ "name": "EndDate",
66
+ "type": "string <date>",
67
+ "required": false,
68
+ "description": "The end date of the recurring charge"
69
+ },
70
+ {
71
+ "name": "ProrateFirstMonth",
72
+ "type": "boolean",
73
+ "required": false,
74
+ "description": "Determines if the first month's recurring charge should be prorated. When true, the charge amount will be adjusted based on the start date within the month. Proration requires all of the following conditions: The start date cannot be the first day of a month, must be after the first day of the current month, the charge frequency must be Monthly, the charge cannot be an insurance charge, the charge cannot start and end in the same month, and the first charge has not posted."
75
+ },
76
+ {
77
+ "name": "ProrateLastMonth",
78
+ "type": "boolean",
79
+ "required": false,
80
+ "description": "Determines if the final month's recurring charge should be prorated. When true, the charge amount will be adjusted based on the end date within the month. Proration requires all of the following conditions: The end date must exist and not fall on the last day of a month, must be a future date, the charge frequency must be Monthly, the charge cannot be an insurance charge, the charge cannot start and end in the same month, and final charge has not posted."
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ },
86
+ "responseFields": [
87
+ {
88
+ "name": "JobId",
89
+ "type": "string <uuid>",
90
+ "required": false,
91
+ "description": "Unique identifier of the bulk creation job"
92
+ }
93
+ ],
94
+ "requestSample": "{\n \"data\": [\n {},\n {}\n ]\n}"
95
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "operationId": "post_rental_applications_rentalapplicationid_attachments",
3
+ "resource": "rental_applications",
4
+ "name": "Create Rental Application Attachment",
5
+ "method": "POST",
6
+ "path": "/rental_applications/{RentalApplicationId}/attachments",
7
+ "description": "Add an attachment 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 file will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Attachment object",
22
+ "attributes": [
23
+ {
24
+ "name": "File",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "Filename.file-extension",
28
+ "format": "multipart/form-data"
29
+ }
30
+ ]
31
+ },
32
+ "responseFields": [
33
+ {
34
+ "name": "Id",
35
+ "type": "string <uuid>",
36
+ "required": false,
37
+ "description": "Unique identifier of the rental application attachment"
38
+ }
39
+ ],
40
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
41
+ }