@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,115 @@
1
+ {
2
+ "operationId": "post_late_fee_policies_bulk",
3
+ "resource": "late_fee_policies",
4
+ "name": "Bulk Create Late Fee Policies",
5
+ "method": "POST",
6
+ "path": "/late_fee_policies/bulk",
7
+ "description": "Create late fee policies in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Late Fee Policy objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of late fee policy objects to create in bulk",
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 late fee policy in the bulk-creation of late fee policies."
26
+ },
27
+ {
28
+ "name": "EligibleCharges",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The specific charges to which the late fee will be applied",
32
+ "enum": ["Every Charge", "All Recurring Charges", "Only Recurring Rent"]
33
+ },
34
+ {
35
+ "name": "FeeType",
36
+ "type": "string",
37
+ "required": true,
38
+ "description": "The late fee type",
39
+ "enum": ["Flat", "Percentage"]
40
+ },
41
+ {
42
+ "name": "GracePeriodType",
43
+ "type": "string",
44
+ "required": true,
45
+ "description": "The type of Grace Period to enforce",
46
+ "enum": ["Fixed Period", "Fixed Day of Month"]
47
+ },
48
+ {
49
+ "name": "GracePeriodValue",
50
+ "type": "integer",
51
+ "required": true,
52
+ "description": "A number of days after the charge, or a number of days into the following month. Must be between 0 and 365 when GracePeriodType is Fixed Period. Must be between 1 and 28 when GracePeriodType is Fixed Day of Month."
53
+ },
54
+ {
55
+ "name": "LateFeeGraceBalance",
56
+ "type": "string <decimal>",
57
+ "required": true,
58
+ "description": "The late fee grace balance"
59
+ },
60
+ {
61
+ "name": "PolicyEffectiveOn",
62
+ "type": "string <date>",
63
+ "required": true,
64
+ "description": "The date at which the late fee policy will start. It must be in the future. There can only be one current and future late fee policy per property. If you try to create a late fee policy for a property that already has a future late fee policy, it should replace the existing future late fee policy."
65
+ },
66
+ {
67
+ "name": "FlatAmount",
68
+ "type": "string <decimal>",
69
+ "required": false,
70
+ "description": "The flat fee. Must be provided when FeeType is Flat. Must be greater than 0 when LateFeePerDay is not 0 and FeeType is Flat."
71
+ },
72
+ {
73
+ "name": "LateFeePerDay",
74
+ "type": "string <decimal>",
75
+ "required": false,
76
+ "description": "The daily late fees"
77
+ },
78
+ {
79
+ "name": "MaxDailyLateFeesAmount",
80
+ "type": "string <decimal>",
81
+ "required": false,
82
+ "description": "The maximum daily late fees"
83
+ },
84
+ {
85
+ "name": "OccupancyId",
86
+ "type": "string <uuid>",
87
+ "required": false,
88
+ "description": "When present, the Late Fee Policy belongs to a specific occupancy within a MFR property."
89
+ },
90
+ {
91
+ "name": "Percentage",
92
+ "type": "string <decimal>",
93
+ "required": false,
94
+ "description": "The percentage of late fee. Must be a number 0 or greater. Must be provided when FeeType is Percentage. Must be greater than 0 when LateFeePerDay is not 0 and FeeType is Percentage."
95
+ },
96
+ {
97
+ "name": "PropertyId",
98
+ "type": "string <uuid>",
99
+ "required": false,
100
+ "description": "It is filled for both property-based and occupancy-based policies. PropertyId can be used to tie an occupancy-based policy to its MFR building."
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ "responseFields": [
107
+ {
108
+ "name": "JobId",
109
+ "type": "string <uuid>",
110
+ "required": false,
111
+ "description": "Unique identifier of the bulk job accepted for processing"
112
+ }
113
+ ],
114
+ "requestSample": "{\n \"data\": [\n {},\n {}\n ]\n}"
115
+ }
@@ -0,0 +1,204 @@
1
+ {
2
+ "operationId": "post_leads",
3
+ "resource": "leads",
4
+ "name": "Create Leads",
5
+ "method": "POST",
6
+ "path": "/leads",
7
+ "description": "Create a lead",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Lead object to create",
14
+ "attributes": [
15
+ {
16
+ "name": "FirstName",
17
+ "type": "string",
18
+ "required": true,
19
+ "description": "The first name of the interested person"
20
+ },
21
+ {
22
+ "name": "LastName",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The last name of the interested person"
26
+ },
27
+ {
28
+ "name": "PropertyId",
29
+ "type": "string <uuid>",
30
+ "required": true,
31
+ "description": "Unique identifier of the property associated with the lead"
32
+ },
33
+ {
34
+ "name": "AdditionalOccupants",
35
+ "type": "integer",
36
+ "required": false,
37
+ "description": "The number of other potential occupants of the residency"
38
+ },
39
+ {
40
+ "name": "AssignedUserId",
41
+ "type": "string <uuid>",
42
+ "required": false,
43
+ "description": "The AppFolio Property Manager user responsible for the lead. Reference the Users endpoint for any necessary associations."
44
+ },
45
+ {
46
+ "name": "Bathrooms",
47
+ "type": "string <decimal>",
48
+ "required": false,
49
+ "description": "The number of desired bathrooms"
50
+ },
51
+ {
52
+ "name": "Bedrooms",
53
+ "type": "integer",
54
+ "required": false,
55
+ "description": "The number of desired bedrooms"
56
+ },
57
+ {
58
+ "name": "CreatedAt",
59
+ "type": "string <date-time>",
60
+ "required": false,
61
+ "description": "The date the lead was created. The value must adhere to the ISO 8601 format YYYY-MM-DDThh:mm:ssZ and the default time zone is Coordinated Universal Time (UTC)."
62
+ },
63
+ {
64
+ "name": "CreditScore",
65
+ "type": "string",
66
+ "required": false,
67
+ "description": "The self-reported credit score of the interested party"
68
+ },
69
+ {
70
+ "name": "DesiredMoveIn",
71
+ "type": "string <date>",
72
+ "required": false,
73
+ "description": "The date the prospective resident desires to move in"
74
+ },
75
+ {
76
+ "name": "Email",
77
+ "type": "string",
78
+ "required": false,
79
+ "description": "The email address of the interested person"
80
+ },
81
+ {
82
+ "name": "HasCats",
83
+ "type": "boolean",
84
+ "required": false,
85
+ "description": "Indicates whether or not the interested person has cat(s)"
86
+ },
87
+ {
88
+ "name": "HasDogs",
89
+ "type": "boolean",
90
+ "required": false,
91
+ "description": "Indicates whether or not the interested person has dog(s)"
92
+ },
93
+ {
94
+ "name": "HasOtherPet",
95
+ "type": "boolean",
96
+ "required": false,
97
+ "description": "Indicates whether or not the interested person has other pet(s)"
98
+ },
99
+ {
100
+ "name": "MaxRent",
101
+ "type": "string <decimal>",
102
+ "required": false,
103
+ "description": "The max amount the interested person is willing to pay monthly for rent"
104
+ },
105
+ {
106
+ "name": "Messages",
107
+ "type": "array",
108
+ "required": false,
109
+ "description": "Array of objects representing messages sent about a lead",
110
+ "attributes": [
111
+ {
112
+ "name": "PropertyId",
113
+ "type": "string <uuid>",
114
+ "required": false,
115
+ "description": "Unique identifier of the property associated with the message"
116
+ },
117
+ {
118
+ "name": "UnitId",
119
+ "type": "string <uuid>",
120
+ "required": false,
121
+ "description": "Unique identifier of the unit associated with the message"
122
+ },
123
+ {
124
+ "name": "Message",
125
+ "type": "string",
126
+ "required": false,
127
+ "description": "The content of the message sent by the lead"
128
+ },
129
+ {
130
+ "name": "Source",
131
+ "type": "string",
132
+ "required": false,
133
+ "description": "The source of the message"
134
+ },
135
+ {
136
+ "name": "Timestamp",
137
+ "type": "string <date-time>",
138
+ "required": false,
139
+ "description": "The date and time the message was sent, in Coordinated Universal Time (UTC)"
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "name": "MiddleInitial",
145
+ "type": "string",
146
+ "required": false,
147
+ "description": "The middle initial of the interested person"
148
+ },
149
+ {
150
+ "name": "MonthlyIncome",
151
+ "type": "string <decimal>",
152
+ "required": false,
153
+ "description": "The self-reported monthly income of interested person"
154
+ },
155
+ {
156
+ "name": "PhoneNumber",
157
+ "type": "string",
158
+ "required": false,
159
+ "description": "The phone number of the interested person"
160
+ },
161
+ {
162
+ "name": "Source",
163
+ "type": "string",
164
+ "required": false,
165
+ "description": "The mechanism through which this lead was submitted"
166
+ },
167
+ {
168
+ "name": "Status",
169
+ "type": "string",
170
+ "required": false,
171
+ "description": "Indicates the current phase of engagement with a prospective resident",
172
+ "enum": ["active", "cold", "inactive", "waitlisted"]
173
+ },
174
+ {
175
+ "name": "UnitIds",
176
+ "type": "Array of strings",
177
+ "required": false,
178
+ "description": "Unique identifier of the unit(s) that the interested party is interested in"
179
+ }
180
+ ]
181
+ },
182
+ "responseFields": [
183
+ {
184
+ "name": "Id",
185
+ "type": "string <uuid>",
186
+ "required": false,
187
+ "description": "Unique identifier of the created lead. If Duplicate is true, it is the unique identifier of the original lead that was updated."
188
+ },
189
+ {
190
+ "name": "Duplicate",
191
+ "type": "boolean",
192
+ "required": false,
193
+ "description": "Indicates whether or not the lead is a duplicate of an existing lead. Leads are marked as duplicates if a lead was submitted from a party with the same contact information (phone number or email) that is already associated with a lead with the same PropertyId. If Duplicate is true, the original lead will be updated rather than a new lead being created."
194
+ },
195
+ {
196
+ "name": "OriginalLeadId",
197
+ "type": "string <uuid>",
198
+ "required": false,
199
+ "deprecated": true,
200
+ "description": "ID of the existing lead this lead duplicates. The ID attribute of the newly created lead will be distinct from its duplicate."
201
+ }
202
+ ],
203
+ "requestSample": "{\n \"AdditionalOccupants\": 1,\n \"AssignedUserId\": \"123cde23-c543-456e-abc9-123456789cba\",\n \"Bathrooms\": \"2.5\",\n \"Bedrooms\": 2,\n \"CreatedAt\": \"2021-12-15T16:30:46Z\",\n \"CreditScore\": \"720 to 850\",\n \"DesiredMoveIn\": \"2021-12-31\",\n \"Email\": \"sample@example.com\",\n \"FirstName\": \"John\",\n \"HasCats\": true,\n \"HasDogs\": false,\n \"HasOtherPet\": false,\n \"LastName\": \"Doe\",\n \"MaxRent\": \"2200.00\",\n \"MiddleInitial\": \"\",\n \"MonthlyIncome\": \"6600.00\",\n \"PhoneNumber\": \"(310) 555-0194\",\n \"Messages\": [{}, {}],\n \"PropertyId\": \"233cde23-c543-456e-abc9-123456789cba\",\n \"Source\": \"Website\",\n \"Status\": \"active\",\n \"UnitIds\": [\"1abcde23-c543-456e-abc9-123456789cba\", \"234abcde-c543-456e-abc9-123456789abc\"]\n}"
204
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_leads_guestcardid_notes",
3
+ "resource": "leads",
4
+ "name": "Create Lead Note",
5
+ "method": "POST",
6
+ "path": "/leads/{GuestCardId}/notes",
7
+ "description": "Add a note to a lead",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "GuestCardId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The unique identifier of the Guest Card to which the note will be attached. Guest Cards can be linked to multiple leads."
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 lead note. A lead 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 lead note"
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"Body\": \"This rental application has been submitted on 11/11/2023\"\n}"
40
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "operationId": "post_occupancies_occupancyid_attachments",
3
+ "resource": "occupancies",
4
+ "name": "Create Occupancy Attachment",
5
+ "method": "POST",
6
+ "path": "/occupancies/{OccupancyId}/attachments",
7
+ "description": "Add an attachment to an occupancy",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "OccupancyId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The occupancy 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 occupancy attachment"
38
+ }
39
+ ],
40
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
41
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "operationId": "post_owner_groups",
3
+ "resource": "owner_groups",
4
+ "name": "Create Owner Group",
5
+ "method": "POST",
6
+ "path": "/owner_groups",
7
+ "description": "Create a Owner Group",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Owner Group object",
14
+ "attributes": [
15
+ {
16
+ "name": "OwnerPacketBasis",
17
+ "type": "string",
18
+ "required": true,
19
+ "description": "The accounting method used for owner packet calculations. Valid values are \"Cash\" or \"Accrual\".",
20
+ "enum": ["Cash", "Accrual"]
21
+ },
22
+ {
23
+ "name": "PaymentType",
24
+ "type": "string",
25
+ "required": true,
26
+ "description": "The type of payment distribution for the owners. Valid values are \"Net Income\" or \"Flat\".",
27
+ "enum": ["Net Income", "Flat"]
28
+ },
29
+ {
30
+ "name": "ReserveFunds",
31
+ "type": "string <decimal>",
32
+ "required": true,
33
+ "description": "The amount of funds to maintain in reserve for the property"
34
+ },
35
+ {
36
+ "name": "FiscalYearEnd",
37
+ "type": "integer",
38
+ "required": true,
39
+ "description": "The month number representing the end of the fiscal year"
40
+ },
41
+ {
42
+ "name": "StartDate",
43
+ "type": "string <date>",
44
+ "required": true,
45
+ "description": "The date when this ownership group becomes effective. The date must be in YYYY-MM-DD format and cannot be set in the future. When updating an existing property's ownership, this date must be later than the current ownership group's StartDate. Creating a new owner group will automatically set the previous owner group's EndDate to one day before this StartDate to maintain ownership continuity."
46
+ },
47
+ {
48
+ "name": "PropertyId",
49
+ "type": "string <uuid>",
50
+ "required": true,
51
+ "description": "Unique identifier of the property associated with all owners within the owner group"
52
+ },
53
+ {
54
+ "name": "Owners",
55
+ "type": "array",
56
+ "required": true,
57
+ "description": "Array of owners and their associated ownership details for the property",
58
+ "attributes": [
59
+ {
60
+ "name": "OwnerId",
61
+ "type": "string <uuid>",
62
+ "required": true,
63
+ "description": "Unique identifier of the owner"
64
+ },
65
+ {
66
+ "name": "PercentOwned",
67
+ "type": "string <decimal>",
68
+ "required": true,
69
+ "description": "The percentage of ownership assigned to this owner. The sum of PercentOwned across all owners must equal 100%."
70
+ },
71
+ {
72
+ "name": "ContractExpiration",
73
+ "type": "string <date>",
74
+ "required": false,
75
+ "description": "The date when the owner's contract expires. The date must be in YYYY-MM-DD format."
76
+ },
77
+ {
78
+ "name": "PaymentAmount",
79
+ "type": "string <decimal>",
80
+ "required": false,
81
+ "description": "The fixed payment amount to distribute to owners. This value is required when PaymentType is \"Flat\"."
82
+ }
83
+ ]
84
+ }
85
+ ]
86
+ },
87
+ "responseFields": [
88
+ {
89
+ "name": "Id",
90
+ "type": "string <uuid>",
91
+ "required": false,
92
+ "description": "Unique identifier of the created owner group"
93
+ }
94
+ ],
95
+ "requestSample": "{\n \"StartDate\": \"2022-02-01\",\n \"FiscalYearEnd\": 2,\n \"ReserveFunds\": 5000,\n \"PropertyId\": \"71c5cb28-547f-11ec-bfa5-02975b268737\",\n \"PaymentType\": \"Flat\",\n \"PaymentAmount\": 2300,\n \"OwnerPacketBasis\": \"Cash\",\n \"Owners\": [\n {},\n {}\n ]\n}"
96
+ }