DodoDentist Dental Clinic
Ce que fait ce MCP
Provides tenant-scoped dental clinic metadata, provider and procedure catalogs, availability, calendar blocks, and aggregate scheduling summaries without patient clinical data.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clinicId'], 'properties': {'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Practice id: 24 lowercase hexadecimal characters'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'clinic'], 'properties': {'clinic': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'timezone', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z]{3}$'}, {'type': 'null'}]}, 'timezone': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'pattern': '^[a-zA-Z]{2,3}([_-][a-zA-Z0-9]{2,8}){0,2}$'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Administrative practice metadata only; opening hours, staff, patient and appointment data are not included. Null when not found.'}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clinicId'], 'properties': {'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Practice id: 24 lowercase hexadecimal characters'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'slots'], 'properties': {'day': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['startTime', 'endTime'], 'properties': {'endTime': {'type': 'string', 'maxLength': 32}, 'startTime': {'type': 'string', 'maxLength': 32}}, 'additionalProperties': False}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 7, 'description': 'One row per day with open online-booking slots, in date order, holding at most 100 slots in total. Slot times only; patients, dentists, treatments and clinical data are never included.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clinicId'], 'properties': {'endTime': {'$ref': '#/properties/startTime', 'description': 'End of the range as an ISO 8601 date-time, after startTime and at most 31 days later; defaults to 7 days after the start'}, 'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Practice id: 24 lowercase hexadecimal characters'}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Start of the range as an ISO 8601 date-time; defaults to now'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['range', 'appointmentCount', 'appointmentCountIsLowerBound', 'days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'appointmentCount'], 'properties': {'day': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'appointmentCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'One row per UTC day that has appointments, canceled ones included, counting only appointments the signed-in account can view. Aggregate counts only: appointment identifiers and times, patient information, procedures, diagnoses and notes are never returned.'}, 'range': {'type': 'object', 'required': ['startTime', 'endTime'], 'properties': {'endTime': {'$ref': '#/properties/range/properties/startTime'}, 'startTime': {'type': 'string', 'maxLength': 32}}, 'additionalProperties': False}, 'appointmentCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'appointmentCountIsLowerBound': {'type': 'boolean', 'description': 'True when more than 100 appointments fall in the range'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Blocks per page, from 1 to 100; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page with the same filters; absent for the first page'}, 'endTime': {'$ref': '#/properties/startTime', 'description': 'Only blocks ending before this ISO 8601 date-time'}, 'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only this practice (24 lowercase hexadecimal characters); every practice when absent'}, 'startTime': {'type': 'string', 'maxLength': 32, 'description': 'Only blocks starting at or after this ISO 8601 date-time'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarEvents', 'nextCursor'], 'properties': {'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}, 'calendarEvents': {'type': 'array', 'items': {'type': 'object', 'required': ['startTime', 'endTime', 'allDay', 'scope', 'effect', 'type'], 'properties': {'type': {'anyOf': [{'enum': ['COURSE', 'MEETING', 'VACATION', 'SICK', 'HOLIDAY', 'MAINTENANCE', 'OTHER'], 'type': 'string'}, {'type': 'null'}]}, 'scope': {'anyOf': [{'enum': ['SEAT', 'PROVIDER', 'CLINIC'], 'type': 'string'}, {'type': 'null'}], 'description': 'CLINIC: the whole practice; PROVIDER: one or more staff; SEAT: 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': [{'$ref': '#/properties/calendarEvents/items/properties/startTime/anyOf/0'}, {'type': 'null'}]}, 'startTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Non-appointment calendar blocks, earliest first. Event identifiers, staff and chair references, titles, notes and patient links are never returned.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clinicId'], 'properties': {'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Practice id: 24 lowercase hexadecimal characters'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['providers'], 'properties': {'providers': {'type': 'array', 'items': {'type': 'object', 'required': ['displayName'], 'properties': {'displayName': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Display names of staff with a dentist (doctor), nurse or assistant role. Staff identifiers, contact details, role records and clinical data are never returned.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Practices per page, from 1 to 100; defaults to 20', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page of this listing; absent for the first page'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['clinics', 'nextCursor'], 'properties': {'clinics': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'timezone', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z]{3}$'}, {'type': 'null'}]}, 'timezone': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'pattern': '^[a-zA-Z]{2,3}([_-][a-zA-Z0-9]{2,8}){0,2}$'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Dental practices in the signed-in organization, administrative metadata only. Patient, appointment and clinical records are never returned.'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'Treatments per page, from 1 to 100; defaults to 50', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'maxLength': 4096, 'description': 'The nextCursor of the previous page with the same filters; absent for the first page'}, 'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Only this practice (24 lowercase hexadecimal characters); every practice when absent'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['procedures', 'nextCursor'], 'properties': {'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}], 'description': 'Cursor for the next page; null on the last page'}, 'procedures': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'price', 'lastEditTime'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'price': {'anyOf': [{'type': 'number', 'maximum': 1000000000000000, 'minimum': -1000000000000000}, {'type': 'null'}], 'description': "Price in the practice's currency"}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Treatment catalog entries in name order. Patient-linked treatments, tooth charts, diagnoses and record identifiers are never returned.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['clinicId'], 'properties': {'clinicId': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Practice id: 24 lowercase hexadecimal characters'}}}
Schéma de sortie
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['clinic', 'scheduleRange', 'appointmentCount', 'appointmentCountIsLowerBound', 'scheduleDays', 'procedureCount', 'procedureCountIsLowerBound', 'procedures', 'providerCount', 'providerCountIsLowerBound', 'availableDayCount', 'availableSlotCount', 'availabilityDays'], 'properties': {'clinic': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'currency', 'defaultLocale', 'timezone'], 'properties': {'id': {'anyOf': [{'type': 'string', 'pattern': '^[0-9a-f]{24}$'}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'currency': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z]{3}$'}, {'type': 'null'}]}, 'timezone': {'anyOf': [{'type': 'string', 'maxLength': 64}, {'type': 'null'}]}, 'defaultLocale': {'anyOf': [{'type': 'string', 'pattern': '^[a-zA-Z]{2,3}([_-][a-zA-Z0-9]{2,8}){0,2}$'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Administrative practice metadata; null when the practice was not found. The overview never includes individual appointment records, patient information, diagnoses, treatment details, notes or other clinical data.'}, 'procedures': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'price', 'lastEditTime'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'price': {'anyOf': [{'type': 'number', 'maximum': 1000000000000000, 'minimum': -1000000000000000}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 12}, 'scheduleDays': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'count'], 'properties': {'day': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 100}, 'providerCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'scheduleRange': {'type': 'object', 'required': ['startTime', 'endTime'], 'properties': {'endTime': {'type': 'string', 'maxLength': 32}, 'startTime': {'type': 'string', 'maxLength': 32}}, 'additionalProperties': False}, 'procedureCount': {'type': 'integer', 'maximum': 12, 'minimum': 0}, 'appointmentCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'availabilityDays': {'type': 'array', 'items': {'type': 'object', 'required': ['day', 'count'], 'properties': {'day': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'count': {'type': 'integer', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 7}, 'availableDayCount': {'type': 'integer', 'maximum': 7, 'minimum': 0}, 'availableSlotCount': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'providerCountIsLowerBound': {'type': 'boolean'}, 'procedureCountIsLowerBound': {'type': 'boolean'}, 'appointmentCountIsLowerBound': {'type': 'boolean'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
Feegow Clinic
Manages clinic patients, providers, appointments, schedules, benefit plans, insurance billing, financial records, units, employee…
WebDiet
Manages dietitian workflows including patients, anamnesis, anthropometry, nutrition calculations, meal data, prescriptions, appoi…
MFIT Personal
Supports personal trainers with student management, workout and evaluation records, retention analytics, check-ins, files, invoic…
DietBox
Enables dietitians to manage patients, health histories, measurements, meal plans, food diaries, appointments, messaging, goals, …
intakeq
Manages healthcare practice clients, appointments, intake questionnaires, treatment notes, diagnoses, invoices and practitioner s…
cliniko
Manages Cliniko patients, practitioners, practices, appointments, availability, treatment notes, products, and invoices.
Tabflows
Provides direct primary care practice listings, business calculators, pricing, integrations, workflows, documentation, and demo b…
DoctoFam Medical Clinic
Provides read-only clinic availability, providers, rooms, procedure catalogs, calendar blocks, and aggregate administrative sched…