@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,52 @@
1
+ {
2
+ "operationId": "get_leases_renewal_pricings",
3
+ "resource": "leases",
4
+ "name": "List All Lease Renewal Pricings",
5
+ "method": "GET",
6
+ "path": "/leases/renewal_pricings",
7
+ "description": "Returns all lease renewal pricing options that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[LeaseId]",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the lease to filter renewal pricings by. LeaseId is required."
17
+ }
18
+ ],
19
+ "responseFields": [
20
+ {
21
+ "name": "Id",
22
+ "type": "string <uuid>",
23
+ "required": false,
24
+ "description": "Unique identifier of the renewal pricing option"
25
+ },
26
+ {
27
+ "name": "LeaseId",
28
+ "type": "string <uuid>",
29
+ "required": false,
30
+ "description": "Unique identifier of the lease associated with this renewal pricing option"
31
+ },
32
+ {
33
+ "name": "StartDate",
34
+ "type": "string <date>",
35
+ "required": false,
36
+ "description": "The start date of the renewal pricing option. The format is YYYY-MM-DD."
37
+ },
38
+ {
39
+ "name": "Price",
40
+ "type": "integer",
41
+ "required": false,
42
+ "description": "The monthly rent price for this renewal pricing option"
43
+ },
44
+ {
45
+ "name": "LeaseTerm",
46
+ "type": "integer",
47
+ "required": false,
48
+ "description": "The lease term in months for this renewal pricing option"
49
+ }
50
+ ],
51
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/leases/renewal_pricings?filters[LeaseId]=1abcde23-c543-456e-abc9-123456789cba' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002' \\\n --header 'Authorization: Basic {Auth}'"
52
+ }
@@ -0,0 +1,259 @@
1
+ {
2
+ "operationId": "get_listings",
3
+ "resource": "listings",
4
+ "name": "List All Listings",
5
+ "method": "GET",
6
+ "path": "/listings",
7
+ "description": "Returns all units that are not manually excluded, have no active occupancy with a move-out, notice, or move-in date, are currently advertised on the website or external listing platforms, and satisfy the filter criteria.",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[LastUpdatedAtFrom]",
14
+ "type": "string <date-time>",
15
+ "required": true,
16
+ "description": "Filter listings by last updated date/time (from). All GET requests must include this filter."
17
+ }
18
+ ],
19
+ "responseFields": [
20
+ {
21
+ "name": "data",
22
+ "type": "array",
23
+ "required": false,
24
+ "description": "Array of Listing objects"
25
+ },
26
+ {
27
+ "name": "data[].Id",
28
+ "type": "string",
29
+ "required": false,
30
+ "description": "Unique identifier of the listing"
31
+ },
32
+ {
33
+ "name": "data[].AcceptingApplications",
34
+ "type": "boolean",
35
+ "required": false,
36
+ "deprecated": true,
37
+ "description": "Indicates whether or not the listing is accepting applications"
38
+ },
39
+ {
40
+ "name": "data[].Address1",
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "The primary street address of the listing"
44
+ },
45
+ {
46
+ "name": "data[].Address2",
47
+ "type": "string",
48
+ "required": false,
49
+ "description": "Additional street address information pertaining to the listing"
50
+ },
51
+ {
52
+ "name": "data[].AdvertisedRent",
53
+ "type": "number <float>",
54
+ "required": false,
55
+ "deprecated": true,
56
+ "description": "The rent per month as advertised"
57
+ },
58
+ {
59
+ "name": "data[].ApplicationFee",
60
+ "type": "string",
61
+ "required": false,
62
+ "description": "The application fee amount for the listing"
63
+ },
64
+ {
65
+ "name": "data[].ApplicationURL",
66
+ "type": "string",
67
+ "required": false,
68
+ "description": "The URL link(s) to the application page of the listing(s) accepting online applications"
69
+ },
70
+ {
71
+ "name": "data[].AvailableOn",
72
+ "type": "string <date>",
73
+ "required": false,
74
+ "description": "The date upon which the listing can be leased"
75
+ },
76
+ {
77
+ "name": "data[].Bathrooms",
78
+ "type": "number <float>",
79
+ "required": false,
80
+ "description": "The number of bathrooms listed for the unit"
81
+ },
82
+ {
83
+ "name": "data[].Bedrooms",
84
+ "type": "integer",
85
+ "required": false,
86
+ "description": "The number of bedrooms listed for the unit"
87
+ },
88
+ {
89
+ "name": "data[].CatsAllowed",
90
+ "type": "boolean",
91
+ "required": false,
92
+ "description": "Indicates whether or not the listing allows cats. A null value indicates that the listing may not have specified a policy for cats."
93
+ },
94
+ {
95
+ "name": "data[].City",
96
+ "type": "string",
97
+ "required": false,
98
+ "description": "The city where the listing is located"
99
+ },
100
+ {
101
+ "name": "data[].Deposit",
102
+ "type": "number <float>",
103
+ "required": false,
104
+ "description": "The security, rent, or pet and cleaning deposit amount"
105
+ },
106
+ {
107
+ "name": "data[].DogPolicy",
108
+ "type": "string",
109
+ "required": false,
110
+ "enum": ["Large & Small", "Small Only", "Not Allowed"],
111
+ "description": "Indicates whether or not the listing allows dogs. If dogs are allowed, valid values are: \"Large & Small\" or \"Small Only.\""
112
+ },
113
+ {
114
+ "name": "data[].Email",
115
+ "type": "string",
116
+ "required": false,
117
+ "description": "The contact email address associated with the listing"
118
+ },
119
+ {
120
+ "name": "data[].HighAdvertisedRent",
121
+ "type": "number <float>",
122
+ "required": false,
123
+ "description": "The highest rent per month as advertised"
124
+ },
125
+ {
126
+ "name": "data[].IsCampaign",
127
+ "type": "boolean",
128
+ "required": false,
129
+ "description": "Indicates whether or not the listing is a part of a campaign"
130
+ },
131
+ {
132
+ "name": "data[].LastUpdatedAt",
133
+ "type": "string <date-time>",
134
+ "required": false,
135
+ "description": "The date the listing's details were last updated"
136
+ },
137
+ {
138
+ "name": "data[].ListedRent",
139
+ "type": "string <decimal>",
140
+ "required": false,
141
+ "description": "The rent per month as listed on the market. This value reflects either the market rent or the advertised rent, depending on whether \"Use Market Rent On Ads\" is enabled in the AppFolio Property Manager."
142
+ },
143
+ {
144
+ "name": "data[].LowAdvertisedRent",
145
+ "type": "number <float>",
146
+ "required": false,
147
+ "description": "The lowest rent per month as advertised"
148
+ },
149
+ {
150
+ "name": "data[].MarketingDescription",
151
+ "type": "string",
152
+ "required": false,
153
+ "description": "A description of the listing for syndication"
154
+ },
155
+ {
156
+ "name": "data[].MarketingTitle",
157
+ "type": "string",
158
+ "required": false,
159
+ "description": "The title of the listing for syndication"
160
+ },
161
+ {
162
+ "name": "data[].PhoneNumber",
163
+ "type": "string",
164
+ "required": false,
165
+ "description": "The contact phone number associated with the listing. Includes the extension number if applicable."
166
+ },
167
+ {
168
+ "name": "data[].PostedToWebsite",
169
+ "type": "boolean",
170
+ "required": false,
171
+ "description": "Indicates whether or not a vacant unit was posted to the AppFolio listings page. If true, the unit is displayed on the AppFolio listings page and accepting applications. If false, the unit is not displayed on the AppFolio listings page."
172
+ },
173
+ {
174
+ "name": "data[].PropertyId",
175
+ "type": "string <uuid>",
176
+ "required": false,
177
+ "description": "Unique identifier of the property associated with the listing"
178
+ },
179
+ {
180
+ "name": "data[].PropertyMarketingDescription",
181
+ "type": "string",
182
+ "required": false,
183
+ "description": "A description of the property associated with the listing for syndication"
184
+ },
185
+ {
186
+ "name": "data[].PropertyMarketingTitle",
187
+ "type": "string",
188
+ "required": false,
189
+ "description": "The title of the property associated with the listing for syndication"
190
+ },
191
+ {
192
+ "name": "data[].SquareFeet",
193
+ "type": "number <float>",
194
+ "required": false,
195
+ "description": "The size of the listing in square feet"
196
+ },
197
+ {
198
+ "name": "data[].State",
199
+ "type": "string",
200
+ "required": false,
201
+ "description": "The state where the listing is located"
202
+ },
203
+ {
204
+ "name": "data[].UnitAmenities",
205
+ "type": "array of strings",
206
+ "required": false,
207
+ "description": "The amenities offered by the building in the listing"
208
+ },
209
+ {
210
+ "name": "data[].UnitId",
211
+ "type": "string <uuid>",
212
+ "required": false,
213
+ "description": "Unique identifier of the unit associated with the listing"
214
+ },
215
+ {
216
+ "name": "data[].UnitPhotos",
217
+ "type": "array of objects (ListingsPhoto)",
218
+ "required": false,
219
+ "description": "Photos of the listing"
220
+ },
221
+ {
222
+ "name": "data[].UnitType",
223
+ "type": "string",
224
+ "required": false,
225
+ "description": "The floor plan of the listing"
226
+ },
227
+ {
228
+ "name": "data[].UnitTypeId",
229
+ "type": "string <uuid>",
230
+ "required": false,
231
+ "description": "Unique identifier of the UnitType for the listing"
232
+ },
233
+ {
234
+ "name": "data[].UtilitiesIncluded",
235
+ "type": "array of strings",
236
+ "required": false,
237
+ "description": "The utilities which are included with rent"
238
+ },
239
+ {
240
+ "name": "data[].YouTubeURL",
241
+ "type": "string",
242
+ "required": false,
243
+ "description": "The URL of the YouTube video for the listing"
244
+ },
245
+ {
246
+ "name": "data[].Zip",
247
+ "type": "string",
248
+ "required": false,
249
+ "description": "The zip code where the listing is located"
250
+ },
251
+ {
252
+ "name": "next_page_path",
253
+ "type": "any",
254
+ "required": false,
255
+ "description": "The URL path to the next page of responses"
256
+ }
257
+ ],
258
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/listings?filters[LastUpdatedAtFrom]=2022-10-01T16:30:46Z' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
259
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "operationId": "get_occupancies_documents",
3
+ "resource": "occupancies",
4
+ "name": "List All Occupancies Documents",
5
+ "method": "GET",
6
+ "path": "/occupancies/documents",
7
+ "description": "Returns all occupancy's documents that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[OccupancyId]",
14
+ "type": "string <uuid>",
15
+ "required": false,
16
+ "description": "Filter by occupancy identifier. All GET requests must include a filter for [OccupancyId] or [LastUpdatedAtFrom]."
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter occupancy documents updated at or after this date-time. All GET requests must include a filter for [OccupancyId] or [LastUpdatedAtFrom]."
23
+ },
24
+ {
25
+ "name": "page[number]",
26
+ "type": "integer",
27
+ "required": false,
28
+ "description": "Page number for pagination. Default is 1."
29
+ },
30
+ {
31
+ "name": "page[size]",
32
+ "type": "integer",
33
+ "required": false,
34
+ "description": "Number of results per page. Default is 50."
35
+ }
36
+ ],
37
+ "responseFields": [
38
+ {
39
+ "name": "data",
40
+ "type": "array",
41
+ "required": false,
42
+ "description": "Array of occupancy objects"
43
+ },
44
+ {
45
+ "name": "data[].Id",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the occupancy"
49
+ },
50
+ {
51
+ "name": "data[].LastUpdatedAt",
52
+ "type": "string <date-time>",
53
+ "required": false,
54
+ "description": "The date the occupancy's details were last updated"
55
+ },
56
+ {
57
+ "name": "data[].OccupancyDocuments",
58
+ "type": "array",
59
+ "required": false,
60
+ "description": "Array containing a list of documents associated with an occupancy. An occupancy document is classified as either a lease or a supporting document"
61
+ },
62
+ {
63
+ "name": "next_page_path",
64
+ "type": "any",
65
+ "required": false,
66
+ "description": "The URL path to the next page of responses"
67
+ }
68
+ ],
69
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/occupancies/documents?filters[OccupancyId]=1abcde23-c543-456e-abc9-123456789cba&filters[LastUpdatedAtFrom]=2020-12-15T16:30:46Z' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
70
+ }
@@ -0,0 +1,230 @@
1
+ {
2
+ "operationId": "get_owner_groups",
3
+ "resource": "owner_groups",
4
+ "name": "List All Owner Groups",
5
+ "method": "GET",
6
+ "path": "/owner_groups",
7
+ "description": "Returns all property owner groups that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[Id]",
14
+ "type": "string <uuid>",
15
+ "required": false,
16
+ "description": "Filter by the unique identifier of the owner group. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter owner groups last updated at or after this date-time. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
23
+ },
24
+ {
25
+ "name": "page[number]",
26
+ "type": "integer",
27
+ "required": false,
28
+ "description": "Page number for pagination. Default is 1."
29
+ },
30
+ {
31
+ "name": "page[size]",
32
+ "type": "integer",
33
+ "required": false,
34
+ "description": "Number of results per page. Default is 1000."
35
+ }
36
+ ],
37
+ "responseFields": [
38
+ {
39
+ "name": "data",
40
+ "type": "array",
41
+ "required": false,
42
+ "description": "Array of owner group objects"
43
+ },
44
+ {
45
+ "name": "data[].Id",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the owner group"
49
+ },
50
+ {
51
+ "name": "data[].Current",
52
+ "type": "boolean",
53
+ "required": false,
54
+ "description": "The current owner(s) of the properties in the property group"
55
+ },
56
+ {
57
+ "name": "data[].FiscalYearEnd",
58
+ "type": "integer",
59
+ "required": false,
60
+ "description": "The month number representing the end of the fiscal year"
61
+ },
62
+ {
63
+ "name": "data[].LastUpdatedAt",
64
+ "type": "string <date-time>",
65
+ "required": false,
66
+ "description": "The date owners groups details were last updated"
67
+ },
68
+ {
69
+ "name": "data[].Owners",
70
+ "type": "array",
71
+ "required": false,
72
+ "description": "List of owners within an ownership group",
73
+ "attributes": [
74
+ {
75
+ "name": "Id",
76
+ "type": "string",
77
+ "required": false,
78
+ "description": "Unique identifier an owner within an owner group. UUID format e.g. \"38a5a5bb-dc30-49a2-b175-1de0d1488c43\""
79
+ },
80
+ {
81
+ "name": "ContractExpiration",
82
+ "type": "string",
83
+ "required": false,
84
+ "description": "The date when the owner's contract expires. The date must be in YYYY-MM-DD format."
85
+ },
86
+ {
87
+ "name": "CompanyName",
88
+ "type": "string",
89
+ "required": false,
90
+ "description": "Optional display name of the owner's company"
91
+ },
92
+ {
93
+ "name": "Email",
94
+ "type": "string",
95
+ "required": false,
96
+ "description": "The owner's primary email address"
97
+ },
98
+ {
99
+ "name": "PhoneNumber",
100
+ "type": "string",
101
+ "required": false,
102
+ "description": "Primary phone number"
103
+ },
104
+ {
105
+ "name": "FirstName",
106
+ "type": "string",
107
+ "required": false,
108
+ "description": "The owner's first name"
109
+ },
110
+ {
111
+ "name": "LastName",
112
+ "type": "string",
113
+ "required": false,
114
+ "description": "The owner's last name"
115
+ },
116
+ {
117
+ "name": "Link",
118
+ "type": "string",
119
+ "required": false,
120
+ "description": "A link to the owner's page in the AppFolio Property Manager."
121
+ },
122
+ {
123
+ "name": "MaintenanceNotes",
124
+ "type": "string",
125
+ "required": false,
126
+ "description": "Maintenance notes for the properties owned"
127
+ },
128
+ {
129
+ "name": "HiddenAt",
130
+ "type": "string",
131
+ "required": false,
132
+ "description": "When the owner group was labeled no longer active by an AppFolio Property Manager user. Valid format is in ISO 8601 format: \"YYYY-MM-DDTHH:mm:ssZ\" e.g. \"2022-06-00T12:00:00Z\". The default time zone is Coordinated Universal Time (UTC)."
133
+ },
134
+ {
135
+ "name": "IsCompany",
136
+ "type": "boolean",
137
+ "required": false,
138
+ "description": "Indicates whether or not the owner identifies as a company"
139
+ },
140
+ {
141
+ "name": "Address1",
142
+ "type": "string",
143
+ "required": false,
144
+ "description": "The primary street address of the owner"
145
+ },
146
+ {
147
+ "name": "Address2",
148
+ "type": "string",
149
+ "required": false,
150
+ "description": "Additional street address information pertaining to the owner"
151
+ },
152
+ {
153
+ "name": "City",
154
+ "type": "string",
155
+ "required": false,
156
+ "description": "The city where the owner is located"
157
+ },
158
+ {
159
+ "name": "State",
160
+ "type": "string",
161
+ "required": false,
162
+ "description": "The state where the owner is located"
163
+ },
164
+ {
165
+ "name": "Zip",
166
+ "type": "string",
167
+ "required": false,
168
+ "description": "The zip code where the owner is located"
169
+ },
170
+ {
171
+ "name": "CountryCode",
172
+ "type": "string",
173
+ "required": false,
174
+ "description": "The country code of the owner (e.g. \"JP\" for Japan)"
175
+ },
176
+ {
177
+ "name": "PercentOwned",
178
+ "type": "string",
179
+ "required": false,
180
+ "description": "The percentage of ownership assigned to this owner. The sum of PercentOwned across all owners must equal 100%."
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "name": "data[].OwnerPacketBasis",
186
+ "type": "string",
187
+ "required": false,
188
+ "description": "The accounting method used for owner packet calculations. Valid values are \"Cash\" or \"Accrual\".",
189
+ "enum": ["Cash", "Accrual"]
190
+ },
191
+ {
192
+ "name": "data[].PaymentType",
193
+ "type": "string",
194
+ "required": false,
195
+ "description": "The type of payment distribution for the owners. Valid values are \"Net Income\" or \"Flat\".",
196
+ "enum": ["Net Income", "Flat"]
197
+ },
198
+ {
199
+ "name": "data[].PaymentAmount",
200
+ "type": "string <decimal>",
201
+ "required": false,
202
+ "description": "The fixed payment amount to distribute to owners. This value is required when PaymentType is \"Flat\"."
203
+ },
204
+ {
205
+ "name": "data[].PropertyId",
206
+ "type": "string <uuid>",
207
+ "required": false,
208
+ "description": "Unique identifier of the property associated with all owners within the owner group"
209
+ },
210
+ {
211
+ "name": "data[].StartDate",
212
+ "type": "string <date>",
213
+ "required": false,
214
+ "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."
215
+ },
216
+ {
217
+ "name": "data[].ReserveFunds",
218
+ "type": "string <decimal>",
219
+ "required": false,
220
+ "description": "The amount of funds to maintain in reserve for the property"
221
+ },
222
+ {
223
+ "name": "next_page_path",
224
+ "type": "any",
225
+ "required": false,
226
+ "description": "The URL path to the next page of responses"
227
+ }
228
+ ],
229
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/owner_groups?filters[PropertyId]=bfcb95e8-d5fb-448c-b811-88d9f832e79c' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
230
+ }