@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,21 @@
1
+ {
2
+ "operationId": "delete_inventories_id",
3
+ "resource": "inventories",
4
+ "name": "Delete Inventory",
5
+ "method": "DELETE",
6
+ "path": "/inventories/{Id}",
7
+ "description": "Delete an inventory item",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "Id",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the inventory item to delete"
17
+ }
18
+ ],
19
+ "responseFields": [],
20
+ "requestSample": "curl --location --request DELETE 'https://api.appfolio.com/api/v0/inventories/630964fb-bc9b-4f9a-b649-01cfe309cb52' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
21
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "operationId": "delete_properties_propertyid_marketing_photos_marketingphotoid",
3
+ "resource": "properties",
4
+ "name": "Delete Property Marketing Photo",
5
+ "method": "DELETE",
6
+ "path": "/properties/{PropertyId}/marketing_photos/{MarketingPhotoId}",
7
+ "description": "Delete a marketing photo from 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": "Unique identifier of the property that contains the marketing photo to be deleted"
17
+ },
18
+ {
19
+ "name": "MarketingPhotoId",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the marketing photo to be deleted from the property"
23
+ }
24
+ ],
25
+ "responseFields": [],
26
+ "requestSample": "curl --location --request DELETE 'https://api.appfolio.com/api/v0/properties/972b920c-e048-4a7b-b1f6-eddb6ad6d23c/marketing_photos/57e04805-11c5-4e27-adc9-c75ff9ddc9d9' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "operationId": "delete_properties_propertyid_photos_photoid",
3
+ "resource": "properties",
4
+ "name": "Delete Property Photo",
5
+ "method": "DELETE",
6
+ "path": "/properties/{PropertyId}/photos/{PhotoId}",
7
+ "description": "Delete a photo from 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": "Unique identifier of the property that contains the photo to be deleted"
17
+ },
18
+ {
19
+ "name": "PhotoId",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the photo to be deleted from the property"
23
+ }
24
+ ],
25
+ "responseFields": [],
26
+ "requestSample": "curl --location --request DELETE 'https://api.appfolio.com/api/v0/properties/972b920c-e048-4a7b-b1f6-eddb6ad6d23c/photos/57e04805-11c5-4e27-adc9-c75ff9ddc9d9' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "operationId": "delete_units_unitid_photos_photoid",
3
+ "resource": "units",
4
+ "name": "Delete Unit Photo",
5
+ "method": "DELETE",
6
+ "path": "/units/{UnitId}/photos/{PhotoId}",
7
+ "description": "Delete a photo from a unit",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "UnitId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the unit that contains the photo to be deleted. Note: Photos cannot be deleted through this endpoint if the unit is using Unit Type photos."
17
+ },
18
+ {
19
+ "name": "PhotoId",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the photo to be deleted"
23
+ }
24
+ ],
25
+ "responseFields": [],
26
+ "requestSample": "curl --location --request DELETE 'https://api.appfolio.com/api/v0/units/972b920c-e048-4a7b-b1f6-eddb6ad6d23c/photos/57e04805-11c5-4e27-adc9-c75ff9ddc9d9' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "operationId": "delete_work_orders_workorderid_attachments_attachmentid",
3
+ "resource": "work_orders",
4
+ "name": "Delete Work Order Attachment",
5
+ "method": "DELETE",
6
+ "path": "/work_orders/{WorkOrderId}/attachments/{AttachmentId}",
7
+ "description": "Delete an attachment from a work order",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "WorkOrderId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the work order that contains the attachment to be deleted"
17
+ },
18
+ {
19
+ "name": "AttachmentId",
20
+ "type": "string <uuid>",
21
+ "required": true,
22
+ "description": "Unique identifier of the attachment to be deleted from the work order"
23
+ }
24
+ ],
25
+ "responseFields": [],
26
+ "requestSample": "curl --location --request DELETE 'https://api.appfolio.com/api/v0/work_orders/972b920c-e048-4a7b-b1f6-eddb6ad6d23c/attachments/57e04805-11c5-4e27-adc9-c75ff9ddc9d9' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
27
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "operationId": "get_bank_accounts",
3
+ "resource": "bank_accounts",
4
+ "name": "List All Bank Accounts",
5
+ "method": "GET",
6
+ "path": "/bank_accounts",
7
+ "description": "Returns all bank accounts that meet the filter criteria. Hidden and corporate bank accounts are not returned.",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[Id]",
14
+ "type": "string",
15
+ "required": false,
16
+ "description": "Comma-separated list of bank account UUIDs to filter by."
17
+ }
18
+ ],
19
+ "responseFields": [
20
+ {
21
+ "name": "data",
22
+ "type": "array",
23
+ "required": false,
24
+ "description": "Array of BankAccount objects"
25
+ },
26
+ {
27
+ "name": "data[].Id",
28
+ "type": "string <uuid>",
29
+ "required": false,
30
+ "description": "Unique identifier of the bank account"
31
+ },
32
+ {
33
+ "name": "data[].AccountName",
34
+ "type": "string",
35
+ "required": false,
36
+ "description": "The name of the bank account"
37
+ },
38
+ {
39
+ "name": "data[].BankName",
40
+ "type": "string",
41
+ "required": false,
42
+ "description": "The name of the bank"
43
+ },
44
+ {
45
+ "name": "data[].LegalEntityName",
46
+ "type": "string",
47
+ "required": false,
48
+ "description": "The full legal name given to the business or individual owning the bank account"
49
+ },
50
+ {
51
+ "name": "next_page_path",
52
+ "type": "any",
53
+ "required": false,
54
+ "description": "The URL path to the next page of responses"
55
+ }
56
+ ],
57
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/bank_accounts?filters[Id]=1abcde23-c543-456e-abc9-123456789cee,3b5344d0-482b-4b50-b30f-2dd67412b517' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002' \\\n --header 'Authorization: Basic {Auth}'"
58
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "operationId": "get_bills",
3
+ "resource": "bills",
4
+ "name": "List All Bills",
5
+ "method": "GET",
6
+ "path": "/bills",
7
+ "description": "Returns all bills that meet 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": false,
16
+ "description": "Filter bills updated at or after this date-time. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtTo]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter bills updated at or before this date-time."
23
+ },
24
+ {
25
+ "name": "filters[Id]",
26
+ "type": "string <uuid>",
27
+ "required": false,
28
+ "description": "Filter by bill ID. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
29
+ },
30
+ {
31
+ "name": "page[number]",
32
+ "type": "integer",
33
+ "required": false,
34
+ "description": "Page number for pagination. Default is 1."
35
+ },
36
+ {
37
+ "name": "page[size]",
38
+ "type": "integer",
39
+ "required": false,
40
+ "description": "Page size for pagination. Default is 1000."
41
+ }
42
+ ],
43
+ "responseFields": [
44
+ {
45
+ "name": "data",
46
+ "type": "array",
47
+ "required": false,
48
+ "description": "Array of Bill objects"
49
+ },
50
+ {
51
+ "name": "data[].Id",
52
+ "type": "string <uuid>",
53
+ "required": false,
54
+ "description": "Unique identifier of the bill"
55
+ },
56
+ {
57
+ "name": "data[].AccountNumber",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "For utility billing. The account number associated with the bill, used by a utility vendor to identify the account"
61
+ },
62
+ {
63
+ "name": "data[].ApprovalStatus",
64
+ "type": "string",
65
+ "required": false,
66
+ "description": "Indicates the bill's approval status",
67
+ "enum": ["Pending", "Approved"]
68
+ },
69
+ {
70
+ "name": "data[].CashAccountId",
71
+ "type": "string <uuid>",
72
+ "required": false,
73
+ "description": "The general ledger account ID of the Cash Account the bill will be paid out of. If the property is corporate, the CashAccountID must be a corporate gl account. If it is not, it cannot be a corporate GL account"
74
+ },
75
+ {
76
+ "name": "data[].CheckMemo",
77
+ "type": "string",
78
+ "required": false,
79
+ "description": "The memo on the check"
80
+ },
81
+ {
82
+ "name": "data[].Description",
83
+ "type": "string",
84
+ "required": false,
85
+ "description": "A description or summary of the bill"
86
+ },
87
+ {
88
+ "name": "data[].DueDate",
89
+ "type": "string <date>",
90
+ "required": false,
91
+ "description": "The date the bill is due"
92
+ },
93
+ {
94
+ "name": "data[].InvoiceDate",
95
+ "type": "string <date>",
96
+ "required": false,
97
+ "description": "The date the invoice was received"
98
+ },
99
+ {
100
+ "name": "data[].LastUpdatedAt",
101
+ "type": "string <date-time>",
102
+ "required": false,
103
+ "description": "The date the bill was last updated"
104
+ },
105
+ {
106
+ "name": "data[].LineItems",
107
+ "type": "array",
108
+ "required": false,
109
+ "description": "Array of line item attributes present on the bill(s)"
110
+ },
111
+ {
112
+ "name": "data[].LineItems[].Id",
113
+ "type": "string",
114
+ "required": false,
115
+ "description": "Unique identifier of the bill line item"
116
+ },
117
+ {
118
+ "name": "data[].LineItems[].Amount",
119
+ "type": "string",
120
+ "required": false,
121
+ "description": "The amount due for the line item. Valid format is \"DD.CC\", e.g. \"23.33\""
122
+ },
123
+ {
124
+ "name": "data[].LineItems[].Description",
125
+ "type": "string",
126
+ "required": false,
127
+ "description": "A brief description of the line item"
128
+ },
129
+ {
130
+ "name": "data[].LineItems[].GlAccountId",
131
+ "type": "string",
132
+ "required": false,
133
+ "description": "The general ledger account ID relevant to the line item. UUID format e.g. \"d9009724-9f32-11ec-bc31-d46a96ab9b08\""
134
+ },
135
+ {
136
+ "name": "data[].LineItems[].PropertyId",
137
+ "type": "string",
138
+ "required": false,
139
+ "description": "The PropertyId associated with the line item. UUID format e.g. \"d9009724-9f32-11ec-bc31-d46a96ab9b08\""
140
+ },
141
+ {
142
+ "name": "data[].LineItems[].ServiceFrom",
143
+ "type": "string",
144
+ "required": false,
145
+ "description": "The start date of the utility vendor's service. Valid format is \"YYYY-MM-DD\""
146
+ },
147
+ {
148
+ "name": "data[].LineItems[].ServiceTo",
149
+ "type": "string",
150
+ "required": false,
151
+ "description": "The end date of the utility vendor's service. Valid format is \"YYYY-MM-DD\""
152
+ },
153
+ {
154
+ "name": "data[].LineItems[].UnitId",
155
+ "type": "string",
156
+ "required": false,
157
+ "description": "The unit ID relevant to the line item. UUID format e.g. \"914a2a8e-f5d3-11e9-a485-1876da4c83b5\""
158
+ },
159
+ {
160
+ "name": "data[].ManagementCompanyAsPayee",
161
+ "type": "boolean",
162
+ "required": false,
163
+ "description": "Indicates whether the management company is the payee for the bill"
164
+ },
165
+ {
166
+ "name": "data[].TotalAmount",
167
+ "type": "string <decimal>",
168
+ "required": false,
169
+ "description": "The total amount due for the bill. Ensure that the total amount is equal to the total of all line items summed."
170
+ },
171
+ {
172
+ "name": "data[].VendorId",
173
+ "type": "string <uuid>",
174
+ "required": false,
175
+ "description": "Unique identifier of the payee's vendor ID"
176
+ },
177
+ {
178
+ "name": "next_page_path",
179
+ "type": "any",
180
+ "required": false,
181
+ "description": "The URL path to the next page of responses"
182
+ }
183
+ ],
184
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/bills?filters[LastUpdatedAtFrom]=2020-12-15T16:30:46Z' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
185
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "operationId": "get_ca_associations",
3
+ "resource": "ca",
4
+ "name": "List All Community Associations",
5
+ "method": "GET",
6
+ "path": "/ca/associations",
7
+ "description": "Returns all Community Associations 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 unique identifier of the Community Association"
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter Community Associations by last updated date. 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: 1"
29
+ },
30
+ {
31
+ "name": "page[size]",
32
+ "type": "integer",
33
+ "required": false,
34
+ "description": "Page size for pagination. Default: 1000"
35
+ }
36
+ ],
37
+ "responseFields": [
38
+ {
39
+ "name": "data",
40
+ "type": "array",
41
+ "required": false,
42
+ "description": "Array of CommunityAssociation objects"
43
+ },
44
+ {
45
+ "name": "data[].Id",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the Community Association"
49
+ },
50
+ {
51
+ "name": "data[].Name",
52
+ "type": "string",
53
+ "required": false,
54
+ "description": "The name of the Community Association"
55
+ },
56
+ {
57
+ "name": "data[].Address1",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "The primary address of the Community Association"
61
+ },
62
+ {
63
+ "name": "data[].Address2",
64
+ "type": "string",
65
+ "required": false,
66
+ "description": "The secondary address of the Community Association"
67
+ },
68
+ {
69
+ "name": "data[].City",
70
+ "type": "string",
71
+ "required": false,
72
+ "description": "The city where the Community Association is located"
73
+ },
74
+ {
75
+ "name": "data[].State",
76
+ "type": "string",
77
+ "required": false,
78
+ "description": "The state where the Community Association is located"
79
+ },
80
+ {
81
+ "name": "data[].Zip",
82
+ "type": "string",
83
+ "required": false,
84
+ "description": "The zip code where the Community Association is located"
85
+ },
86
+ {
87
+ "name": "data[].LastUpdatedAt",
88
+ "type": "string <date-time>",
89
+ "required": false,
90
+ "description": "The date the Community Association's details were last updated"
91
+ },
92
+ {
93
+ "name": "data[].CustomFields",
94
+ "type": "object",
95
+ "required": false,
96
+ "description": "The custom fields for the associated entity"
97
+ },
98
+ {
99
+ "name": "next_page_path",
100
+ "type": "any",
101
+ "required": false,
102
+ "description": "The URL path to the next page of responses"
103
+ }
104
+ ],
105
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/ca/associations?filters[Id]=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'"
106
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "operationId": "get_ca_bank_balances",
3
+ "resource": "ca",
4
+ "name": "List All Community Association Bank Account Balances",
5
+ "method": "GET",
6
+ "path": "/ca/bank_balances",
7
+ "description": "Returns Community Association (CA) bank account balances that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[AssociationId]",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Filter by unique identifier of the Community Association. All GET requests must include this filter."
17
+ },
18
+ {
19
+ "name": "page[number]",
20
+ "type": "integer",
21
+ "required": false,
22
+ "description": "Page number for pagination. Default: 1"
23
+ },
24
+ {
25
+ "name": "page[size]",
26
+ "type": "integer",
27
+ "required": false,
28
+ "description": "Page size for pagination. Default: 1000"
29
+ }
30
+ ],
31
+ "responseFields": [
32
+ {
33
+ "name": "data",
34
+ "type": "array",
35
+ "required": false,
36
+ "description": "Array of CABankBalance objects"
37
+ },
38
+ {
39
+ "name": "data[].BankAccountId",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the CA bank account"
43
+ },
44
+ {
45
+ "name": "data[].AssociationId",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the Community Association attached to the bank account"
49
+ },
50
+ {
51
+ "name": "data[].BankAccountName",
52
+ "type": "string",
53
+ "required": false,
54
+ "description": "The name of the CA's bank account"
55
+ },
56
+ {
57
+ "name": "data[].BankAccountNumber",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "Unique reference number of the CA bank account"
61
+ },
62
+ {
63
+ "name": "data[].BankAccountType",
64
+ "type": "null or string",
65
+ "required": false,
66
+ "description": "The type of bank account used for the Community Association",
67
+ "enum": ["Personal Checking", "Personal Savings", "Business Checking", "Business Saving", "Other", null]
68
+ },
69
+ {
70
+ "name": "data[].Balance",
71
+ "type": "number <float>",
72
+ "required": false,
73
+ "description": "The CA bank account's most recent statement balance"
74
+ },
75
+ {
76
+ "name": "data[].BalanceAsOf",
77
+ "type": "string <date>",
78
+ "required": false,
79
+ "description": "The date of the CA bank account's most recent statement balance"
80
+ },
81
+ {
82
+ "name": "data[].GlAccountIds",
83
+ "type": "Array of arrays",
84
+ "required": false,
85
+ "description": "Unique identifier of the general ledger account(s) associated with the CA bank account"
86
+ },
87
+ {
88
+ "name": "data[].Reserve",
89
+ "type": "boolean",
90
+ "required": false,
91
+ "description": "Indicates whether or not the CA bank account is a reserve bank account"
92
+ },
93
+ {
94
+ "name": "next_page_path",
95
+ "type": "any",
96
+ "required": false,
97
+ "description": "The URL path to the next page of responses"
98
+ }
99
+ ],
100
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/ca/bank_balances?filters[AssociationId]=1abcde23-c543-456e-abc9-123456789cee' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
101
+ }