@assetlab/mcp-server 1.25.0 → 1.26.0

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.
@@ -584,13 +584,49 @@ export function registerWriteTools(server, client) {
584
584
  country: z.string().max(200).optional().describe('Country'),
585
585
  description: z.string().optional().describe('Description'),
586
586
  square_footage: z.number().min(0).optional().describe('Square footage'),
587
- cost_per_sqft: z.number().min(0).optional().describe('Cost per square foot'),
587
+ cost_per_sqft: z.number().min(0).optional().describe('Base cost per square foot'),
588
+ additional_cost_per_sqft: z
589
+ .number()
590
+ .min(0)
591
+ .optional()
592
+ .describe('Additional cost per square foot'),
593
+ operational_cost_per_sqft: z
594
+ .number()
595
+ .min(0)
596
+ .optional()
597
+ .describe('Operational cost per square foot'),
588
598
  year_built: z.number().int().min(1800).max(2100).optional().describe('Year built'),
589
599
  contact_name: z.string().max(500).optional().describe('Primary contact name'),
590
600
  contact_email: z.string().max(500).optional().describe('Contact email'),
591
601
  contact_phone: z.string().max(50).optional().describe('Contact phone'),
592
602
  owner_landlord: z.string().max(500).optional().describe('Property owner or landlord'),
593
603
  ownership_type: z.enum(['Owned', 'Leased', 'Managed']).optional().describe('Ownership type'),
604
+ lease_start_date: z.string().max(20).optional().describe('Lease start date (YYYY-MM-DD)'),
605
+ lease_end_date: z.string().max(20).optional().describe('Lease end date (YYYY-MM-DD)'),
606
+ renewal_option: z.string().max(500).optional().describe('Lease renewal option details'),
607
+ lease_details: z.string().optional().describe('Free-text lease details / notes'),
608
+ insurance_provider: z.string().max(500).optional().describe('Insurance provider name'),
609
+ insurance_policy_number: z.string().max(200).optional().describe('Insurance policy number'),
610
+ property_manager_company: z
611
+ .string()
612
+ .max(500)
613
+ .optional()
614
+ .describe('Property management company name'),
615
+ property_manager_contact_name: z
616
+ .string()
617
+ .max(500)
618
+ .optional()
619
+ .describe('Property management contact name'),
620
+ property_manager_contact_email: z
621
+ .string()
622
+ .max(500)
623
+ .optional()
624
+ .describe('Property management contact email'),
625
+ property_manager_contact_phone: z
626
+ .string()
627
+ .max(50)
628
+ .optional()
629
+ .describe('Property management contact phone'),
594
630
  }, async (params) => {
595
631
  try {
596
632
  const result = await client.create('sites', buildBody(params));
@@ -610,13 +646,49 @@ export function registerWriteTools(server, client) {
610
646
  country: z.string().max(200).optional().describe('Country'),
611
647
  description: z.string().optional().describe('Description'),
612
648
  square_footage: z.number().min(0).optional().describe('Square footage'),
613
- cost_per_sqft: z.number().min(0).optional().describe('Cost per square foot'),
649
+ cost_per_sqft: z.number().min(0).optional().describe('Base cost per square foot'),
650
+ additional_cost_per_sqft: z
651
+ .number()
652
+ .min(0)
653
+ .optional()
654
+ .describe('Additional cost per square foot'),
655
+ operational_cost_per_sqft: z
656
+ .number()
657
+ .min(0)
658
+ .optional()
659
+ .describe('Operational cost per square foot'),
614
660
  year_built: z.number().int().min(1800).max(2100).optional().describe('Year built'),
615
661
  contact_name: z.string().max(500).optional().describe('Primary contact name'),
616
662
  contact_email: z.string().max(500).optional().describe('Contact email'),
617
663
  contact_phone: z.string().max(50).optional().describe('Contact phone'),
618
664
  owner_landlord: z.string().max(500).optional().describe('Property owner or landlord'),
619
665
  ownership_type: z.enum(['Owned', 'Leased', 'Managed']).optional().describe('Ownership type'),
666
+ lease_start_date: z.string().max(20).optional().describe('Lease start date (YYYY-MM-DD)'),
667
+ lease_end_date: z.string().max(20).optional().describe('Lease end date (YYYY-MM-DD)'),
668
+ renewal_option: z.string().max(500).optional().describe('Lease renewal option details'),
669
+ lease_details: z.string().optional().describe('Free-text lease details / notes'),
670
+ insurance_provider: z.string().max(500).optional().describe('Insurance provider name'),
671
+ insurance_policy_number: z.string().max(200).optional().describe('Insurance policy number'),
672
+ property_manager_company: z
673
+ .string()
674
+ .max(500)
675
+ .optional()
676
+ .describe('Property management company name'),
677
+ property_manager_contact_name: z
678
+ .string()
679
+ .max(500)
680
+ .optional()
681
+ .describe('Property management contact name'),
682
+ property_manager_contact_email: z
683
+ .string()
684
+ .max(500)
685
+ .optional()
686
+ .describe('Property management contact email'),
687
+ property_manager_contact_phone: z
688
+ .string()
689
+ .max(50)
690
+ .optional()
691
+ .describe('Property management contact phone'),
620
692
  }, async ({ id, ...rest }) => {
621
693
  try {
622
694
  const result = await client.update('sites', id, buildBody(rest));
@@ -4627,7 +4699,7 @@ export function registerWriteTools(server, client) {
4627
4699
  update_purchase_cost: z
4628
4700
  .boolean()
4629
4701
  .optional()
4630
- .describe("When true, overwrites the asset's purchase_cost with replacement_cost (CRV). The prior purchase cost is preserved on this assessment as previous_purchase_cost. Create-only side-effect."),
4702
+ .describe("Default OFF omit unless the user explicitly asks to update/overwrite the asset's purchase cost, or says their org treats purchase cost as the current replacement value. Recording an assessment does NOT by itself change purchase cost. When true, overwrites assets.purchase_cost with this replacement_cost (CRV); the prior value is preserved on the assessment as previous_purchase_cost (read-only). Create-only and not reversible via update — when unsure, leave it off and ask."),
4631
4703
  }, async (params) => {
4632
4704
  try {
4633
4705
  const result = await client.create('asset-condition-assessments', buildBody(params));