이 MCP로 할 수 있는 일
Reviews tenant-scoped salon clients, appointments, availability, services, quotes, providers, calendar blocks, and payment records without performing payment actions.
도구
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appointmentId'], 'properties': {'appointmentId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Id of one appointment, as the appointment list returns it (24 lowercase hex characters)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'appointment'], 'properties': {'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'appointment': {'anyOf': [{'type': 'object', 'required': ['id', 'clientId', 'salonId', 'startTime', 'endTime', 'status', 'serviceCount', 'servicesTruncated', 'services'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'status': {'anyOf': [{'enum': ['SCHEDULED', 'CLIENT_ARRIVED', 'NO_SHOW', 'CANCELED'], 'type': 'string'}, {'type': 'null'}]}, 'endTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'clientId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'price'], 'properties': {'id': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'price': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'maxItems': 50}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'serviceCount': {'type': 'integer', 'maximum': 10000, 'minimum': 0}, 'servicesTruncated': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'One booking with up to 50 booked services and their prices; null when not found. Free-text notes, reminders, contact details, organization data and payment data are excluded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clientId'], 'properties': {'clientId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Id of one client, as the client list returns it (24 lowercase hex characters)'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'client'], 'properties': {'client': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'salonId', 'language', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'type': 'string', 'maxLength': 200}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'language': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Name, salon, language and edit time only; null when not found. Email, phone, address, operator notes, service and colour history, organization data and other profile fields are excluded.'}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['salonId'], 'properties': {'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Id of one of the user's salons, as the salon list returns it (24 lowercase hex characters)"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'salon'], 'properties': {'salon': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'timezone', 'countryCode', 'firstDayOfTheWeek', 'appointmentDuration', 'phone', 'street', 'city', 'state', 'postalCode', 'website', 'openingHours', 'openingHoursTruncated'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'city': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'phone': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'street': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'website': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{3}$'}, {'type': 'null'}]}, 'timezone': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}, 'postalCode': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'countryCode': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{2}$'}, {'type': 'null'}]}, 'openingHours': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'open', 'close'], 'properties': {'day': {'anyOf': [{'enum': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 'type': 'string'}, {'type': 'null'}]}, 'open': {'anyOf': [{'type': 'string', 'pattern': '^\\d{1,2}:\\d{2}$'}, {'type': 'null'}]}, 'close': {'anyOf': [{'type': 'string', 'pattern': '^\\d{1,2}:\\d{2}$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 14}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}, 'firstDayOfTheWeek': {'anyOf': [{'enum': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 'type': 'string'}, {'type': 'null'}]}, 'appointmentDuration': {'anyOf': [{'type': 'integer', 'maximum': 1440, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Default appointment length in minutes'}, 'openingHoursTruncated': {'type': 'boolean', 'description': 'True when the salon has more than 14 opening-hour rows'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Business settings of the salon; null when not found. Organization ids, payment configuration, credentials, integrations, reminders, staff data and internal metadata are excluded.'}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['salonId'], 'properties': {'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Id of one of the user's salons, as the salon list returns it (24 lowercase hex characters)"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'slotCount', 'firstSlot', 'lastSlot'], 'properties': {'day': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}]}, 'lastSlot': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}], 'description': 'End time of the last open slot that day'}, 'firstSlot': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}], 'description': 'Start time of the first open slot that day'}, 'slotCount': {'type': 'integer', 'maximum': 1440, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 14, 'description': "One row per day with open online-booking slots inside the salon's booking window, in date order. Slot counts and times only; who holds a booked time is never exposed."}, 'status': {'enum': ['found', 'salon-not-found', 'no-availability'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of appointments to return (default 20, maximum 100)', 'exclusiveMinimum': 0}, 'endTime': {'type': 'string', 'maxLength': 32, 'description': 'Only appointments ending before this ISO 8601 time'}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only appointments at this salon, by an id from the user's salon list; every salon when absent"}, 'clientId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only appointments of this client, by an id from the client list'}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Only appointments starting at or after this ISO 8601 time'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appointments', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'appointments': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'clientId', 'salonId', 'startTime', 'endTime', 'status'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'status': {'anyOf': [{'enum': ['SCHEDULED', 'CLIENT_ARRIVED', 'NO_SHOW', 'CANCELED'], 'type': 'string'}, {'type': 'null'}]}, 'endTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'clientId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Bookings, latest start first. Free-text notes, reminders, contact details, organization data and payment details are excluded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of calendar events to return (default 20, maximum 100)', 'exclusiveMinimum': 0}, 'endTime': {'type': 'string', 'maxLength': 32, 'description': 'Only events ending before this ISO 8601 time'}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only blocks for this salon, by an id from the user's salon list; every salon when absent"}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Only events starting at or after this ISO 8601 time'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['events', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'salonId', 'type', 'scope', 'effect', 'allDay', 'startTime', 'endTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'type': {'anyOf': [{'enum': ['COURSE', 'MEETING', 'VACATION', 'SICK', 'HOLIDAY', 'MAINTENANCE', 'OTHER'], 'type': 'string'}, {'type': 'null'}]}, 'scope': {'anyOf': [{'enum': ['CHAIR', 'PROVIDER', 'SALON'], 'type': 'string'}, {'type': 'null'}], 'description': 'SALON: the whole salon; PROVIDER: one or more stylists; CHAIR: one chair'}, 'allDay': {'type': 'boolean'}, 'effect': {'anyOf': [{'enum': ['BLOCK', 'OPEN'], 'type': 'string'}, {'type': 'null'}], 'description': 'BLOCK removes bookable time; OPEN adds hours on a normally closed time'}, 'endTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Closures, days off and extra openings, earliest first. Free-text titles and notes, chair ids, staff ids, organization data and private reasons are excluded.'}, 'hasMore': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of clients to return (default 20, maximum 100)', 'exclusiveMinimum': 0}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only clients of this salon, by an id from the user's salon list; every salon when absent"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clients', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'clients': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'salonId', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'type': 'string', 'maxLength': 200}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Clients with the ids needed to look up their bookings, payments and quotes. Email, phone, address, operator notes, service and colour history, organization data and other profile fields are excluded.'}, 'hasMore': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of payments to return (default 20, maximum 100)', 'exclusiveMinimum': 0}, 'endTime': {'type': 'string', 'maxLength': 32, 'description': 'Only payments ending before this ISO 8601 time'}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only payments at this salon, by an id from the user's salon list; every salon when absent"}, 'clientId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only payments from this client, by an id from the client list'}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Only payments starting at or after this ISO 8601 time'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['payments', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'payments': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'clientId', 'salonId', 'startTime', 'amount', 'currency', 'status'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'amount': {'type': ['number', 'null']}, 'status': {'anyOf': [{'enum': ['CANCELED', 'FAILED', 'SUCCEEDED'], 'type': 'string'}, {'type': 'null'}]}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'clientId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{3}$'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Payment records, newest first; this tool cannot charge, refund or move funds. Cardholder data, processor and customer ids, credentials, errors, discounts, staff commission splits, operator notes and organization data are excluded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['salonId'], 'properties': {'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Id of one of the user's salons, as the salon list returns it (24 lowercase hex characters)"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'providers', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'status': {'enum': ['found', 'salon-not-found'], 'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'providers': {'type': 'array', 'items': {'type': 'object', 'required': ['displayName'], 'properties': {'displayName': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Display names of organization members with the hairdresser role; roles are organization-wide, not per salon. Staff ids, contact details, avatar URLs, role records, schedules and organization data are excluded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of quotes to return (default 20, maximum 100)', 'exclusiveMinimum': 0}, 'status': {'enum': ['DRAFT', 'PENDING', 'REJECTED', 'APPROVED'], 'type': 'string', 'description': 'Only quotes with this status: DRAFT, PENDING, REJECTED or APPROVED. Applied within the fetched page of newest quotes'}, 'endTime': {'type': 'string', 'maxLength': 32, 'description': 'Only quotes ending before this ISO 8601 time'}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only quotes from this salon, by an id from the user's salon list; every salon when absent"}, 'clientId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only quotes for this client, by an id from the client list'}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Only quotes starting at or after this ISO 8601 time'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['quotes', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'quotes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'clientId', 'salonId', 'status', 'startTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'status': {'anyOf': [{'enum': ['DRAFT', 'PENDING', 'REJECTED', 'APPROVED'], 'type': 'string'}, {'type': 'null'}]}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'clientId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Quotes, newest first. Free-text notes, quoted line details and amounts, discounts, contact details and organization data are excluded.'}, 'hasMore': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['salons', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'salons': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'lastEditTime'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'type': 'string', 'maxLength': 200}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{3}$'}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Salons in the signed-in organization. Contact, address, payment, organization and configuration fields are excluded.'}, 'hasMore': {'type': 'boolean', 'description': 'True when the organization has more than 100 salons'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Maximum number of services to return (default 50, maximum 100)', 'exclusiveMinimum': 0}, 'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Only services of this salon, by an id from the user's salon list; every salon when absent"}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['services', 'count', 'hasMore'], 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'hasMore': {'type': 'boolean'}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'price', 'salonId'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'type': 'string', 'maxLength': 200}, 'price': {'type': ['number', 'null'], 'description': "Price in the salon's currency"}, 'salonId': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Services the salon offers, with prices. Internal metadata and organization data are excluded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['salonId'], 'properties': {'salonId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': "Id of one of the user's salons, as the salon list returns it (24 lowercase hex characters)"}}}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['salon', 'clientCount', 'clientCountIsLowerBound', 'appointmentCount', 'appointmentCountIsLowerBound', 'serviceCount', 'serviceCountIsLowerBound', 'services', 'appointments'], 'properties': {'salon': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'timezone'], 'properties': {'id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, 'name': {'type': 'string', 'maxLength': 200}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{3}$'}, {'type': 'null'}]}, 'timezone': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Salon metadata; null when not found. The overview excludes client names, contact details, client and appointment ids, notes, organization data, staff ids, payment data and service history.'}, 'services': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'price'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 12}, 'clientCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'appointments': {'type': 'array', 'items': {'type': 'object', 'required': ['startTime', 'status', 'serviceCount'], 'properties': {'status': {'anyOf': [{'enum': ['SCHEDULED', 'CLIENT_ARRIVED', 'NO_SHOW', 'CANCELED'], 'type': 'string'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'serviceCount': {'type': 'integer', 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 8, 'description': 'The next upcoming appointments, earliest first'}, 'serviceCount': {'type': 'integer', 'maximum': 12, 'minimum': 0}, 'appointmentCount': {'type': 'integer', 'maximum': 8, 'minimum': 0}, 'clientCountIsLowerBound': {'type': 'boolean'}, 'serviceCountIsLowerBound': {'type': 'boolean'}, 'appointmentCountIsLowerBound': {'type': 'boolean'}}, '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…