{"availableMcpServers":[{"name":"Address Validation API","description":"Check if an address is valid.","tools":[{"name":"Get Geo Address","description":"Geocodes an address using Google Maps Geocoding API. Takes a street address or ZIP code and returns geocoded address suggestions. Uses optional city, state, and country MCP properties to streamline search when provided.","methodName":"getGeoAddress","params":[{"name":"street","description":"Street address or ZIP code to geocode.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"address-validation-api","properties":[{"name":"country","propertyKey":"country","description":"Default country for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"states","propertyKey":"states","description":"Default states to search for for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"type":{"_def":{"values":["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","propertyKey":"city","description":"Default city for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"Genesys Cloud API","description":"Interact with Genesys Cloud for call handling, conversation management, and participant attribute management.","tools":[{"name":"Forward To Agent","description":"Forward the current call to a human agent. Automatically saves session data to Genesys and initiates conversation stitching.","methodName":"forwardToAgent","params":[{"name":"escalationReason","description":"Reason for escalating to human agent","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"summary","description":"Summary of the interaction so far","required":true,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Get Appointment Slots","description":"Retrieves available appointment slots from CertaPro by zip code. Returns a list of available time slots with human-readable date, day, and time information. Optionally filter to only show slots within the next N days.","methodName":"getAppointmentSlots","params":[{"name":"zipCode","description":"Zip code to search for available appointment slots","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"numDays","description":"Number of days from now to include available slots (e.g. 7 for next 7 days)","required":true,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Submit Lead","description":"Submits a new lead to CertaPro with customer information, job details, and selected appointment. Returns a confirmation number on success.","methodName":"submitLead","params":[{"name":"firstName","description":"Customer's first name","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastName","description":"Customer's last name","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phoneNumber","description":"Customer's phone number","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"streetAddress","description":"Street address for the job","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","description":"City for the job location","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"state","description":"State for the job location","required":true,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zipcode","description":"Zip code for the job location","required":true,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"emailAddress","description":"Customer's email address","required":true,"index":7,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobType","description":"Type of painting job: Interior, Exterior, or Both","required":true,"index":8,"schema":{"_def":{"values":["Interior","Exterior","Both"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}}},{"name":"notes","description":"Additional notes about the job","required":true,"index":9,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"appointmentId","description":"ID of the selected appointment slot from getAppointmentSlots","required":true,"index":10,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"genesys-cloud","properties":[{"name":"pollingIntervalMs","propertyKey":"pollingIntervalMs","description":"Polling interval in milliseconds when monitoring for new conversations (default: 2000).","schema":{"_def":{"innerType":{"_def":{"checks":[{"kind":"min","value":500,"inclusive":true},{"kind":"max","value":30000,"inclusive":true}],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"pollingTimeoutMs","propertyKey":"pollingTimeoutMs","description":"Maximum time to poll for new conversations in milliseconds (default: 60000).","schema":{"_def":{"innerType":{"_def":{"checks":[{"kind":"min","value":5000,"inclusive":true},{"kind":"max","value":300000,"inclusive":true}],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"transferTargetNumber","propertyKey":"transferTargetNumber","description":"Default target number for call transfers to human agents.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"certaproLeadSource","propertyKey":"certaproLeadSource","description":"Lead source identifier for CertaPro lead submissions.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"Housecall v1 API","description":"Interact with selected Housecall v1 endpoints (customers, jobs).","tools":[{"name":"Get Customer","description":"Retrieve a customer by ID from Housecall.","methodName":"getCustomer","params":[{"name":"id","description":"The UUID of the customer to retrieve","required":true,"index":0,"schema":{"_def":{"checks":[{"kind":"uuid"}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Search Customers By Phone","description":"Find existing customers using a phone number provided during the call.","methodName":"searchCustomersByPhone","params":[{"name":"phone","description":"Phone number (partial or full) used to search","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Find Or Create Customer","description":"Lookup by phone and create if not found (returns the single customer record).","methodName":"findOrCreateCustomer","params":[{"name":"last_name","description":"Optional last name","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"first_name","description":"Optional first name","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone number","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"List Available Estimate Slots","description":"Return available estimate slots for the given date with bookable employees.","methodName":"listAvailableEstimateSlots","params":[{"name":"date","description":"Date (YYYY-MM-DD) in EST","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Book Estimate","description":"Create and schedule an estimate with required last name, free estimate line item, bookable employees, and call summary note.","methodName":"bookEstimate","params":[{"name":"call_summary","description":"A Detailed summary of what was discussed during the call","required":true,"index":11,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"description","description":"Short description","required":false,"index":10,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"end_time","description":"End time (ISO8601 EST 2hr block)","required":true,"index":9,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"start_time","description":"Start time (ISO8601 EST 2hr block)","required":true,"index":8,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"country","description":"Country code","required":false,"index":7,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zip","description":"Postal code","required":true,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"state","description":"State/Province","required":true,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","description":"City","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"street","description":"Street address","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"last_name","description":"Last name (required)","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"first_name","description":"First name","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"housecall-v1","properties":[{"name":"apiKey","propertyKey":"apiKey","description":"Housecall API key for Authorization header","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"callHandlerEmails","propertyKey":"callHandlerEmails","description":"Emails of employees who will handle calls(comma-separated)","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"slotSizeHours","propertyKey":"slotSizeHours","description":"Duration of each estimate slot in hours (default: 2)","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"bufferMinutes","propertyKey":"bufferMinutes","description":"Buffer time in minutes to add after each booking (default: 0)","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"HubSpot CRM API","description":"Interact with HubSpot CRM for contact management and appointment scheduling.","tools":[{"name":"Create Contact","description":"Create a new contact in HubSpot CRM with contact information.","methodName":"createContact","params":[{"name":"jobtitle","description":"Contact's job title","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"company","description":"Contact's company name","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Contact's phone number","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastname","description":"Contact's last name","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"firstname","description":"Contact's first name","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Contact's email address","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Get Contact","description":"Retrieve a contact by ID or email from HubSpot.","methodName":"getContact","params":[{"name":"email","description":"Contact's email address","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"contactId","description":"HubSpot contact ID","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Search Contacts","description":"Search for contacts in HubSpot using various criteria.","methodName":"searchContacts","params":[{"name":"limit","description":"Maximum number of results","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Search by phone number","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastname","description":"Search by last name","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"firstname","description":"Search by first name","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Search by email","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Get Meeting Booking Info","description":"Get booking information and availability for a meeting link.","methodName":"getMeetingBookingInfo","params":[{"name":"monthOffset","description":"Months forward from current month","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timezone","description":"Timezone (e.g., 'America/New_York') MUST BE IN PROPER TZ DATABASE FORMAT","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Get Available Time Slots","description":"Get human-readable available time slots for booking meetings.","methodName":"getMeetingAvailability","params":[{"name":"days","description":"Number of days to look ahead (default: 14)","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timezone","description":"Timezone (e.g., 'America/New_York')","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Book Meeting Slot","description":"Book a meeting using a time slot ID from the availability results.","methodName":"bookMeeting","params":[{"name":"locale","description":"Locale (e.g., 'en-us')","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timezone","description":"Timezone","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Attendee email","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastName","description":"Attendee last name","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"firstName","description":"Attendee first name","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timeSlotId","description":"Time slot ID from availability results","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Create Note","description":"Create a note in HubSpot and associate it with contacts.","methodName":"createNote","params":[{"name":"contactIds","description":"Contact IDs to associate with","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"type":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"noteBody","description":"Content of the note","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Test Connection","description":"Test the HubSpot API connection and authentication.","methodName":"testConnection","params":[],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"hubspot","properties":[{"name":"accessToken","propertyKey":"accessToken","description":"HubSpot Private App Access Token for API authentication","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"meetingSlug","propertyKey":"meetingSlug","description":"HubSpot meeting link slug (e.g., 'jdoe') for scheduling operations","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"Outreachgenius Calendar","description":"Get and book slots via Outreachgenius","tools":[{"name":"Get Available Slots","description":"Return available Cronofy slots for an eventId (mapped via project/zip if provided)","methodName":"getAvailableSlots","params":[{"name":"zipCode","description":"Zip code of the customer","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timezone","description":"Timezone","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Book Slot","description":"Book a Cronofy calendar slot for an event","methodName":"bookSlot","params":[{"name":"timezone","description":"Timezone","required":false,"index":8,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"cname","description":"Company/name","required":false,"index":7,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastName","description":"Last name","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zipCode","description":"Zip code of the customer","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Phone number","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"firstName","description":"First name","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"leadEmail","description":"Lead email","required":true,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Attendee email","required":true,"index":1,"schema":{"_def":{"checks":[{"kind":"email"}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"slotId","description":"Base64 encoded slot ID from getAvailableSlots","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"Outreachgenius","properties":[]},{"name":"Public Holiday API","description":"Check if today is a public holiday.","tools":[{"name":"holiday-check-v1","description":"Checks if today is a public holiday in the given timezone. Returns an object where success is true and the message contains the holiday name (or 'Specified By Date') if it is a holiday. If it is not a holiday, success is false and the message provides the reason or status.","methodName":"isPublicHoliday","params":[{"name":"dateToCheck","description":"The date to check for a public holiday in YYYY-MM-DD format","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"public-holiday-api","properties":[{"name":"timezone","propertyKey":"timezone","description":"The timezone applied when identifying holidays","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}}},{"name":"holidaynames","propertyKey":"holidaynames","description":"List of holiday names to check for. (e.g. ['New Year's Day', 'Christmas Day'])","schema":{"_def":{"type":{"_def":{"values":["New Year's Day","Easter Sunday","Memorial Day","Labor Day","Independence Day","Thanksgiving Day","Day after Thanksgiving Day","Christmas Eve","Christmas Day"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"holidaydates","propertyKey":"holidaydates","description":"Comma-separated list of holiday dates to check for.(e.g 2025-11-12, 2025-12-25)","schema":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"Sample API","description":"This is a sample MCP API.","tools":[{"name":"Sample Tool","description":"This is a sample tool within the Sample API.","methodName":"sampleTool","params":[{"name":"param1","description":"This is a sample parameter.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"Counter Tool","description":"This tool increments a counter stored in the session.","methodName":"counterTool","params":[],"outputSchema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"id":"sample-api","properties":[{"name":"sampleProperty","propertyKey":"sampleProperty","description":"This is a sample property.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"ServiceMinder API","description":"Interact with ServiceMinder for contact management, appointment booking, and scheduling - focused on receptionist workflows.","tools":[{"name":"Locate Contact","description":"Search for existing contacts by name, phone, email, or address. Essential for identifying callers.","methodName":"locateContact","params":[{"name":"limit","description":"Maximum number of results to return","required":false,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"addressSearch","description":"Search by address","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"emailSearch","description":"Search by email address","required":false,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phoneSearch","description":"Search by phone number","required":false,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"nameSearch","description":"Search by customer name","required":false,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Add or Update Contact","description":"Create a new contact or update existing one. Use when customer information needs to be added or modified.","methodName":"addUpdateContact","params":[{"name":"campaign","description":"Marketing campaign","required":false,"index":10,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"channel","description":"Lead source channel","required":false,"index":9,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zip","description":"ZIP code","required":false,"index":8,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"state","description":"State","required":false,"index":7,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","description":"City","required":false,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address2","description":"Apartment/unit number","required":false,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address1","description":"Street address","required":false,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"company","description":"Company name","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Email address","required":false,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Primary phone number","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Customer's full name","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Add Note to Contact","description":"Add a note to a customer's record. Useful for call logs and follow-up information.","methodName":"addNoteToContact","params":[{"name":"noteBody","description":"Content of the note","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"noteTitle","description":"Title of the note","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"contactId","description":"Contact ID to add note to","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Search Available Slots","description":"Find available appointment slots for scheduling. Essential for booking appointments.","methodName":"searchAvailableSlots","params":[{"name":"slotWindowDays","description":"Number of days to search ahead","required":false,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timeframe","description":"Preferred time (morning, afternoon, evening)","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"searchDate","description":"Date to search from (YYYY-MM-DD)","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"duration","description":"Duration in minutes","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"contactId","description":"Customer's contact ID","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Book Appointment","description":"Book a confirmed appointment for a customer. Use after finding available slots.","methodName":"bookAppointment","params":[{"name":"quantity","description":"Quantity of service","required":false,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"serviceName","description":"Name of the service (uses default if not provided)","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"notes","description":"Additional notes for the appointment","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"duration","description":"Duration in minutes","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"targetDate","description":"Appointment date and time (YYYY-MM-DD HH:MM)","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"contactId","description":"Customer's contact ID","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"Log Call","description":"Log details of a phone call interaction.","methodName":"logCall","params":[{"name":"callDetails","description":"Details of the call","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"length","description":"Call duration in minutes","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}}],"id":"serviceminder","properties":[{"name":"apiKey","propertyKey":"apiKey","description":"ServiceMinder API key for authentication","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"serviceType","propertyKey":"serviceType","description":"Default service type/name for booking appointments","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"serviceAgentEmails","propertyKey":"serviceAgentEmails","description":"Comma-separated list of service agent emails to book appointments with","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"CertaPro API","description":"CertaPro calendar and lead management API for scheduling painting estimates and appointments via Cronofy integration.","tools":[{"name":"Get Events","description":"Retrieves available calendar events/slots filtered by the configured filterName. Events are filtered to only show slots where the summary matches the filter (e.g., \"ALL\" for available slots).","methodName":"getEvents","params":[{"name":"zipCode","description":"Zip code of the customer","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Event","description":"Books/updates a calendar event with customer information. Takes an event_uid from the available slots and updates it with customer details.","methodName":"updateEvent","params":[{"name":"notes","description":"Additional notes","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Service address","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zipCode","description":"Zip code of the customer","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone number","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"prospectName","description":"Full name of the prospect/customer","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Customer email address","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"event_uid","description":"The event_uid of the slot to book (from getEvents)","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"certapro","properties":[{"name":"timeZone","propertyKey":"timeZone","description":"Timezone for date/time operations.","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"filterName","propertyKey":"filterName","description":"Name to filter calendar events by (e.g., 'ALL' for all available slots).","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"filterMode","propertyKey":"filterMode","description":"How to match filterName: 'equal' for exact match, 'included' for contains match.","schema":{"_def":{"innerType":{"_def":{"values":["equal","included"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestStartMessage","propertyKey":"toolRequestStartMessage","description":"Comma-separated messages spoken when a tool call starts (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestCompleteMessage","propertyKey":"toolRequestCompleteMessage","description":"Comma-separated messages spoken when a tool call completes (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestFailedMessage","propertyKey":"toolRequestFailedMessage","description":"Comma-separated messages spoken when a tool call fails (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestResponseDelayedMessage","propertyKey":"toolRequestResponseDelayedMessage","description":"Comma-separated messages spoken when a tool call is delayed (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"CertaPro V2 API","description":"CertaPro calendar and lead management API for scheduling painting estimates and appointments via Cronofy integration.","tools":[{"name":"Get Events","description":"Retrieves available calendar events/slots filtered by the configured filterName. Events are filtered to only show slots where the summary matches the filter (e.g., \"ALL\" for available slots).","methodName":"getEvents","params":[{"name":"zipCode","description":"Zip code of the customer","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Event","description":"Books/updates a calendar event with customer information. Takes an event_uid from the available slots and updates it with customer details.","methodName":"updateEvent","params":[{"name":"event_uid","description":"The event_uid of the slot to book (from getEvents)","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Customer email address","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"prospectName","description":"Full name of the prospect/customer","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone number","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zipCode","description":"Zip code of the customer","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Service address","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"notes","description":"Additional notes","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"certaprov2","properties":[{"name":"timeZone","propertyKey":"timeZone","description":"Timezone for date/time operations.","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}}},{"name":"filterName","propertyKey":"filterName","description":"Name to filter calendar events by (e.g., 'ALL' for all available slots).","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"filterMode","propertyKey":"filterMode","description":"How to match filterName: 'equal' for exact match, 'included' for contains match.","schema":{"_def":{"innerType":{"_def":{"values":["equal","included"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"eventId","propertyKey":"eventId","description":"The event ID to use when querying calendar events from the event table.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestStartMessage","propertyKey":"toolRequestStartMessage","description":"Comma-separated messages spoken when a tool call starts (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestCompleteMessage","propertyKey":"toolRequestCompleteMessage","description":"Comma-separated messages spoken when a tool call completes (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestFailedMessage","propertyKey":"toolRequestFailedMessage","description":"Comma-separated messages spoken when a tool call fails (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestResponseDelayedMessage","propertyKey":"toolRequestResponseDelayedMessage","description":"Comma-separated messages spoken when a tool call is delayed (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"CertaPro V3 API","description":"CertaPro calendar and lead management API for scheduling painting estimates and appointments via Cronofy integration.","tools":[{"name":"Get Events","description":"Retrieves available calendar slots by finding teams matching the zip code and team type, then filtering each calendar's events using its configured filter rules.","methodName":"getEvents","params":[{"name":"zipCode","description":"Zip code of the customer. Falls back to the configured default zip code if not provided.","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"teamType","description":"Team type (residential or commercial). Falls back to the configured default team type if not provided.","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"values":["residential","commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Event","description":"Books/updates a calendar event with customer information. Takes an event_uid from the available slots and updates it with customer details.","methodName":"updateEvent","params":[{"name":"notes","description":"Additional notes","required":false,"index":7,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Service address","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"teamType","description":"Team type (residential or commercial). Falls back to the configured default team type if not provided.","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"values":["residential","commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"zipCode","description":"Zip code of the customer","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone number","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"prospectName","description":"Full name of the prospect/customer","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Customer email address","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"event_uid","description":"The event_uid of the slot to book (from getEvents)","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"certaprov3","properties":[{"name":"timeZone","propertyKey":"timeZone","description":"Timezone for date/time operations.","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}}},{"name":"defaultZipCode","propertyKey":"defaultZipCode","description":"Optional default zip code used when no zip code is provided by the caller.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"useZipPrefix","propertyKey":"useZipPrefix","description":"When 'true', matches zip codes by prefix (e.g. team zip 'R3C' matches caller zip 'R3C 3G4'). When 'false', requires exact match.","schema":{"_def":{"innerType":{"_def":{"values":["true","false"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"defaultTeamType","propertyKey":"defaultTeamType","description":"Optional default team type used when no team type is provided by the caller.","schema":{"_def":{"innerType":{"_def":{"values":["residential","commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestStartMessage","propertyKey":"toolRequestStartMessage","description":"Comma-separated messages spoken when a tool call starts (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestCompleteMessage","propertyKey":"toolRequestCompleteMessage","description":"Comma-separated messages spoken when a tool call completes (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestFailedMessage","propertyKey":"toolRequestFailedMessage","description":"Comma-separated messages spoken when a tool call fails (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestResponseDelayedMessage","propertyKey":"toolRequestResponseDelayedMessage","description":"Comma-separated messages spoken when a tool call is delayed (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"PSA API","description":"SOAP-based API for PSA (Canam) system integration - job management and more.","tools":[{"name":"Get Job","description":"Retrieve job details by ID from PSA system.","methodName":"getJob","params":[{"name":"jobId","description":"The ID of the job to retrieve","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Company","description":"Retrieve company details by ID from PSA system.","methodName":"getCompany","params":[{"name":"companyId","description":"The ID of the company to retrieve","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Contact","description":"Retrieve contact details by ID from PSA system.","methodName":"getContact","params":[{"name":"contactId","description":"The ID of the contact to retrieve","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Add Company","description":"Create a new company in PSA system with primary site and optional contact info.","methodName":"addCompany","params":[{"name":"phone","description":"Phone number","required":false,"index":9,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Email address","required":false,"index":8,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"postalCode","description":"Postal/ZIP code","required":false,"index":7,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"country","description":"Country","required":false,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"siteName","description":"Site name","required":true,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"region","description":"Province/State","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","description":"City","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Street address","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"companyType","description":"Company type: CUSTOMER=1, VENDOR=2","required":true,"index":1,"schema":{"_def":{"values":{"1":"CUSTOMER","2":"VENDOR","CUSTOMER":1,"VENDOR":2},"typeName":"ZodNativeEnum"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Company name","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Add Contact","description":"Create a new contact in PSA system associated with the configured company.","methodName":"addContact","params":[{"name":"phone","description":"Phone number of the contact","required":false,"index":10,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Email address of the contact","required":false,"index":9,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"subregion","description":"County/Subregion of the contact","required":false,"index":8,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"postalCode","description":"Postal/ZIP code of the contact","required":false,"index":7,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"country","description":"Country of the contact","required":false,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"title","description":"Title of the contact (e.g., Doctor, Mr., Mrs.)","required":false,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"region","description":"Province/State of the contact","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","description":"City of the contact","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Street address of the contact","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"lastName","description":"Last name of the contact","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"firstName","description":"First name of the contact","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Add Job","description":"Create a new job in PSA system. Only name is required.","methodName":"addJob","params":[{"name":"siteName","description":"Site name","required":false,"index":6,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"siteRegion","description":"Province/State","required":false,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"siteCity","description":"City","required":false,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"siteAddress","description":"Street address","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"contactId","description":"Contact ID to link to the job","required":false,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"buildingType","description":"Building type (e.g., 'Residential', 'Commercial')","required":false,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Job name","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"psa","properties":[{"name":"apiKey","propertyKey":"apiKey","description":"PSA API Key received from support@canamsys.com when customer approves integration","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"schemaID","propertyKey":"schemaID","description":"Schema ID received from support@canamsys.com when customer approves integration","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"syncType","propertyKey":"syncType","description":"Constant value signifying the integration that is sending the request","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"loginServiceUrl","propertyKey":"loginServiceUrl","description":"Login Service URL for PSA (e.g., https://beta.psarcweb.com/LoginService/LoginService.svc)","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"companyId","propertyKey":"companyId","description":"Company ID for the PSA integration","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"ServiceTitan API","description":"This is the ServiceTitan MCP API.","tools":[{"name":"Get Campaigns","description":"Retrieves all active campaigns from ServiceTitan.","methodName":"getCampaignsPublic","params":[],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Business Units","description":"Retrieves all active business units from ServiceTitan.","methodName":"getBusinessUnitsPublic","params":[],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Job Types","description":"Retrieves all active job types from ServiceTitan.","methodName":"getJobTypesPublic","params":[],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Geo Address","description":"Geocodes an address using Google Maps Geocoding API. Takes a street address or ZIP code and returns geocoded address suggestions. Uses optional city, state, and country MCP properties to streamline search when provided.","methodName":"getGeoAddress","params":[{"name":"street","description":"Street address or ZIP code to geocode.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Customer by Phone","description":"Retrieves customer information from ServiceTitan by phone number.","methodName":"getCustomer","params":[{"name":"phone","description":"The customer's phone number.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Customer Locations","description":"Retrieves location information for a customer from ServiceTitan by customer ID.","methodName":"getCustomerLocations","params":[{"name":"customerId","description":"The customer's ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Create Customer","description":"Creates a new customer in ServiceTitan.","methodName":"createCustomer","params":[{"name":"contacts","description":"Array of contact objects (optional).","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"locations","description":"Array of location objects with address and optional contacts.","required":true,"index":3,"schema":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Customer address object with street, city, state, zip, country.","required":true,"index":2,"schema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"type","description":"Customer type (Residential or Commercial).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"values":["Residential","Commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Customer name.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Customer","description":"Updates an existing customer in ServiceTitan.","methodName":"updateCustomer","params":[{"name":"contacts","description":"Array of contact objects (optional).","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Customer address object (optional).","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"type","description":"Customer type (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"values":["Residential","Commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Customer name (optional).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"customerId","description":"The customer ID to update.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Create Customer Location","description":"Creates a new location for a customer in ServiceTitan.","methodName":"createCustomerLocation","params":[{"name":"name","description":"Location name (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Location address object with street, city, state, zip, country.","required":true,"index":1,"schema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null}},{"name":"customerId","description":"The customer ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Create Job for New Customer","description":"Creates a new customer FIRST, then creates a job for that customer in ServiceTitan. Two-step process. Summary is required and will be used to automatically classify the job using GPT to determine businessUnitId and jobTypeId. Campaign ID is taken from MCP property.","methodName":"createJobForNewCustomer","params":[{"name":"customer","description":"Customer data object with name, type, locations, address, contacts.","required":true,"index":0,"schema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"name":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"type":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"values":["Residential","Commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}},"locations":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"address":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"street":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"city":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"state":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"zip":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"country":{"_def":{"description":"2 letter country code","innerType":{"_def":{"innerType":{"_def":{"checks":[{"kind":"length","value":2},{"kind":"toUpperCase"}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}},"unit":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["street","city","state","zip","country","unit"]}},"contacts":{"_def":{"innerType":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"type":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"value":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"memo":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["type","value","memo"]}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"name":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},"keys":["address","contacts","name"]}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"address":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"street":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"city":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"state":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"zip":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"country":{"_def":{"description":"2 letter country code","innerType":{"_def":{"innerType":{"_def":{"checks":[{"kind":"toUpperCase"},{"kind":"length","value":2}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}},"unit":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["street","city","state","zip","country","unit"]}},"contacts":{"_def":{"innerType":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"type":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"value":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"memo":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["type","value","memo"]}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["name","type","locations","address","contacts"]}}},{"name":"appointments","description":"Array of appointment objects with start, end, technicianIds, arrivalWindowStart, arrivalWindowEnd.","required":true,"index":1,"schema":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"start":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"end":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"technicianIds":{"_def":{"innerType":{"_def":{"type":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"arrivalWindowStart":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"arrivalWindowEnd":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},"keys":["start","end","technicianIds","arrivalWindowStart","arrivalWindowEnd"]}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"summary","description":"Job summary description. Required for automatic GPT classification.","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"incomingPhoneNumber","description":"Caller's phone number to match campaign (optional, uses default if not provided).","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"businessUnitId","description":"The business unit ID (will be overridden by GPT classification).","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobTypeId","description":"The job type ID (will be overridden by GPT classification).","required":false,"index":5,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"priority","description":"Job priority (defaults to High).","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"values":["Low","Normal","High","Emergency"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Create Job for Existing Customer","description":"Creates a new job for an existing customer in ServiceTitan. Summary is required and will be used to automatically classify the job using GPT. Campaign ID is taken from MCP property.","methodName":"createJobForExistingCustomer","params":[{"name":"customerId","description":"The existing customer ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"locationId","description":"The existing location ID.","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"appointments","description":"Array of appointment objects with start, end, technicianIds, arrivalWindowStart, arrivalWindowEnd.","required":true,"index":2,"schema":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"start":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"end":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"technicianIds":{"_def":{"type":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"arrivalWindowStart":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"arrivalWindowEnd":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},"keys":["start","end","technicianIds","arrivalWindowStart","arrivalWindowEnd"]}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"summary","description":"Detailed job summary including: what happened during the call, the customer's issue/request, any special instructions, urgency level, and relevant timestamps. This is used for automatic job classification and stored as the job description. Example: 'Customer reported water heater leaking since yesterday evening. Requested emergency service. Prefers afternoon appointment.'","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Service location address for the job.","required":true,"index":4,"schema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":{"shape":{"street":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"city":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"state":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"zip":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},"keys":["street","city","state","zip"]}}},{"name":"incomingPhoneNumber","description":"Caller's phone number to match campaign (optional, uses default if not provided).","required":false,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"customerType","description":"Customer type (Residential or Commercial). Optional, helps with classification.","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"values":["Residential","Commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"businessUnitId","description":"The business unit ID (will be overridden by GPT classification).","required":false,"index":7,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobTypeId","description":"The job type ID (will be overridden by GPT classification).","required":false,"index":8,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"priority","description":"Job priority (defaults to High).","required":false,"index":9,"schema":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"values":["Low","Normal","High"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Jobs by Customer","description":"Retrieves all jobs for a specific customer.","methodName":"getJobsByCustomer","params":[{"name":"customerId","description":"The customer ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Job","description":"Updates an existing job in ServiceTitan.","methodName":"updateJob","params":[{"name":"appointments","description":"Array of appointment objects (optional).","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"type":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"summary","description":"Job summary (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"priority","description":"Job priority (optional).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"values":["Low","Normal","High","Emergency"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobId","description":"The job ID to update.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Available Technicians","description":"Retrieves both regular available technicians with their free time slots AND the on-call technician for a specific date.","methodName":"getAvailableTechnicians","params":[{"name":"date","description":"Target date in YYYY-MM-DD format (optional, defaults to today).","required":false,"index":0,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"summary","description":"Job summary to determine business unit for filtering technicians. Only used when filter_technicians_by_business_unit is enabled.","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Active Technicians","description":"Retrieves all active technicians from ServiceTitan Settings API.","methodName":"getActiveTechnicians","params":[],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Appointments","description":"Retrieves appointments for a specific job.","methodName":"getAppointments","params":[{"name":"jobId","description":"The job ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Reschedule Appointment","description":"Reschedules an existing appointment in ServiceTitan.","methodName":"rescheduleAppointment","params":[{"name":"arrivalWindowEnd","description":"New arrival window end time (optional).","required":false,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"arrivalWindowStart","description":"New arrival window start time (optional).","required":false,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"end","description":"New appointment end time in ISO 8601 format (optional).","required":false,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"start","description":"New appointment start time in ISO 8601 format (optional).","required":false,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"appointmentId","description":"The appointment ID to reschedule.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Location Contact","description":"Updates contact details (email and/or phone) for a location.","methodName":"updateLocationContact","params":[{"name":"phone","description":"New phone number (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"New email address (optional).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"locationId","description":"The location ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Customer Contact","description":"Updates contact details (email and/or phone) for a customer.","methodName":"updateCustomerContact","params":[{"name":"phone","description":"New phone number (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"New email address (optional).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"customerId","description":"The customer ID.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Get Cancellation Reasons","description":"Retrieves all available job cancellation reasons.","methodName":"getCancellationReasons","params":[],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Cancel Job","description":"Intelligent job cancellation with automatic invoice cleanup. First checks if the job has any invoice items: if yes, removes them automatically before canceling; if no, proceeds directly to cancellation. This handles the ServiceTitan requirement that jobs with invoice items cannot be canceled directly.","methodName":"cancelJob","params":[{"name":"memo","description":"Cancellation memo/notes (optional, defaults to 'cancel appointment').","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"reasonId","description":"The cancellation reason ID.","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobId","description":"The job ID to cancel.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Update Customer Details","description":"Updates comprehensive customer details including name, type, address, and tags.","methodName":"updateCustomerDetails","params":[{"name":"tagTypeIds","description":"Array of tag type IDs (optional).","required":false,"index":4,"schema":{"_def":{"innerType":{"_def":{"type":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"minLength":null,"maxLength":null,"exactLength":null,"typeName":"ZodArray"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Customer address object (optional).","required":false,"index":3,"schema":{"_def":{"innerType":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodObject"},"~standard":{"version":1,"vendor":"zod"},"_cached":null},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"type","description":"Customer type (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"values":["Residential","Commercial"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"name","description":"Customer name (optional).","required":false,"index":1,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"customerId","description":"The customer ID to update.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Add Call Summary Note","description":"Adds a call summary note to a job by appending to the existing job summary. Includes timestamp and formatted call details.","methodName":"addCallSummaryNote","params":[{"name":"additionalDetails","description":"Any additional details to include in the note (optional).","required":false,"index":2,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"callSummary","description":"Summary of what happened during the call.","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"jobId","description":"The job ID to add the note to.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodNumber","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"service-titan","properties":[{"name":"tenant_id","propertyKey":"tenant_id","description":"ServiceTitan tenant ID.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"client_id","propertyKey":"client_id","description":"ServiceTitan client ID.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"client_secret","propertyKey":"client_secret","description":"ServiceTitan client secret.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"appKey","propertyKey":"appKey","description":"ServiceTitan application key.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"timezone","propertyKey":"timezone","description":"Timezone for date/time operations.","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}}},{"name":"campaignId","propertyKey":"campaignId","description":"Default campaign ID for job creation (as string).","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"classification_prompt","propertyKey":"classification_prompt","description":"GPT prompt template for business unit classification. Use {{summary}}, {{customerType}}, {{appointmentTime}}, {{businessUnits}} as placeholders.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"job_type_classification_prompt","propertyKey":"job_type_classification_prompt","description":"GPT prompt template for job type classification. Use {{summary}}, {{customerType}}, {{appointmentTime}}, {{jobTypes}} as placeholders.","schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"city","propertyKey":"city","description":"Default city for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"state","propertyKey":"state","description":"Default state for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"country","propertyKey":"country","description":"Default country for address searches (optional). Streamlines geo-address searches when provided.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"business_hours_start","propertyKey":"business_hours_start","description":"Business hours start time in HH:MM format (24-hour). Used for technician availability calculations.","schema":{"_def":{"innerType":{"_def":{"checks":[{"kind":"regex","regex":{}}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"business_hours_end","propertyKey":"business_hours_end","description":"Business hours end time in HH:MM format (24-hour). Used for technician availability calculations.","schema":{"_def":{"innerType":{"_def":{"checks":[{"kind":"regex","regex":{}}],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"excluded_technician_ids","propertyKey":"excluded_technician_ids","description":"Comma-separated list of technician IDs to exclude from available technicians.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"include_technician_ids","propertyKey":"include_technician_ids","description":"Comma-separated list of technician IDs to exclusively include. When set, only these technicians will be considered for availability.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"filter_technicians_by_business_unit","propertyKey":"filter_technicians_by_business_unit","description":"When enabled, filter available technicians by business unit based on job summary classification.","schema":{"_def":{"innerType":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"additional_notes","propertyKey":"additional_notes","description":"Additional notes to append to the job summary after a successful booking (optional).","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"technicianWorkflow","propertyKey":"technicianWorkflow","description":"Enable technician SMS workflow when job is booked.","schema":{"_def":{"innerType":{"_def":{"values":["yes","no"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"},"_cache":{}},"typeName":"ZodDefault"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"workflow_project_id","propertyKey":"workflow_project_id","description":"Project ID used for workflow triggers (e.g. technician SMS workflows).","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"tag_type_ids","propertyKey":"tag_type_ids","description":"Comma-separated list of tag type IDs to apply to jobs when booking (optional).","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestStartMessage","propertyKey":"toolRequestStartMessage","description":"Comma-separated messages spoken when a tool call starts (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestCompleteMessage","propertyKey":"toolRequestCompleteMessage","description":"Comma-separated messages spoken when a tool call completes (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestFailedMessage","propertyKey":"toolRequestFailedMessage","description":"Comma-separated messages spoken when a tool call fails (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestResponseDelayedMessage","propertyKey":"toolRequestResponseDelayedMessage","description":"Comma-separated messages spoken when a tool call is delayed (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"advanceDays","propertyKey":"advanceDays","description":"Number of days in advance to search for technician availability (e.g. 5 means search from today through the next 5 days). If not set, only the requested date is checked.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]},{"name":"You Can Book Me API","description":"Tag-based residential calendar booking via Cronofy. The AI infers tags from the call; calendars whose team tags overlap (any exact match) are considered for availability and booking.","tools":[{"name":"Get Available Slots","description":"Returns available booking slots over the next 14 days for residential calendars whose team tags overlap any of the provided tags. Tag matching is exact and any-match.","methodName":"getAvailableSlots","params":[{"name":"tags","description":"Comma-separated tags inferred from the call (e.g. 'kitchen,bathroom'). Calendars whose team tags include any of these are considered.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}},{"name":"Book Slot","description":"Records a booking selection — captures the chosen calendar, slot owner, time, and customer details. Does not write the event to the underlying calendar; that is handled downstream.","methodName":"bookSlot","params":[{"name":"notes","description":"Additional notes","required":false,"index":8,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"address","description":"Service address","required":false,"index":7,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"phone","description":"Customer phone number","required":false,"index":6,"schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"email","description":"Customer email address","required":true,"index":5,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"prospectName","description":"Full name of the prospect/customer","required":true,"index":4,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"ownerEmail","description":"Email of the calendar owner for the selected slot (from getAvailableSlots).","required":true,"index":3,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"ownerName","description":"Name of the calendar owner for the selected slot (from getAvailableSlots).","required":true,"index":2,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"calendarId","description":"Cronofy calendar id of the selected slot (from getAvailableSlots).","required":true,"index":1,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}},{"name":"startTime","description":"Start time of the chosen slot (ISO 8601, e.g. '2026-05-01T14:00:00-04:00'). Must be one of the slots returned by getAvailableSlots.","required":true,"index":0,"schema":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}}}],"outputSchema":{"_def":{"typeName":"ZodAny"},"~standard":{"version":1,"vendor":"zod"},"_any":true}}],"id":"youcanbookme","properties":[{"name":"timeZone","propertyKey":"timeZone","description":"Timezone for date/time operations.","schema":{"_def":{"values":["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","America/Anchorage","America/Adak","America/Detroit","America/Indianapolis","America/Louisville","America/Boise","America/Juneau","America/Nome","America/Sitka","America/Yakutat","America/Toronto","America/Vancouver","America/Edmonton","America/Winnipeg","America/Halifax","America/St_Johns","America/Regina","America/Mexico_City","America/Cancun","America/Tijuana","America/Monterrey","America/Merida","America/Hermosillo","America/Chihuahua","America/Mazatlan","America/Guatemala","America/El_Salvador","America/Tegucigalpa","America/Managua","America/Costa_Rica","America/Panama","America/Bogota","America/Lima","America/Guayaquil","America/Caracas","America/La_Paz","America/Santiago","America/Asuncion","America/Montevideo","America/Buenos_Aires","America/Sao_Paulo","America/Rio_Branco","America/Manaus","America/Cuiaba","America/Recife","America/Fortaleza","America/Belem","America/Havana","America/Jamaica","America/Port-au-Prince","America/Santo_Domingo","America/Puerto_Rico","America/Barbados","America/Martinique","America/Guadeloupe","America/Aruba","America/Curacao"],"typeName":"ZodEnum"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"slotDurationMinutes","propertyKey":"slotDurationMinutes","description":"Duration in minutes used both for the availability search interval and the booked event length.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestStartMessage","propertyKey":"toolRequestStartMessage","description":"Comma-separated messages spoken when a tool call starts (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestCompleteMessage","propertyKey":"toolRequestCompleteMessage","description":"Comma-separated messages spoken when a tool call completes (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestFailedMessage","propertyKey":"toolRequestFailedMessage","description":"Comma-separated messages spoken when a tool call fails (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}},{"name":"toolRequestResponseDelayedMessage","propertyKey":"toolRequestResponseDelayedMessage","description":"Comma-separated messages spoken when a tool call is delayed (optional). Leave blank for silence.","schema":{"_def":{"innerType":{"_def":{"checks":[],"typeName":"ZodString","coerce":false},"~standard":{"version":1,"vendor":"zod"}},"typeName":"ZodOptional"},"~standard":{"version":1,"vendor":"zod"}}}]}]}