이 MCP로 할 수 있는 일
Supports a plumbing business with service-area checks, service and price information, availability, customer verification, booking requests, callbacks, and SMS confirmation.
도구
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'business', 'hours', 'booking'], 'properties': {'hours': {'type': 'object', 'required': ['office', 'sunday'], 'properties': {'office': {'type': 'array', 'items': {'type': 'object', 'required': ['days', 'opens', 'closes'], 'properties': {'days': {'type': 'string'}, 'note': {'type': 'string'}, 'opens': {'type': 'string'}, 'closes': {'type': 'string'}}, 'additionalProperties': False}}, 'sunday': {'type': 'string'}}, 'additionalProperties': False}, 'booking': {'type': 'object', 'required': ['how_agents_book', 'phone_booking', 'online_booking'], 'properties': {'phone_booking': {'type': 'string'}, 'online_booking': {'type': 'string'}, 'how_agents_book': {'type': 'string'}}, 'additionalProperties': False}, 'success': {'type': 'boolean'}, 'business': {'type': 'object', 'required': ['name', 'legal_name', 'phone', 'email', 'website', 'license', 'certifications', 'payment_methods', 'emergency', 'service_area', 'services_not_offered'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'license': {'type': 'string'}, 'website': {'type': 'string'}, 'emergency': {'type': 'string'}, 'legal_name': {'type': 'string'}, 'service_area': {'type': 'string'}, 'certifications': {'type': 'array', 'items': {'type': 'string'}}, 'payment_methods': {'type': 'array', 'items': {'type': 'string'}}, 'services_not_offered': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'agent_context': {'type': 'object', 'required': ['instructions', 'timezone', 'locations', 'services', 'service_area', 'pricing', 'scheduling', 'knowledge', 'availability', 'writes', 'customer_records'], 'properties': {'writes': {'type': 'object', 'required': ['request_callback', 'request_booking', 'confirm_booking'], 'properties': {'confirm_booking': {'type': 'object', 'required': ['requires_sms_code', 'success_requires'], 'properties': {'success_requires': {'type': 'object', 'required': ['status', 'booked'], 'properties': {'booked': {'type': 'boolean'}, 'status': {'type': 'string'}}, 'additionalProperties': False}, 'requires_sms_code': {'type': 'boolean'}}, 'additionalProperties': False}, 'request_booking': {'type': 'object', 'required': ['requires_explicit_user_consent', 'sends_sms_code', 'creates_appointment'], 'properties': {'sends_sms_code': {'type': 'boolean'}, 'creates_appointment': {'type': 'boolean'}, 'requires_explicit_user_consent': {'type': 'boolean'}}, 'additionalProperties': False}, 'request_callback': {'type': 'object', 'required': ['requires_explicit_user_consent', 'creates_appointment'], 'properties': {'creates_appointment': {'type': 'boolean'}, 'requires_explicit_user_consent': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'pricing': {'type': 'object', 'required': ['currency', 'dispatch_fee', 'policy', 'estimates'], 'properties': {'policy': {'type': 'string'}, 'currency': {'type': 'string'}, 'estimates': {'type': 'string'}, 'dispatch_fee': {'type': 'number'}}, 'additionalProperties': False}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'summary'], 'properties': {'name': {'type': 'string'}, 'summary': {'type': 'string'}}, 'additionalProperties': False}}, 'timezone': {'type': 'string'}, 'knowledge': {'type': 'object', 'required': ['search_tool', 'read_tool', 'instructions', 'missing_information'], 'properties': {'read_tool': {'type': 'string'}, 'search_tool': {'type': 'string'}, 'instructions': {'type': 'string'}, 'missing_information': {'type': 'string'}}, 'additionalProperties': False}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'street', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'name': {'type': 'string'}, 'state': {'type': 'string'}, 'street': {'type': 'string'}}, 'additionalProperties': False}}, 'scheduling': {'type': 'object', 'required': ['regular', 'after_hours', 'routine', 'emergency'], 'properties': {'regular': {'type': 'string'}, 'routine': {'type': 'string'}, 'emergency': {'type': 'string'}, 'after_hours': {'type': 'string'}}, 'additionalProperties': False}, 'availability': {'type': 'object', 'required': ['tool', 'kind', 'creates_appointment'], 'properties': {'kind': {'type': 'string'}, 'tool': {'type': 'string'}, 'creates_appointment': {'type': 'boolean'}}, 'additionalProperties': False}, 'instructions': {'type': 'string'}, 'service_area': {'type': 'object', 'required': ['summary', 'towns', 'exact_coverage_tool'], 'properties': {'towns': {'type': 'array', 'items': {'type': 'string'}}, 'summary': {'type': 'string'}, 'exact_coverage_tool': {'type': 'string'}}, 'additionalProperties': False}, 'customer_records': {'type': 'string'}}, 'additionalProperties': False}, 'facts_updated': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'zip': {'type': 'string', 'maxLength': 10, 'minLength': 3}, 'town': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success'], 'properties': {'zip': {'type': 'string'}, 'town': {'type': 'string'}, 'error': {'type': 'string'}, 'status': {'enum': ['covered', 'partially_covered', 'outside_service_area', 'unknown_town', 'needs_more_information', 'unavailable'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'counties': {'type': 'array', 'items': {'type': 'string'}}, 'next_step': {'type': 'string'}, 'error_code': {'type': 'string'}, 'matched_by': {'anyOf': [{'enum': ['zip', 'town'], 'type': 'string'}, {'type': 'null'}]}, 'covered_zips': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Town lookups only: the town ZIPs inside the automatic-booking area.'}, 'outside_zips': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Town lookups only: the town ZIPs outside the automatic-booking area.'}, 'resolved_town': {'type': 'string', 'description': 'Town lookups only: the Massachusetts place the name was matched to.'}, 'missing_fields': {'type': 'array', 'items': {'type': 'string'}}, 'review_sandbox': {'type': 'boolean'}, 'in_service_area': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'code'], 'properties': {'code': {'type': 'string', 'pattern': '^\\d{6}$'}, 'booking_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'status', 'booked', 'needs_manual', 'business_phone', 'business_phone_href', 'message', 'next_step'], 'properties': {'booked': {'type': 'boolean'}, 'status': {'enum': ['confirmed', 'callback_pending', 'rejected'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'replayed': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'next_step': {'type': 'string'}, 'error_code': {'type': 'string'}, 'needs_manual': {'type': 'boolean'}, 'service_city': {'type': 'string'}, 'customer_name': {'type': 'string'}, 'scheduled_end': {'type': 'string'}, 'business_phone': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}, 'scheduled_start': {'type': 'string'}, 'location_summary': {'type': 'string'}, 'attempts_remaining': {'type': 'integer'}, 'business_phone_href': {'type': 'string'}, 'confirmation_number': {'type': 'string'}, 'service_description': {'type': 'string'}, 'formatted_arrival_window': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['phone', 'confirmed'], 'properties': {'code': {'type': 'string', 'pattern': '^\\d{6}$'}, 'phone': {'type': 'string', 'minLength': 7}, 'confirmed': {'type': 'boolean', 'const': True}, 'challenge_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'next_step', 'success', 'status', 'message'], 'properties': {'status': {'enum': ['verification_requested', 'verified'], 'type': 'string'}, 'history': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'workStatus'], 'properties': {'workStatus': {'type': 'string'}, 'description': {'type': 'string'}, 'scheduledStart': {'type': 'string'}}, 'additionalProperties': False}}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'customer': {'type': 'object', 'required': ['phone', 'addresses'], 'properties': {'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'lastName': {'type': 'string'}, 'addresses': {'type': 'array', 'items': {'type': 'object', 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}, 'street_line_2': {'type': 'string'}}, 'additionalProperties': False}}, 'firstName': {'type': 'string'}}, 'additionalProperties': False}, 'next_step': {'type': 'string'}, 'record_id': {'type': 'string', 'description': 'Saved office lead reference, when applicable.'}, 'request_id': {'type': 'string', 'format': 'uuid', 'description': 'Public operation receipt for support; never a provider customer ID.'}, 'challenge_id': {'type': 'string'}, 'history_status': {'enum': ['available', 'unavailable'], 'type': 'string'}, 'review_sandbox': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['emergency_type'], 'properties': {'emergency_type': {'type': 'string', 'description': "Type of plumbing emergency (required). Examples: 'burst pipe', 'flooding', 'gas leak', 'sewage backup', 'no hot water', 'no water'"}, 'additional_details': {'type': 'string', 'description': 'Additional context about the emergency (optional). Include location, duration, actions already taken.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success'], 'properties': {'error': {'type': 'string'}, 'success': {'type': 'boolean'}, 'call_now': {'type': 'string'}, 'urgency_level': {'type': 'string'}, 'emergency_type': {'type': 'string'}, 'recommendation': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}, 'immediate_steps': {'type': 'array', 'items': {'type': 'string'}}, 'safety_warnings': {'type': 'array', 'items': {'type': 'string'}}, 'emergency_contact': {'type': 'object', 'required': ['phone', 'available', 'response_time'], 'properties': {'phone': {'type': 'string'}, 'available': {'type': 'string'}, 'response_time': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': "Document id from a search result, e.g. 'faq:pricing-service-fee'"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'error': {'type': 'string'}, 'title': {'type': 'string'}, 'success': {'type': 'boolean'}, 'metadata': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'error_code': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'zip': {'type': 'string', 'maxLength': 10, 'minLength': 3, 'description': 'Service ZIP when known. Always include the customer location for a booking inquiry; outside-area requests receive no windows.'}, 'days': {'type': 'integer', 'default': 7, 'maximum': 14, 'minimum': 1}, 'town': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'time_preference': {'enum': ['any', 'morning', 'afternoon', 'evening'], 'type': 'string', 'default': 'any'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'timezone', 'requested_days', 'time_preference', 'total_windows', 'open_windows', 'windows', 'booking_flow', 'privacy'], 'properties': {'status': {'enum': ['available', 'needs_more_information', 'outside_service_area', 'unavailable'], 'type': 'string'}, 'privacy': {'type': 'string'}, 'success': {'type': 'boolean'}, 'windows': {'type': 'array', 'items': {'type': 'object', 'required': ['start_time', 'end_time', 'arrival_start', 'arrival_end', 'start_local', 'end_local', 'part_of_day', 'available'], 'properties': {'end_time': {'type': 'string', 'description': 'Reserved three-hour job-block end; pass unchanged to request_booking.'}, 'available': {'type': 'boolean'}, 'end_local': {'type': 'string'}, 'start_time': {'type': 'string', 'description': 'Selected job-block start; pass unchanged to request_booking.'}, 'arrival_end': {'type': 'string', 'description': 'Customer-facing two-hour arrival promise.'}, 'part_of_day': {'enum': ['morning', 'afternoon', 'evening'], 'type': 'string'}, 'start_local': {'type': 'string'}, 'arrival_start': {'type': 'string'}}, 'additionalProperties': False}}, 'has_more': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'next_step': {'type': 'string'}, 'error_code': {'type': 'string'}, 'booking_flow': {'type': 'string'}, 'open_windows': {'type': 'integer'}, 'total_windows': {'type': 'integer'}, 'missing_fields': {'type': 'array', 'items': {'type': 'string'}}, 'requested_days': {'type': 'integer'}, 'review_sandbox': {'type': 'boolean'}, 'coverage_status': {'enum': ['verified', 'not_checked', 'outside_service_area', 'unknown'], 'type': 'string'}, 'time_preference': {'enum': ['any', 'morning', 'afternoon', 'evening'], 'type': 'string'}, 'returned_windows': {'type': 'integer'}, 'total_matching_windows': {'type': 'integer'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service_type', 'issue_description'], 'properties': {'urgency': {'enum': ['routine', 'soon', 'urgent', 'emergency'], 'type': 'string', 'description': 'How urgent is the repair?'}, 'service_type': {'type': 'string', 'description': "Type of plumbing service (required). Examples: 'drain cleaning', 'water heater repair', 'toilet repair'"}, 'property_type': {'enum': ['residential', 'commercial'], 'type': 'string', 'description': "Type of property (default: 'residential')"}, 'issue_description': {'type': 'string', 'description': 'Description of the plumbing problem (required). Be specific about symptoms and location.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success'], 'properties': {'error': {'type': 'string'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'service': {'type': 'string'}, 'success': {'type': 'boolean'}, 'next_step': {'type': 'string'}, 'error_code': {'type': 'string'}, 'next_steps': {'type': 'string'}, 'description': {'type': 'string'}, 'service_fee': {'type': 'string'}, 'property_type': {'type': 'string'}, 'urgency_level': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}, 'service_supported': {'type': 'boolean'}, 'estimated_duration': {'type': 'string'}, 'estimated_price_range': {'type': 'object', 'required': ['min', 'max', 'currency'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'search': {'type': 'string', 'description': 'Search term, e.g. "water heater", "drain"'}, 'category': {'type': 'string', 'description': "Filter by category: 'emergency', 'maintenance', 'repair', 'installation', 'specialty'"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'total_services', 'services', 'categories', 'pricing_disclaimer', 'service_fee'], 'properties': {'error': {'type': 'string'}, 'success': {'type': 'boolean'}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'price_range', 'price_min', 'price_max', 'estimated_duration', 'is_emergency'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'category': {'type': 'string'}, 'price_max': {'type': 'number'}, 'price_min': {'type': 'number'}, 'description': {'type': 'string'}, 'price_range': {'type': 'string'}, 'is_emergency': {'type': 'boolean'}, 'estimated_duration': {'type': 'string'}}, 'additionalProperties': False}}, 'next_step': {'type': 'string'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'error_code': {'type': 'string'}, 'service_fee': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}, 'total_services': {'type': 'integer'}, 'service_supported': {'type': 'boolean'}, 'pricing_disclaimer': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'view': {'enum': ['booking', 'history'], 'type': 'string', 'default': 'booking', 'description': 'Choose booking for a new service visit, or history for the customerâ\x80\x99s own previous and upcoming visits.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'view', 'business_phone', 'message'], 'properties': {'view': {'enum': ['booking', 'history'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}, 'business_phone': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['service', 'name', 'phone', 'address', 'confirmed'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Customer full name'}, 'email': {'type': 'string', 'format': 'email'}, 'notes': {'type': 'string', 'maxLength': 2000, 'description': 'Issue description / anything the technician should know'}, 'phone': {'type': 'string', 'minLength': 7, 'description': 'Customer mobile number â\x80\x94 receives the 6-digit confirmation code'}, 'address': {'type': 'object', 'required': ['street', 'city', 'zip'], 'properties': {'zip': {'type': 'string', 'minLength': 5}, 'city': {'type': 'string', 'minLength': 2}, 'unit': {'type': 'string'}, 'state': {'type': 'string', 'default': 'MA', 'maxLength': 2, 'minLength': 2}, 'street': {'type': 'string', 'minLength': 3}}, 'additionalProperties': False}, 'service': {'type': 'string', 'maxLength': 200, 'minLength': 3, 'description': 'Requested service, e.g. "water heater replacement"'}, 'confirmed': {'type': 'boolean', 'const': True, 'description': 'True only after the user explicitly asks to start this booking request and send the SMS code'}, 'customer_type': {'enum': ['new', 'returning'], 'type': 'string', 'description': 'Required for booking: answer to Have you used us before?'}, 'referral_code': {'type': 'string', 'maxLength': 300}, 'heard_about_us': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Required for new customers: where they found us'}, 'time_preference': {'enum': ['any', 'morning', 'afternoon', 'evening'], 'type': 'string', 'default': 'any', 'description': 'Fallback time-of-day preference if none of the preferred windows is open'}, 'preferred_windows': {'type': 'array', 'items': {'type': 'object', 'required': ['start_time', 'end_time'], 'properties': {'end_time': {'type': 'string'}, 'start_time': {'type': 'string'}}, 'additionalProperties': False}, 'default': [], 'maxItems': 5, 'description': 'Preferred arrival windows from get_availability (start_time/end_time ISO strings)'}, 'promotion_review_requested': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'status', 'next_step'], 'properties': {'error': {'type': 'string'}, 'status': {'enum': ['pending_sms_confirmation', 'rejected'], 'type': 'string'}, 'success': {'type': 'boolean'}, 'next_step': {'type': 'string'}, 'booking_id': {'type': 'string'}, 'error_code': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'code_sent_to': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}, 'in_service_area': {'type': 'boolean'}, 'attempts_allowed': {'type': 'integer'}, 'service_area_notice': {'type': 'string'}, 'sandbox_verification_code': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'phone', 'issue_description', 'confirmed'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Customer full name, for example "Jane Smith"'}, 'email': {'type': 'string', 'format': 'email'}, 'phone': {'type': 'string', 'minLength': 7, 'description': 'Customer phone number for the callback'}, 'urgency': {'enum': ['routine', 'soon', 'urgent'], 'type': 'string', 'default': 'routine'}, 'confirmed': {'type': 'boolean', 'const': True, 'description': 'True only after the user explicitly asks Johnson Bros. to contact them'}, 'issue_description': {'type': 'string', 'maxLength': 2000, 'minLength': 3, 'description': 'Short description of the plumbing issue'}, 'preferred_callback_time': {'type': 'string', 'maxLength': 200, 'description': 'Optional preference such as "weekday morning"'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'success', 'status', 'message', 'next_step'], 'properties': {'status': {'enum': ['callback_requested', 'rejected'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'next_step': {'type': 'string'}, 'record_id': {'type': 'string'}, 'error_code': {'type': 'string'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'phone_last4': {'type': 'string'}, 'review_sandbox': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'phone', 'address', 'issue_description', 'confirmed'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 3, 'description': 'Caller full first and last name'}, 'phone': {'type': 'string', 'maxLength': 30, 'minLength': 7, 'description': 'Callback number. On phone calls the channel supplies the caller ID; confirm it with the caller.'}, 'address': {'type': 'object', 'required': ['city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$', 'description': 'Five-digit service ZIP; decides coverage and Massachusetts'}, 'city': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'unit': {'type': 'string', 'maxLength': 50}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'street': {'type': 'string', 'maxLength': 200, 'minLength': 3, 'description': 'Street address, if the caller gave it'}}, 'additionalProperties': False}, 'confirmed': {'type': 'boolean', 'const': True, 'description': 'True only after the caller agreed to the office calling them back'}, 'issue_description': {'type': 'string', 'maxLength': 4000, 'minLength': 3, 'description': 'What the caller needs, in their words'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'success', 'status', 'in_service_area', 'booked', 'message', 'next_step'], 'properties': {'booked': {'type': 'boolean', 'const': False}, 'status': {'enum': ['office_callback_requested', 'in_service_area', 'outside_massachusetts', 'rejected'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'duplicate': {'type': 'boolean', 'description': 'True when this callback was already requested recently; no second office task was created.'}, 'next_step': {'type': 'string'}, 'record_id': {'type': 'string', 'description': 'Saved office lead reference, when a callback was requested.'}, 'error_code': {'type': 'string'}, 'request_id': {'type': 'string', 'format': 'uuid', 'description': 'Public operation receipt for support; never a provider customer ID.'}, 'review_sandbox': {'type': 'boolean'}, 'in_service_area': {'type': 'boolean'}, 'in_massachusetts': {'type': 'boolean'}, 'coverage_verified': {'type': 'boolean', 'description': 'False when the coverage database could not be read; the office will confirm.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': "Natural-language search terms, e.g. 'water heater Quincy'"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'description': 'Pass this to fetch to read the full document'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}, 'success': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum records to return, from 1 to 50.'}, 'query': {'type': 'string', 'default': '', 'maxLength': 200, 'description': 'Repair keywords or date text, for example drain or 2025. Empty searches all available records.'}, 'status': {'enum': ['all', 'completed', 'upcoming'], 'type': 'string', 'default': 'all', 'description': 'Filter the verified customerâ\x80\x99s available visits by status.'}, 'history_access_token': {'type': 'string', 'maxLength': 200, 'description': 'Private verification proof attached automatically by the customer card or browser bridge. Never ask the customer for it or invent it.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'history', 'records_searched', 'returned_records', 'message'], 'properties': {'history': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'workStatus'], 'properties': {'workStatus': {'type': 'string'}, 'description': {'type': 'string'}, 'scheduledStart': {'type': 'string'}}, 'additionalProperties': False}}, 'message': {'type': 'string'}, 'success': {'type': 'boolean', 'const': True}, 'review_sandbox': {'type': 'boolean'}, 'records_searched': {'type': 'integer'}, 'returned_records': {'type': 'integer'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'phone', 'email', 'address', 'heard_about_us', 'confirmed'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 3, 'description': 'Full first and last name'}, 'email': {'type': 'string', 'format': 'email'}, 'phone': {'type': 'string', 'maxLength': 30, 'minLength': 7}, 'address': {'type': 'object', 'required': ['street', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$'}, 'city': {'type': 'string', 'minLength': 2}, 'unit': {'type': 'string'}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'street': {'type': 'string', 'minLength': 3}}, 'additionalProperties': False}, 'confirmed': {'type': 'boolean', 'const': True, 'description': 'Customer submitted or approved the new customer form, including any supplied issue description'}, 'heard_about_us': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Where the customer found Johnson Bros; ask, never infer from the platform'}, 'issue_description': {'type': 'string', 'maxLength': 4000, 'description': 'Customer-approved service and reported symptoms, if already provided. Preserved in outside-area office lead notes; do not invent a diagnosis. Optional so contact-only intake still works.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id', 'next_step', 'success', 'status', 'in_service_area', 'booked', 'message'], 'properties': {'booked': {'type': 'boolean', 'const': False}, 'status': {'enum': ['customer_created', 'lead_submitted', 'rejected'], 'type': 'string'}, 'message': {'type': 'string'}, 'success': {'type': 'boolean'}, 'next_step': {'type': 'string'}, 'record_id': {'type': 'string', 'description': 'Saved office lead reference, when applicable.'}, 'error_code': {'type': 'string'}, 'request_id': {'type': 'string', 'format': 'uuid', 'description': 'Public operation receipt for support; never a provider customer ID.'}, 'review_sandbox': {'type': 'boolean'}, 'in_service_area': {'type': 'boolean'}, 'in_massachusetts': {'type': 'boolean', 'description': 'Outside-area leads only: whether the service ZIP is in Massachusetts.'}, 'issue_description_saved': {'type': 'boolean', 'description': 'True only after a supplied issue description was saved with an office-review lead. Customer creation alone does not save booking notes.'}, 'office_callback_requested': {'type': 'boolean', 'description': 'True when the outside-area lead was flagged for an ASAP office callback (Massachusetts addresses).'}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Duvo MCP
Provides governed retail and CPG operations for cases, queues, approvals, automations, process documentation, integrations, and a…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…