@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,41 @@
1
+ {
2
+ "operationId": "post_ca_violations_violationid_attachments",
3
+ "resource": "ca",
4
+ "name": "Create Community Association Violations Attachment",
5
+ "method": "POST",
6
+ "path": "/ca/violations/{violationId}/attachments",
7
+ "description": "Create Community Association (CA) Violations Attachment",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "violationId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The CA violation to which the file will be attached"
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Violation 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 CA violation attachment"
38
+ }
39
+ ],
40
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
41
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "operationId": "post_charges",
3
+ "resource": "charges",
4
+ "name": "Create Charges",
5
+ "method": "POST",
6
+ "path": "/charges",
7
+ "description": "Create a single charge.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Charge object",
14
+ "attributes": [
15
+ {
16
+ "name": "AmountDue",
17
+ "type": "string <decimal>",
18
+ "required": true,
19
+ "description": "The dollar amount of the charge."
20
+ },
21
+ {
22
+ "name": "ChargedOn",
23
+ "type": "string <date>",
24
+ "required": true,
25
+ "description": "ChargedOn dates from the past indicate an outstanding charge that has not yet been paid that is \"owed.\" ChargedOn dates in the future indicate an upcoming charge during the next monthly period."
26
+ },
27
+ {
28
+ "name": "Description",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "A brief summary or description of the charge."
32
+ },
33
+ {
34
+ "name": "GlAccountId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "Unique identifier of the general ledger account associated with the charge."
38
+ },
39
+ {
40
+ "name": "OccupancyId",
41
+ "type": "string <uuid>",
42
+ "required": true,
43
+ "description": "Unique identifier of the occupancy associated with the charge."
44
+ }
45
+ ]
46
+ },
47
+ "responseFields": [
48
+ {
49
+ "name": "Id",
50
+ "type": "string <uuid>",
51
+ "required": false,
52
+ "description": "Unique identifier of the created charge."
53
+ }
54
+ ],
55
+ "requestSample": "{\n \"AmountDue\": \"43.12\",\n \"ChargedOn\": \"2022-02-01\",\n \"Description\": \"sample description\",\n \"GlAccountId\": \"71c5cb28-547f-11ec-bfa5-02975b268737\",\n \"OccupancyId\": \"71c5cb28-547f-11ec-bfa5-02975b268737\"\n}"
56
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "operationId": "post_charges_bulk",
3
+ "resource": "charges",
4
+ "name": "Bulk Create Charges",
5
+ "method": "POST",
6
+ "path": "/charges/bulk",
7
+ "description": "Create multiple charges in bulk.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Charge objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of Charge objects.",
20
+ "attributes": [
21
+ {
22
+ "name": "AmountDue",
23
+ "type": "string <decimal>",
24
+ "required": true,
25
+ "description": "The dollar amount of the charge."
26
+ },
27
+ {
28
+ "name": "ChargedOn",
29
+ "type": "string <date>",
30
+ "required": true,
31
+ "description": "ChargedOn dates from the past indicate an outstanding charge that has not yet been paid that is \"owed.\" ChargedOn dates in the future indicate an upcoming charge during the next monthly period."
32
+ },
33
+ {
34
+ "name": "GlAccountId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "Unique identifier of the general ledger account associated with the charge."
38
+ },
39
+ {
40
+ "name": "OccupancyId",
41
+ "type": "string <uuid>",
42
+ "required": true,
43
+ "description": "Unique identifier of the occupancy associated with the charge."
44
+ },
45
+ {
46
+ "name": "ReferenceId",
47
+ "type": "string",
48
+ "required": true,
49
+ "description": "Transient unique ID assigned by the developer. Used to reference individual charges in the bulk-creation of charges."
50
+ },
51
+ {
52
+ "name": "Description",
53
+ "type": "string",
54
+ "required": false,
55
+ "description": "A brief summary or description of the charge."
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ "responseFields": [
62
+ {
63
+ "name": "data",
64
+ "type": "array",
65
+ "required": false,
66
+ "description": "Array of accepted charge result objects."
67
+ }
68
+ ],
69
+ "requestSample": "{\n \"data\": [\n {},\n {}\n ]\n}"
70
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "operationId": "post_charges_bulk_async",
3
+ "resource": "charges",
4
+ "name": "Bulk Create Charges (Async)",
5
+ "method": "POST",
6
+ "path": "/charges/bulk/async",
7
+ "description": "Create multiple charges in bulk asynchronously. Returns a Job ID that can be used to track the status of the job via the Jobs List endpoint.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Charge objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of Charge objects.",
20
+ "attributes": [
21
+ {
22
+ "name": "AmountDue",
23
+ "type": "string <decimal>",
24
+ "required": true,
25
+ "description": "The dollar amount of the charge."
26
+ },
27
+ {
28
+ "name": "ChargedOn",
29
+ "type": "string <date>",
30
+ "required": true,
31
+ "description": "ChargedOn dates from the past indicate an outstanding charge that has not yet been paid that is \"owed.\" ChargedOn dates in the future indicate an upcoming charge during the next monthly period."
32
+ },
33
+ {
34
+ "name": "GlAccountId",
35
+ "type": "string <uuid>",
36
+ "required": true,
37
+ "description": "Unique identifier of the general ledger account associated with the charge."
38
+ },
39
+ {
40
+ "name": "OccupancyId",
41
+ "type": "string <uuid>",
42
+ "required": true,
43
+ "description": "Unique identifier of the occupancy associated with the charge."
44
+ },
45
+ {
46
+ "name": "ReferenceId",
47
+ "type": "string",
48
+ "required": true,
49
+ "description": "Transient unique ID assigned by the developer. Used to reference individual charges in the bulk-creation of charges."
50
+ },
51
+ {
52
+ "name": "Description",
53
+ "type": "string",
54
+ "required": false,
55
+ "description": "A brief summary or description of the charge."
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ "responseFields": [
62
+ {
63
+ "name": "JobId",
64
+ "type": "string <uuid>",
65
+ "required": false,
66
+ "description": "Unique identifier of the async job that can be used to track the status via the Jobs List endpoint."
67
+ }
68
+ ],
69
+ "requestSample": "{\n \"data\": [\n {},\n {}\n ]\n}"
70
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "operationId": "post_charges_chargeid_attachments",
3
+ "resource": "charges",
4
+ "name": "Create Charge Attachment",
5
+ "method": "POST",
6
+ "path": "/charges/{ChargeId}/attachments",
7
+ "description": "Upload an attachment to a charge.",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "ChargeId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The charge to which the file will be attached."
17
+ }
18
+ ],
19
+ "requestBody": {
20
+ "required": true,
21
+ "description": "Attachment object (multipart/form-data)",
22
+ "attributes": [
23
+ {
24
+ "name": "File",
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "Filename.file-extension — the file to attach to the charge."
28
+ }
29
+ ]
30
+ },
31
+ "responseFields": [
32
+ {
33
+ "name": "Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the charge attachment."
37
+ }
38
+ ],
39
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
40
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "operationId": "post_corporate_gl_accounts_bulk",
3
+ "resource": "corporate",
4
+ "name": "Bulk Create Corporate General Ledger Accounts",
5
+ "method": "POST",
6
+ "path": "/corporate/gl_accounts/bulk",
7
+ "description": "Create Corporate General Ledger Account in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Corporate General Ledger account objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of General Ledger account objects",
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 gl account in the bulk-creation of corporate gl accounts."
26
+ },
27
+ {
28
+ "name": "Name",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The user-provided name of the corporate general ledger account. This name must be unique, no duplicate record is allowed."
32
+ },
33
+ {
34
+ "name": "Type",
35
+ "type": "string",
36
+ "required": true,
37
+ "description": "The account type or category of the corporate GL account. Valid values include asset capital cash expense income liability other_expense or other_income.",
38
+ "enum": ["asset", "capital", "cash", "expense", "income", "liability", "other_expense", "other_income"]
39
+ },
40
+ {
41
+ "name": "Number",
42
+ "type": "string",
43
+ "required": false,
44
+ "description": "The user-provided number of the corporate general ledger account. This number must be unique, no duplicate record is allowed."
45
+ },
46
+ {
47
+ "name": "OffsetAccountId",
48
+ "type": "string <uuid>",
49
+ "required": false,
50
+ "description": "Unique identifier of the corporate offset account"
51
+ },
52
+ {
53
+ "name": "ParentGlAccountId",
54
+ "type": "string <uuid>",
55
+ "required": false,
56
+ "description": "Unique identifier of the parent general ledger account. If present, it indicates the parent account to which the sub-account belongs."
57
+ }
58
+ ]
59
+ }
60
+ ]
61
+ },
62
+ "responseFields": [
63
+ {
64
+ "name": "JobId",
65
+ "type": "string <uuid>",
66
+ "required": false,
67
+ "description": "Unique identifier of the bulk creation job"
68
+ }
69
+ ],
70
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
71
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "operationId": "post_gl_accounts_bulk",
3
+ "resource": "gl_accounts",
4
+ "name": "Bulk Create General Ledger Accounts",
5
+ "method": "POST",
6
+ "path": "/gl_accounts/bulk",
7
+ "description": "Create General Ledger Account in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "General Ledger account objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of General Ledger account objects",
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 gl account in the bulk-creation of gl accounts."
26
+ },
27
+ {
28
+ "name": "Name",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The user-provided name of the general ledger account. This name must be unique, no duplicate record is allowed."
32
+ },
33
+ {
34
+ "name": "Type",
35
+ "type": "string",
36
+ "required": true,
37
+ "description": "The account type or category of the GL account. Valid values include asset capital cash expense income liability other_expense or other_income.",
38
+ "enum": ["asset", "capital", "cash", "expense", "income", "liability", "other_expense", "other_income"]
39
+ },
40
+ {
41
+ "name": "Number",
42
+ "type": "string",
43
+ "required": false,
44
+ "description": "The user-provided number of the general ledger account. This number must be unique, no duplicate record is allowed."
45
+ },
46
+ {
47
+ "name": "FundAccount",
48
+ "type": "object",
49
+ "required": false,
50
+ "description": "The type of fund account. Options: Reserve (funds set aside for specific future purposes), Operating (funds set aside for regular operating expenses)"
51
+ },
52
+ {
53
+ "name": "OffsetAccountId",
54
+ "type": "string <uuid>",
55
+ "required": false,
56
+ "description": "Unique identifier of the offset account"
57
+ },
58
+ {
59
+ "name": "ParentGlAccountId",
60
+ "type": "string <uuid>",
61
+ "required": false,
62
+ "description": "Unique identifier of the parent general ledger account. If present, it indicates the parent account to which the sub-account belongs."
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ },
68
+ "responseFields": [
69
+ {
70
+ "name": "JobId",
71
+ "type": "string <uuid>",
72
+ "required": false,
73
+ "description": "Unique identifier of the async job. Can be used to track the status of the job via the Jobs List endpoint."
74
+ }
75
+ ],
76
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
77
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "operationId": "post_inspections",
3
+ "resource": "inspections",
4
+ "name": "Create Inspection",
5
+ "method": "POST",
6
+ "path": "/inspections",
7
+ "description": "Create a new inspection",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Inspection object",
14
+ "attributes": [
15
+ {
16
+ "name": "inspection",
17
+ "type": "object",
18
+ "required": false,
19
+ "description": "Inspection object",
20
+ "attributes": [
21
+ {
22
+ "name": "Name",
23
+ "type": "string",
24
+ "required": true,
25
+ "description": "The user-provided name of the inspection."
26
+ },
27
+ {
28
+ "name": "URL",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The URL link to an external page hosted by the partner with additional details about the inspection."
32
+ },
33
+ {
34
+ "name": "InspectionDate",
35
+ "type": "string <date>",
36
+ "required": true,
37
+ "description": "The date the inspection was conducted. Valid format is \"YYYY-MM-DD\" e.g. \"2025-03-25\"."
38
+ },
39
+ {
40
+ "name": "OccupancyId",
41
+ "type": "string <uuid>",
42
+ "required": false,
43
+ "description": "Unique identifier of the occupancy or association related to the inspection. Note: OccupancyId, PropertyId, and UnitId are mutually exclusive. One of the three are required, and only one of them can be provided in the request."
44
+ },
45
+ {
46
+ "name": "PropertyId",
47
+ "type": "string <uuid>",
48
+ "required": false,
49
+ "description": "Unique identifier of the property or association related to the inspection. Note: OccupancyId, PropertyId, and UnitId are mutually exclusive. One of the three are required, and only one of them can be provided in the request."
50
+ },
51
+ {
52
+ "name": "UnitId",
53
+ "type": "string <uuid>",
54
+ "required": false,
55
+ "description": "Unique identifier of the unit or association related to the inspection. Note: OccupancyId, PropertyId, and UnitId are mutually exclusive. One of the three are required, and only one of them can be provided in the request."
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ "responseFields": [
62
+ {
63
+ "name": "Id",
64
+ "type": "string <uuid>",
65
+ "required": false,
66
+ "description": "Unique identifier for the created inspection"
67
+ }
68
+ ],
69
+ "requestSample": "{\n \"inspection\": {\n \"Name\": \"Inspection Name\",\n \"URL\": \"https://example.com/inspections/54321\",\n \"InspectionDate\": \"2025-06-30\",\n \"UnitId\": \"ac00dc0a-9f44-42f7-b01f-cfb2ec92ee19\"\n }\n}"
70
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "operationId": "post_inspections_bulk",
3
+ "resource": "inspections",
4
+ "name": "Bulk Create Inspections",
5
+ "method": "POST",
6
+ "path": "/inspections/bulk",
7
+ "description": "Create Inspection in bulk",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "requestBody": {
12
+ "required": true,
13
+ "description": "Inspection objects",
14
+ "attributes": [
15
+ {
16
+ "name": "data",
17
+ "type": "array",
18
+ "required": false,
19
+ "description": "Array of Inspection objects",
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 inspection in the bulk-creation of inspections."
26
+ },
27
+ {
28
+ "name": "Name",
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "The user-provided name of the inspections."
32
+ },
33
+ {
34
+ "name": "URL",
35
+ "type": "string",
36
+ "required": true,
37
+ "description": "The URL link to an external page hosted by the partner with additional details about the inspection."
38
+ },
39
+ {
40
+ "name": "InspectionDate",
41
+ "type": "string <date>",
42
+ "required": false,
43
+ "description": "The date the inspection was conducted. Valid format is \"YYYY-MM-DD\" e.g. \"2025-03-25\". If not provided, defaults to the current date."
44
+ },
45
+ {
46
+ "name": "OccupancyId",
47
+ "type": "string <uuid>",
48
+ "required": false,
49
+ "description": "Unique identifier of the occupancy related to the inspection. Only one of OccupancyId, PropertyId, or UnitId may be specified."
50
+ },
51
+ {
52
+ "name": "PropertyId",
53
+ "type": "string <uuid>",
54
+ "required": false,
55
+ "description": "Unique identifier of the property related to the inspection. Only one of OccupancyId, PropertyId, or UnitId may be specified."
56
+ },
57
+ {
58
+ "name": "UnitId",
59
+ "type": "string <uuid>",
60
+ "required": false,
61
+ "description": "Unique identifier of the unit related to the inspection. Only one of OccupancyId, PropertyId, or UnitId may be specified."
62
+ }
63
+ ]
64
+ }
65
+ ]
66
+ },
67
+ "responseFields": [
68
+ {
69
+ "name": "JobId",
70
+ "type": "string <uuid>",
71
+ "required": false,
72
+ "description": "Unique identifier for the bulk creation job"
73
+ }
74
+ ],
75
+ "requestSample": "{\n \"data\": [\n {}\n ]\n}"
76
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "operationId": "post_inspections_inspectionid_attachments",
3
+ "resource": "inspections",
4
+ "name": "Create Inspection Attachment",
5
+ "method": "POST",
6
+ "path": "/inspections/{InspectionId}/attachments",
7
+ "description": "Upload an attachment to a inspection",
8
+ "deprecated": false,
9
+ "writeOperation": true,
10
+ "pagination": false,
11
+ "pathParams": [
12
+ {
13
+ "name": "InspectionId",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "The inspection 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 inspection attachment"
38
+ }
39
+ ],
40
+ "requestSample": "{\n \"File\": \"/path/to/file.pdf\"\n}"
41
+ }