@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,99 @@
1
+ {
2
+ "operationId": "get_showings",
3
+ "resource": "showings",
4
+ "name": "List All Showings",
5
+ "method": "GET",
6
+ "path": "/showings",
7
+ "description": "Returns all showings 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 showing. 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 showings last updated at or after this date-time. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
23
+ }
24
+ ],
25
+ "responseFields": [
26
+ {
27
+ "name": "data",
28
+ "type": "array",
29
+ "required": false,
30
+ "description": "Array of Showing objects"
31
+ },
32
+ {
33
+ "name": "data[].Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the showing"
37
+ },
38
+ {
39
+ "name": "data[].AssignedUserId",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "The AppFolio Property Manager user responsible for the showing. Reference the Users endpoint for any necessary associations."
43
+ },
44
+ {
45
+ "name": "data[].LeadId",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of the lead associated with the showing. Reference the Leads endpoint for any necessary associations."
49
+ },
50
+ {
51
+ "name": "data[].UnitId",
52
+ "type": "string <uuid>",
53
+ "required": false,
54
+ "description": "Unique identifier of the unit that the interested party will be shown. Reference the Units endpoint for any necessary associations."
55
+ },
56
+ {
57
+ "name": "data[].StartAt",
58
+ "type": "string <date-time>",
59
+ "required": false,
60
+ "description": "The start time of the showing. The value must adhere to the ISO 8601 format YYYY-MM-DDThh:mm:ssZ and the default time zone is Coordinated Universal Time (UTC)."
61
+ },
62
+ {
63
+ "name": "data[].EndAt",
64
+ "type": "string <date-time>",
65
+ "required": false,
66
+ "description": "The end time of the showing. The value must adhere to the ISO 8601 format YYYY-MM-DDThh:mm:ssZ and the default time zone is Coordinated Universal Time (UTC)."
67
+ },
68
+ {
69
+ "name": "data[].Notes",
70
+ "type": "string",
71
+ "required": false,
72
+ "description": "A brief informative message about the showing"
73
+ },
74
+ {
75
+ "name": "data[].Status",
76
+ "type": "string",
77
+ "required": false,
78
+ "description": "The status of the showing",
79
+ "enum": [
80
+ "scheduled",
81
+ "canceled",
82
+ "no-show",
83
+ "confirmation pending",
84
+ "prospect confirmed",
85
+ "prospect canceled",
86
+ "canceled (unconfirmed)",
87
+ "cancel in progress",
88
+ "reschedule in progress"
89
+ ]
90
+ },
91
+ {
92
+ "name": "next_page_path",
93
+ "type": "any",
94
+ "required": false,
95
+ "description": "The URL path to the next page of responses"
96
+ }
97
+ ],
98
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/showings?page[size]=10&page[number]=2&filters[Id]=7f3230dc-8b9a-11ec-9b4b-14482e0fbe8e&filters[LastUpdatedAtFrom]=2020-12-15T16:30:46Z' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
99
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "operationId": "get_tenant_ledgers",
3
+ "resource": "tenant_ledgers",
4
+ "name": "List All Tenant Ledgers",
5
+ "method": "GET",
6
+ "path": "/tenant_ledgers",
7
+ "description": "Returns all tenant ledgers that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[PropertyId]",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Unique identifier of the property. All requests must include this filter."
17
+ },
18
+ {
19
+ "name": "filters[DateFrom]",
20
+ "type": "string <date>",
21
+ "required": true,
22
+ "description": "Start date for the ledger date range filter. All requests must include this filter."
23
+ },
24
+ {
25
+ "name": "filters[DateTo]",
26
+ "type": "string <date>",
27
+ "required": true,
28
+ "description": "End date for the ledger date range filter. All requests must include this filter."
29
+ },
30
+ {
31
+ "name": "filters[OccupancyId]",
32
+ "type": "string <uuid>",
33
+ "required": false,
34
+ "description": "Unique identifier of the occupancy to filter ledgers by."
35
+ },
36
+ {
37
+ "name": "filters[ExcludeSubsidies]",
38
+ "type": "boolean",
39
+ "required": false,
40
+ "description": "When true, excludes subsidy entries from the ledger results."
41
+ },
42
+ {
43
+ "name": "page[number]",
44
+ "type": "integer",
45
+ "required": false,
46
+ "description": "Page number for pagination. Default is 1."
47
+ },
48
+ {
49
+ "name": "page[size]",
50
+ "type": "integer",
51
+ "required": false,
52
+ "description": "Number of results per page. Default is 1000."
53
+ }
54
+ ],
55
+ "responseFields": [
56
+ {
57
+ "name": "data",
58
+ "type": "array",
59
+ "required": false,
60
+ "description": "Array of TenantLedger objects"
61
+ },
62
+ {
63
+ "name": "data[].OccupancyId",
64
+ "type": "string <uuid>",
65
+ "required": false,
66
+ "description": "Unique identifier of the occupancy associated with the ledger"
67
+ },
68
+ {
69
+ "name": "data[].Ledger",
70
+ "type": "array",
71
+ "required": false,
72
+ "description": "Array of ledger data. Contains the charges, payments, and credits for the occupancy specified by the OccupancyId."
73
+ },
74
+ {
75
+ "name": "next_page_path",
76
+ "type": "any",
77
+ "required": false,
78
+ "description": "The URL path to the next page of responses"
79
+ }
80
+ ],
81
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/tenant_ledgers?filters[DateFrom]=2020-12-15&filters[DateTo]=2020-12-16&filters[PropertyId]=1abcde23-c543-456e-abc9-123456789cee&filters[ExcludeSubsidies]=false&filters[OccupancyId]=8rbcde234-c543-456e-abc9-123456789cee' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
82
+ }
@@ -0,0 +1,273 @@
1
+ {
2
+ "operationId": "get_tenants",
3
+ "resource": "tenants",
4
+ "name": "List All Tenants",
5
+ "method": "GET",
6
+ "path": "/tenants",
7
+ "description": "Returns all tenants 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 tenant unique identifier"
17
+ },
18
+ {
19
+ "name": "filters[UnitId]",
20
+ "type": "string <uuid>",
21
+ "required": false,
22
+ "description": "Filter by unit unique identifier. Multiple values should be separated by commas."
23
+ },
24
+ {
25
+ "name": "filters[MoveInOnFrom]",
26
+ "type": "string <date-time>",
27
+ "required": false,
28
+ "description": "Filter tenants by move-in date (from)"
29
+ },
30
+ {
31
+ "name": "filters[LastUpdatedAtFrom]",
32
+ "type": "string <date-time>",
33
+ "required": false,
34
+ "description": "Filter tenants updated at or after this date-time. All GET requests must include a filter for [Id] (if available), or [LastUpdatedAtFrom]."
35
+ },
36
+ {
37
+ "name": "filters[Status]",
38
+ "type": "string",
39
+ "required": false,
40
+ "description": "Filter the results based on one or more statuses. Multiple values should be separated by commas.",
41
+ "enum": ["Current", "Past", "Future", "Evict", "Notice"]
42
+ }
43
+ ],
44
+ "responseFields": [
45
+ {
46
+ "name": "data",
47
+ "type": "array",
48
+ "required": false,
49
+ "description": "Array of tenant objects"
50
+ },
51
+ {
52
+ "name": "data[].Id",
53
+ "type": "string <uuid>",
54
+ "required": false,
55
+ "description": "Unique identifier of the tenant"
56
+ },
57
+ {
58
+ "name": "data[].OccupancyId",
59
+ "type": "string <uuid>",
60
+ "required": false,
61
+ "description": "Unique Identifier of an occupancy of one or more tenants"
62
+ },
63
+ {
64
+ "name": "data[].UnitId",
65
+ "type": "string <uuid>",
66
+ "required": false,
67
+ "description": "The unit the tenant occupies"
68
+ },
69
+ {
70
+ "name": "data[].PropertyId",
71
+ "type": "string <uuid>",
72
+ "required": false,
73
+ "description": "The property with the unit occupied by the tenant"
74
+ },
75
+ {
76
+ "name": "data[].FirstName",
77
+ "type": "string",
78
+ "required": false,
79
+ "description": "The tenant's first name"
80
+ },
81
+ {
82
+ "name": "data[].MiddleName",
83
+ "type": "string",
84
+ "required": false,
85
+ "description": "The tenant's middle name"
86
+ },
87
+ {
88
+ "name": "data[].LastName",
89
+ "type": "string",
90
+ "required": false,
91
+ "description": "The tenant's last name"
92
+ },
93
+ {
94
+ "name": "data[].BirthDate",
95
+ "type": "string <date>",
96
+ "required": false,
97
+ "description": "The tenant's birthdate"
98
+ },
99
+ {
100
+ "name": "data[].SocialSecurityNumber",
101
+ "type": "string",
102
+ "required": false,
103
+ "description": "The tenant's social security number"
104
+ },
105
+ {
106
+ "name": "data[].Link",
107
+ "type": "string <uri>",
108
+ "required": false,
109
+ "description": "A link to the tenant's page in the AppFolio Property manager"
110
+ },
111
+ {
112
+ "name": "data[].CompanyName",
113
+ "type": "string",
114
+ "required": false,
115
+ "description": "The display name of the tenant's company"
116
+ },
117
+ {
118
+ "name": "data[].CurrentRent",
119
+ "type": "number <float>",
120
+ "required": false,
121
+ "description": "The amount the tenant currently pays for rent"
122
+ },
123
+ {
124
+ "name": "data[].Status",
125
+ "type": "string",
126
+ "required": false,
127
+ "description": "The status of the tenant",
128
+ "enum": ["Current", "Past", "Future", "Evict", "Notice"]
129
+ },
130
+ {
131
+ "name": "data[].Addresses",
132
+ "type": "array",
133
+ "required": false,
134
+ "description": "The tenant's address(es)"
135
+ },
136
+ {
137
+ "name": "data[].PhoneNumber",
138
+ "type": "string",
139
+ "required": false,
140
+ "description": "The tenant's primary phone number",
141
+ "deprecated": true
142
+ },
143
+ {
144
+ "name": "data[].PhoneNumbers",
145
+ "type": "array",
146
+ "required": false,
147
+ "description": "The tenant's phone number(s)"
148
+ },
149
+ {
150
+ "name": "data[].Email",
151
+ "type": "string <email>",
152
+ "required": false,
153
+ "description": "The tenant's primary email address",
154
+ "deprecated": true
155
+ },
156
+ {
157
+ "name": "data[].Emails",
158
+ "type": "array",
159
+ "required": false,
160
+ "description": "The tenant's emails"
161
+ },
162
+ {
163
+ "name": "data[].MoveInOn",
164
+ "type": "string <date>",
165
+ "required": false,
166
+ "description": "The date the tenant physically started or will start occupancy. Dictates whether the \"future\" or \"current\" option is displayed in the status field."
167
+ },
168
+ {
169
+ "name": "data[].MoveOutOn",
170
+ "type": "string <date>",
171
+ "required": false,
172
+ "description": "The date the tenant physically ended or will end occupancy. Dictates whether the \"notice\" or \"past\" option is displayed in the status field."
173
+ },
174
+ {
175
+ "name": "data[].OccupancyCustomFields",
176
+ "type": "object",
177
+ "required": false,
178
+ "description": "The custom fields for the associated entity"
179
+ },
180
+ {
181
+ "name": "data[].RentalApplicationId",
182
+ "type": "string <uuid>",
183
+ "required": false,
184
+ "description": "Unique identifier for a tenant-submitted rental application"
185
+ },
186
+ {
187
+ "name": "data[].TenantType",
188
+ "type": "string",
189
+ "required": false,
190
+ "description": "The type of tenant",
191
+ "enum": ["Financially Responsible", "Other Occupant", "Co-signer"]
192
+ },
193
+ {
194
+ "name": "data[].PrimaryTenant",
195
+ "type": "boolean",
196
+ "required": false,
197
+ "description": "Indicates whether or not the tenant is the primary leaseholder for the occupancy"
198
+ },
199
+ {
200
+ "name": "data[].LastLeaseRenewal",
201
+ "type": "string <date>",
202
+ "required": false,
203
+ "description": "The date the last lease renewal agreement was started"
204
+ },
205
+ {
206
+ "name": "data[].LeaseSignedDate",
207
+ "type": "string <date>",
208
+ "required": false,
209
+ "description": "The date the lease was executed by the tenant"
210
+ },
211
+ {
212
+ "name": "data[].LeaseStartDate",
213
+ "type": "string <date>",
214
+ "required": false,
215
+ "description": "The day the lease agreement starts"
216
+ },
217
+ {
218
+ "name": "data[].LeaseEndDate",
219
+ "type": "string <date>",
220
+ "required": false,
221
+ "description": "The last day of the lease agreement"
222
+ },
223
+ {
224
+ "name": "data[].IsMonthlyLease",
225
+ "type": "boolean",
226
+ "required": false,
227
+ "description": "Indicates whether the tenant is currently on a month-to-month lease"
228
+ },
229
+ {
230
+ "name": "data[].NextRentIncrease",
231
+ "type": "string <date>",
232
+ "required": false,
233
+ "description": "The date of the tenant is eligible for a rent increase"
234
+ },
235
+ {
236
+ "name": "data[].Pets",
237
+ "type": "array",
238
+ "required": false,
239
+ "description": "Contains details about the tenant's pet(s)"
240
+ },
241
+ {
242
+ "name": "data[].Vehicles",
243
+ "type": "array",
244
+ "required": false,
245
+ "description": "Contains details about the tenant's vehicle(s)"
246
+ },
247
+ {
248
+ "name": "data[].Tags",
249
+ "type": "Array of strings",
250
+ "required": false,
251
+ "description": "User-defined tag(s) that categorize the tenant"
252
+ },
253
+ {
254
+ "name": "data[].HiddenAt",
255
+ "type": "string <date-time>",
256
+ "required": false,
257
+ "description": "When the tenant was placed into an inactive state by an AppFolio Property Manager user"
258
+ },
259
+ {
260
+ "name": "data[].LastUpdatedAt",
261
+ "type": "string <date-time>",
262
+ "required": false,
263
+ "description": "The date the tenant's details were last updated"
264
+ },
265
+ {
266
+ "name": "next_page_path",
267
+ "type": "any",
268
+ "required": false,
269
+ "description": "The URL path to the next page of responses"
270
+ }
271
+ ],
272
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/tenants?filters[Id]=1abcde23-c543-456e-abc9-123456789cba&filters[UnitId]=1abcde23-c543-456e-abc9-123456789cba,234abcde-c543-456e-abc9-123456789abc&filters[MoveInOnFrom]=2020-12-15T16:30:46Z&filters[LastUpdatedAtFrom]=2020-12-15T16:30:46Z&filters[Status]=Current' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
273
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "operationId": "get_tenants_notes",
3
+ "resource": "tenants",
4
+ "name": "List All Tenants Notes",
5
+ "method": "GET",
6
+ "path": "/tenants/notes",
7
+ "description": "Returns all tenant notes that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[TenantId]",
14
+ "type": "string <uuid>",
15
+ "required": false,
16
+ "description": "Filter by tenant unique identifier. All GET requests must include a filter for [TenantId] or [LastUpdatedAtFrom]."
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter tenant notes updated at or after this date-time. All GET requests must include a filter for [TenantId] or [LastUpdatedAtFrom]."
23
+ }
24
+ ],
25
+ "responseFields": [
26
+ {
27
+ "name": "data",
28
+ "type": "array",
29
+ "required": false,
30
+ "description": "Array of tenant note objects"
31
+ },
32
+ {
33
+ "name": "data[].Body",
34
+ "type": "string",
35
+ "required": false,
36
+ "description": "A brief informative message about the tenant note. A tenant note cannot exceed 63,535 characters."
37
+ },
38
+ {
39
+ "name": "data[].EntityId",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "The tenant to which the note will be attached"
43
+ },
44
+ {
45
+ "name": "data[].LastUpdatedAt",
46
+ "type": "string",
47
+ "required": false,
48
+ "description": "The date the tenant note's details were last updated"
49
+ },
50
+ {
51
+ "name": "data[].Id",
52
+ "type": "string <uuid>",
53
+ "required": false,
54
+ "description": "Unique identifier of the note associated with the tenant"
55
+ },
56
+ {
57
+ "name": "data[].NoteId",
58
+ "type": "string <uuid>",
59
+ "required": false,
60
+ "description": "Unique identifier of the note associated with the tenant. Deprecated in favor of Id.",
61
+ "deprecated": true
62
+ },
63
+ {
64
+ "name": "next_page_path",
65
+ "type": "any",
66
+ "required": false,
67
+ "description": "The URL path to the next page of responses"
68
+ }
69
+ ],
70
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/tenants/notes?filters[TenantId]=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'"
71
+ }