@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,70 @@
1
+ {
2
+ "operationId": "get_units_photos",
3
+ "resource": "units",
4
+ "name": "List All Units Photos",
5
+ "method": "GET",
6
+ "path": "/units/photos",
7
+ "description": "Returns all Multi-Family Unit photos that meet the filter criteria. For Single-Family property photos see /Properties/Photos. Photos may be attached directly to a unit or inherited from the unit's unit type — when inherited, UnitTypeId will be populated and the photo cannot be created, updated, or deleted via these endpoints.",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[UnitId]",
14
+ "type": "string <uuid>",
15
+ "required": true,
16
+ "description": "Filter by unit ID. All GET requests must include a filter for [UnitId]."
17
+ }
18
+ ],
19
+ "responseFields": [
20
+ {
21
+ "name": "data",
22
+ "type": "array",
23
+ "required": false,
24
+ "description": "Array of unit photo objects"
25
+ },
26
+ {
27
+ "name": "data[].Id",
28
+ "type": "string <uuid>",
29
+ "required": false,
30
+ "description": "Unique identifier of the photo"
31
+ },
32
+ {
33
+ "name": "data[].UnitId",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the unit associated with the photo"
37
+ },
38
+ {
39
+ "name": "data[].UnitTypeId",
40
+ "type": "string or null <uuid>",
41
+ "required": false,
42
+ "description": "Unique identifier of the unit type associated with the photo. Populated when the photo is attached to the unit type rather than directly to the unit. Null when the photo is attached directly to the unit. Photos attached to a unit type cannot be created, updated, or deleted via the unit photos endpoints."
43
+ },
44
+ {
45
+ "name": "data[].Position",
46
+ "type": "integer",
47
+ "required": false,
48
+ "description": "The position of the photo in the unit photo gallery. If multiple photos are associated with a unit, the order of the remaining photos (positions 1 and above) will not change automatically if some photos are deleted. For example, if there are photos in positions 1, 2, 3, and 4, and photos 1 and 3 are deleted, the remaining photos will retain their original positions of 2 and 4."
49
+ },
50
+ {
51
+ "name": "data[].Url",
52
+ "type": "string <uri>",
53
+ "required": false,
54
+ "description": "The public link to the photo"
55
+ },
56
+ {
57
+ "name": "data[].ContentType",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "The content type of the photo"
61
+ },
62
+ {
63
+ "name": "next_page_path",
64
+ "type": "any",
65
+ "required": false,
66
+ "description": "The URL path to the next page of responses"
67
+ }
68
+ ],
69
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/units/photos?filters[UnitId]=1abcde23-c543-456e-abc9-123456789cba' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
70
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "operationId": "get_users",
3
+ "resource": "users",
4
+ "name": "List All Users",
5
+ "method": "GET",
6
+ "path": "/users",
7
+ "description": "Returns all users 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": true,
16
+ "description": "All GET requests must include a filter for [LastUpdatedAtFrom]. Filters users by the date their details were last updated, returning only users updated at or after this date-time."
17
+ },
18
+ {
19
+ "name": "filters[PropertyId]",
20
+ "type": "string <uuid>",
21
+ "required": false,
22
+ "description": "Filters users by the unique identifier of a property."
23
+ },
24
+ {
25
+ "name": "page[number]",
26
+ "type": "integer",
27
+ "required": false,
28
+ "description": "Page number for pagination. Default is 1."
29
+ },
30
+ {
31
+ "name": "page[size]",
32
+ "type": "integer",
33
+ "required": false,
34
+ "description": "Number of results per page. Default is 1000."
35
+ }
36
+ ],
37
+ "responseFields": [
38
+ {
39
+ "name": "data",
40
+ "type": "array",
41
+ "required": false,
42
+ "description": "Array of user objects"
43
+ },
44
+ {
45
+ "name": "data[].Id",
46
+ "type": "string <uuid>",
47
+ "required": false,
48
+ "description": "Unique identifier of an AppFolio Property Manager user"
49
+ },
50
+ {
51
+ "name": "data[].Email",
52
+ "type": "string",
53
+ "required": false,
54
+ "description": "The user's email address"
55
+ },
56
+ {
57
+ "name": "data[].FirstName",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "The user's first name"
61
+ },
62
+ {
63
+ "name": "data[].LastName",
64
+ "type": "string",
65
+ "required": false,
66
+ "description": "The user's last name"
67
+ },
68
+ {
69
+ "name": "data[].UserRole",
70
+ "type": "string",
71
+ "required": false,
72
+ "description": "The system role assigned to the user that dictates most permissions"
73
+ },
74
+ {
75
+ "name": "data[].LastUpdatedAt",
76
+ "type": "string <date-time>",
77
+ "required": false,
78
+ "description": "The date the user's details were last updated"
79
+ },
80
+ {
81
+ "name": "next_page_path",
82
+ "type": "any",
83
+ "required": false,
84
+ "description": "The URL path to the next page of responses"
85
+ }
86
+ ],
87
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/users?filters[PropertyId]=bfcb95e8-d5fb-448c-b811-88d9f832e79c&filters[LastUpdatedAtFrom]=2020-12-15T16:30:46Z' \\\n --header 'Authorization: Basic {Auth}' \\\n --header 'X-AppFolio-Developer-ID: a965e7d8-a17d-11ec-b909-0242ac120002'"
88
+ }
@@ -0,0 +1,317 @@
1
+ {
2
+ "operationId": "get_vendors",
3
+ "resource": "vendors",
4
+ "name": "List All Vendors",
5
+ "method": "GET",
6
+ "path": "/vendors",
7
+ "description": "Returns all vendors 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 vendors by unique identifier"
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter vendors 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 Vendor objects"
31
+ },
32
+ {
33
+ "name": "data[].Id",
34
+ "type": "string <uuid>",
35
+ "required": false,
36
+ "description": "Unique identifier of the vendor"
37
+ },
38
+ {
39
+ "name": "data[].Tags",
40
+ "type": "Array of strings",
41
+ "required": false,
42
+ "description": "User-defined tag(s) that categorize the vendor"
43
+ },
44
+ {
45
+ "name": "data[].TaxpayerId",
46
+ "type": "string",
47
+ "required": false,
48
+ "description": "The tax identification number of the vendor. This field accepts either a Employer Identification Number (EIN), a Social Security Number (SSN), or an Individual Taxpayer Identification Number (ITIN)."
49
+ },
50
+ {
51
+ "name": "data[].TaxpayerName",
52
+ "type": "string",
53
+ "required": false,
54
+ "description": "The taxpayer name of the vendor"
55
+ },
56
+ {
57
+ "name": "data[].CompanyName",
58
+ "type": "string",
59
+ "required": false,
60
+ "description": "The display name of a vendor's company"
61
+ },
62
+ {
63
+ "name": "data[].IsCompany",
64
+ "type": "boolean",
65
+ "required": false,
66
+ "description": "Indicates whether or not the vendor identifies as a company"
67
+ },
68
+ {
69
+ "name": "data[].UseCompanyNameAsTaxpayerName",
70
+ "type": "boolean",
71
+ "required": false,
72
+ "description": "Indicates whether or not to use the company name as the taxpayer name"
73
+ },
74
+ {
75
+ "name": "data[].CustomFields",
76
+ "type": "object",
77
+ "required": false,
78
+ "description": "The custom fields for the associated entity"
79
+ },
80
+ {
81
+ "name": "data[].CheckConsolidation",
82
+ "type": "string",
83
+ "required": false,
84
+ "description": "How to consolidate checks for payment",
85
+ "enum": [
86
+ "Print 1 check for each bill",
87
+ "10 bills per check",
88
+ "All bills on single check (hide extra stub detail)",
89
+ "All bills on single check"
90
+ ]
91
+ },
92
+ {
93
+ "name": "data[].CheckStubBreakdown",
94
+ "type": "string",
95
+ "required": false,
96
+ "description": "How to break down the components of a check stub",
97
+ "enum": [
98
+ "List each bill (consolidated view)",
99
+ "List each bill detail line item (expanded view)"
100
+ ]
101
+ },
102
+ {
103
+ "name": "data[].HoldPayments",
104
+ "type": "boolean",
105
+ "required": false,
106
+ "description": "Indicates whether or not to hold payments until the work order is completed"
107
+ },
108
+ {
109
+ "name": "data[].EmailEcheckReceipt",
110
+ "type": "boolean",
111
+ "required": false,
112
+ "description": "Indicates whether or not to send a notification to the payee after an eCheck payment is made"
113
+ },
114
+ {
115
+ "name": "data[].PaymentTerms",
116
+ "type": "integer",
117
+ "required": false,
118
+ "description": "Represents the number of days the payment is due after the invoice date. A null value indicates that no payment terms were defined. A value of 0 indicates the payment is due on receipt. A value greater than 0, for example, 15, indicates the payment is due 15 days after the invoice date."
119
+ },
120
+ {
121
+ "name": "data[].UsingEomTerms",
122
+ "type": "boolean",
123
+ "required": false,
124
+ "description": "Indicates whether or not the payment terms include an end-of-month (EOM) stipulation."
125
+ },
126
+ {
127
+ "name": "data[].DefaultCheckMemo",
128
+ "type": "string",
129
+ "required": false,
130
+ "description": "The check memo that will appear when creating a bill for this vendor"
131
+ },
132
+ {
133
+ "name": "data[].DefaultGlAccountId",
134
+ "type": "string <uuid>",
135
+ "required": false,
136
+ "description": "Unique identifier of the general ledger account that will appear when creating a bill or work order for this vendor"
137
+ },
138
+ {
139
+ "name": "data[].DoNotUseForWorkOrder",
140
+ "type": "boolean",
141
+ "required": false,
142
+ "description": "Indicates whether the vendor is ineligible for work order assignments. When set to true, this vendor should not be considered for new work orders."
143
+ },
144
+ {
145
+ "name": "data[].WorkOrderAdjustment",
146
+ "type": "number <float>",
147
+ "required": false,
148
+ "description": "The percent amount to discount or markup the work order's bill. The work order adjustment is defaulted to zero percent."
149
+ },
150
+ {
151
+ "name": "data[].AdjustmentType",
152
+ "type": "string",
153
+ "required": false,
154
+ "description": "The type of adjustment, discount or markup to apply to the work order. The default value is discount.",
155
+ "enum": ["discount", "markup"]
156
+ },
157
+ {
158
+ "name": "data[].Send1099",
159
+ "type": "boolean",
160
+ "required": false,
161
+ "description": "Whether or not the vendor needs a 1099 tax form from the management company"
162
+ },
163
+ {
164
+ "name": "data[].FirstName",
165
+ "type": "string",
166
+ "required": false,
167
+ "description": "The vendor's first name"
168
+ },
169
+ {
170
+ "name": "data[].LastName",
171
+ "type": "string",
172
+ "required": false,
173
+ "description": "The vendor's last name"
174
+ },
175
+ {
176
+ "name": "data[].Address1",
177
+ "type": "string",
178
+ "required": false,
179
+ "description": "The primary street address of the vendor"
180
+ },
181
+ {
182
+ "name": "data[].Address2",
183
+ "type": "string",
184
+ "required": false,
185
+ "description": "Additional street address information pertaining to the vendor"
186
+ },
187
+ {
188
+ "name": "data[].City",
189
+ "type": "string",
190
+ "required": false,
191
+ "description": "The city where the vendor is located"
192
+ },
193
+ {
194
+ "name": "data[].State",
195
+ "type": "string",
196
+ "required": false,
197
+ "description": "The state where the vendor is located"
198
+ },
199
+ {
200
+ "name": "data[].Zip",
201
+ "type": "string",
202
+ "required": false,
203
+ "description": "The zip code where the vendor is located"
204
+ },
205
+ {
206
+ "name": "data[].CountryCode",
207
+ "type": "string",
208
+ "required": false,
209
+ "description": "The country code of the vendor (e.g. \"JP\" for Japan)"
210
+ },
211
+ {
212
+ "name": "data[].PhoneNumber",
213
+ "type": "string",
214
+ "required": false,
215
+ "description": "The vendor's primary phone number",
216
+ "deprecated": true
217
+ },
218
+ {
219
+ "name": "data[].PhoneNumbers",
220
+ "type": "Array of objects",
221
+ "required": false,
222
+ "description": "The vendor's phone numbers"
223
+ },
224
+ {
225
+ "name": "data[].Email",
226
+ "type": "string <email>",
227
+ "required": false,
228
+ "description": "The vendor's primary email address",
229
+ "deprecated": true
230
+ },
231
+ {
232
+ "name": "data[].Emails",
233
+ "type": "Array of objects",
234
+ "required": false,
235
+ "description": "The vendor's emails"
236
+ },
237
+ {
238
+ "name": "data[].CompanyURL",
239
+ "type": "string <uri>",
240
+ "required": false,
241
+ "description": "The internet address of the vendor's website"
242
+ },
243
+ {
244
+ "name": "data[].LiabilityInsuranceExpiration",
245
+ "type": "string <date>",
246
+ "required": false,
247
+ "description": "The expiration date of the vendor's liability insurance"
248
+ },
249
+ {
250
+ "name": "data[].AutoInsuranceExpiration",
251
+ "type": "string <date>",
252
+ "required": false,
253
+ "description": "The expiration date of the vendor's automobile insurance"
254
+ },
255
+ {
256
+ "name": "data[].WorkersCompExpiration",
257
+ "type": "string <date>",
258
+ "required": false,
259
+ "description": "The expiration date of the vendor's worker's compensation insurance"
260
+ },
261
+ {
262
+ "name": "data[].ContractExpiration",
263
+ "type": "string <date>",
264
+ "required": false,
265
+ "description": "The expiration date of the vendor's contract"
266
+ },
267
+ {
268
+ "name": "data[].UmbrellaInsuranceExpiration",
269
+ "type": "string <date>",
270
+ "required": false,
271
+ "description": "The expiration date of the vendor's umbrella insurance"
272
+ },
273
+ {
274
+ "name": "data[].CompliantStatus",
275
+ "type": "boolean",
276
+ "required": false,
277
+ "description": "Indicates whether or not the vendor meets compliance"
278
+ },
279
+ {
280
+ "name": "data[].NetVendorId",
281
+ "type": "string",
282
+ "required": false,
283
+ "description": "The vendor's NetVendor ID"
284
+ },
285
+ {
286
+ "name": "data[].Link",
287
+ "type": "string <uri>",
288
+ "required": false,
289
+ "description": "A link to the vendor's page in the AppFolio Property Manager"
290
+ },
291
+ {
292
+ "name": "data[].HiddenAt",
293
+ "type": "string <date-time>",
294
+ "required": false,
295
+ "description": "When the vendor was marked inactive by an AppFolio Property Manager user"
296
+ },
297
+ {
298
+ "name": "data[].LastUpdatedAt",
299
+ "type": "string <date-time>",
300
+ "required": false,
301
+ "description": "The date the vendor's details were last updated"
302
+ },
303
+ {
304
+ "name": "data[].DefaultAutoAcceptWorkOrders",
305
+ "type": "boolean",
306
+ "required": false,
307
+ "description": "Indicates whether the vendor is ineligible for auto-accept work order assignments. When set to true, this vendor will auto-accept all work orders assigned to them."
308
+ },
309
+ {
310
+ "name": "next_page_path",
311
+ "type": "any",
312
+ "required": false,
313
+ "description": "The URL path to the next page of responses"
314
+ }
315
+ ],
316
+ "requestSample": "curl --location -g \\\n --request GET 'https://api.appfolio.com/api/v0/vendors?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'"
317
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "operationId": "get_vendors_notes",
3
+ "resource": "vendors",
4
+ "name": "List All Vendors Notes",
5
+ "method": "GET",
6
+ "path": "/vendors/notes",
7
+ "description": "Returns all vendor notes that meet the filter criteria",
8
+ "deprecated": false,
9
+ "writeOperation": false,
10
+ "pagination": true,
11
+ "queryFilters": [
12
+ {
13
+ "name": "filters[VendorId]",
14
+ "type": "string <uuid>",
15
+ "required": false,
16
+ "description": "Filter vendor notes by vendor unique identifier. All GET requests must include a filter for [VendorId] or [LastUpdatedAtFrom]."
17
+ },
18
+ {
19
+ "name": "filters[LastUpdatedAtFrom]",
20
+ "type": "string <date-time>",
21
+ "required": false,
22
+ "description": "Filter vendor notes updated at or after this date-time. All GET requests must include a filter for [VendorId] or [LastUpdatedAtFrom]."
23
+ }
24
+ ],
25
+ "responseFields": [
26
+ {
27
+ "name": "data",
28
+ "type": "array",
29
+ "required": false,
30
+ "description": "Array of Vendor Note objects"
31
+ },
32
+ {
33
+ "name": "data[].Body",
34
+ "type": "string",
35
+ "required": false,
36
+ "description": "A brief informative message related to the vendor. A vendor note cannot exceed 65,535 characters."
37
+ },
38
+ {
39
+ "name": "data[].EntityId",
40
+ "type": "string <uuid>",
41
+ "required": false,
42
+ "description": "The vendor to which the note will be attached"
43
+ },
44
+ {
45
+ "name": "data[].LastUpdatedAt",
46
+ "type": "string",
47
+ "required": false,
48
+ "description": "The date the vendor 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 vendor"
55
+ },
56
+ {
57
+ "name": "data[].NoteId",
58
+ "type": "string <uuid>",
59
+ "required": false,
60
+ "description": "Unique identifier of the note associated with the vendor. 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/vendors/notes?filters[VendorId]=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
+ }