Μετάβαση στο περιεχόμενο

Αναφορά MCP / Ραντεβού

Εργαλεία ραντεβού

Έξι εργαλεία για κρατήσεις, δεσμεύσεις έδρας και υπολογισμένη διαθεσιμότητα. Οι επικαλυπτόμενες κρατήσεις στην ίδια έδρα απορρίπτονται.

Πώς διαβάζεται

Κάθε εργαλείο παρακάτω παραθέτει τις παραμέτρους του ακριβώς όπως τις δηλώνει το σχήμα εισόδου: τον τύπο, αν είναι υποχρεωτική, τις επιτρεπτές τιμές όπου τις ορίζει το σχήμα, και τι σημαίνει η κάθε παράμετρος σύμφωνα με το σχήμα. Τίποτα από αυτά δεν γράφεται εδώ: ένα ποσό σε λεπτά, μια προεπιλογή που ισχύει αν παραλείψετε ένα πεδίο, ποια ενέργεια χρειάζεται ποιο id, όλα έρχονται από το ίδιο το εργαλείο.

Το practiceId δεν είναι ποτέ παράμετρος. Προέρχεται από το token σας, και οι διαδρομές εγγραφής το αφαιρούν αν το στείλει ο client.

Ένα εργαλείο που γράφει δείχνει ένα παράδειγμα για κάθε ενέργεια, γιατί αυτό που χρειάζεται μια ενέργεια δεν είναι ό,τι ορίζει υποχρεωτικό το σχήμα εισόδου: το σχήμα ζητά το action και τα υπόλοιπα τα αφήνει στην ενέργεια. Κάθε παράδειγμα είναι πλήρες αίτημα tools/call, και οι παράμετροί του ελέγχονται, όταν φτιάχνεται αυτή η σελίδα, με το ίδιο αντικείμενο που διαβάζει ο server. Τα σφάλματα επιστρέφονται μέσα σε απόκριση 200 με isError: δείτε την επισκόπηση MCP και τον πλήρη κατάλογο.

Ραντεβού

Κρατήσεις, δεσμεύσεις έδρας και υπολογισμένη διαθεσιμότητα.

get_day_agenda

Μόνο ανάγνωσηΚάθε μέλος

Το πρόγραμμα μιας ημέρας ή έως 7 ημερών, με ονόματα: τα ενεργά ραντεβού με ασθενή, υπηρεσία, έδρα και θεραπευτή, τα κλειστά διαστήματα χωριστά, μετρήσεις, και αν το ιατρείο είναι κλειστό.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
datestringΠροαιρετικόYYYY-MM-DD on the practice's clock. Defaults to today.
tostringΠροαιρετικόLast day, for a range of up to 7 days.
practitionerstringΠροαιρετικόA name, as the practice said it.
chairstringΠροαιρετικόA name, as the practice said it.
patientstringΠροαιρετικόA name, as the practice said it.
servicestringΠροαιρετικόA name, as the practice said it.
timestringΠροαιρετικόHH:mm on the practice's clock, only when one was named: the bookings that start then.
locationIdstringΠροαιρετικόOnly this location: an id from list_locations, only when the practice named a location.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_day_agenda",
    "arguments": {}
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

find_booking_slots

Μόνο ανάγνωσηΚάθε μέλος

Πότε χωράει ένα ραντεβού, με ονόματα: απάντηση για την ώρα που ζητήθηκε, ελεύθερες ώρες σε όλη τη μέρα με τις έδρες τους και έτοιμο σχέδιο κράτησης, και τα ραντεβού του ασθενή εκείνη τη μέρα. Ένα όνομα που ταιριάζει σε πολλούς επιστρέφει τους υποψηφίους, ποτέ μια εικασία.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
datestringΥποχρεωτικόYYYY-MM-DD on the practice's clock.
timestringΠροαιρετικόHH:mm on the practice's clock, only when one was named.
partOfDaystring: morning | afternoon | eveningΠροαιρετικόOnly when named. Morning ends 12:00, evening starts 17:00.
daysintegerΠροαιρετικόDays from date to look at. Defaults to 1.
patientstringΠροαιρετικόA name, as the practice said it.
servicestringΠροαιρετικόA name, as the practice said it. Its own length is used.
practitionerstringΠροαιρετικόA name, as the practice said it.
chairstringΠροαιρετικόA name, as the practice said it.
locationIdstringΠροαιρετικόOnly this location: an id from list_locations, only when the practice named a location.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "find_booking_slots",
    "arguments": {
      "date": "2026-11-02"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

list_appointments

Μόνο ανάγνωσηΚάθε μέλος

Λίστα ραντεβού σε χρονικό παράθυρο. Δώστε chairId για περιορισμό σε μία έδρα.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
fromstringΥποχρεωτικόStart of the window. ISO-8601 datetime with an explicit offset or Z, e.g. "2026-07-08T09:00:00Z" or "2026-07-08T12:00:00+03:00". A datetime without one is rejected — do not send "2026-07-08T09:00:00". A time a person says is on the practice's clock (get_practice → settings.timezone): send it with that zone's offset for that date, not as Z.
tostringΥποχρεωτικόEnd of the window. ISO-8601 datetime with an explicit offset or Z, e.g. "2026-07-08T09:00:00Z" or "2026-07-08T12:00:00+03:00". A datetime without one is rejected — do not send "2026-07-08T09:00:00". A time a person says is on the practice's clock (get_practice → settings.timezone): send it with that zone's offset for that date, not as Z.
chairIdstringΠροαιρετικόRestrict to one chair. Use list_chairs for ids.
practitionerIdstringΠροαιρετικόRestrict to one practitioner's appointments. Use list_practice_members for ids.
patientIdstringΠροαιρετικόRestrict to one patient's appointments. This is how a question about one person's bookings is answered — searching their name by text also matches names that contain it.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_appointments",
    "arguments": {
      "from": "2026-11-09T09:00:00.000Z",
      "to": "2026-11-09T09:00:00.000Z"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

get_appointment

Μόνο ανάγνωσηΚάθε μέλος

Ανάγνωση ενός ραντεβού με βάση το id.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
appointmentIdstringΥποχρεωτικό

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_appointment",
    "arguments": {
      "appointmentId": "d4398f97-d439-4c3a-9e21-7b84c5d10f33"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

get_appointment_availability

Μόνο ανάγνωσηΚάθε μέλος

Ελεύθερες ώρες μίας ημέρας σε όλες τις έδρες, ή σε μία έδρα ή για ένα άτομο, με βάση το ωράριο, τη ζώνη ώρας και τις υπάρχουσες κρατήσεις. Οι ώρες που πέρασαν δεν εμφανίζονται, και για μία ζητούμενη ώρα η απάντηση λέει αν είναι ελεύθερη.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
datestringΥποχρεωτικόThe calendar day to check, YYYY-MM-DD.
timestringΠροαιρετικόA time the practice asked about, HH:mm on its clock. Send it only when the practice named a time.
partOfDaystring: morning | afternoon | eveningΠροαιρετικόOnly times starting in this part of the day, by the server's bounds: morning before 12:00, afternoon 12:00 to 17:00, evening from 17:00. Send it only when the practice named one.
chairIdstringΠροαιρετικόOnly this chair. Send it only when the practice named a chair.
practitionerIdstringΠροαιρετικόOnly times this person is free (a practice-member id, from list_practice_members), on any chair that is free too. Send it only when the practice named the person.
serviceIdstringΠροαιρετικόThe service being booked; its own length is used. Send this whenever the caller named a treatment.
durationMinutesintegerΠροαιρετικόLength of the booking when no service says it: moving a booking keeps the length it already has. Overrides serviceId. Defaults to 30 when neither is given.

Παράδειγμα κλήσης

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_appointment_availability",
    "arguments": {
      "date": "2026-11-02"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the requested records" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.

write_appointment

ΓράφειΜπορεί να διαγράψειΚάθε μέλος

Δημιουργία, ενημέρωση ή ακύρωση ραντεβού. action=create απαιτεί chairId, startAt και endAt· update και cancel απαιτούν appointmentId. Το type είναι appointment, reminder ή unavailable· ο κλειστός χρόνος χωρίς έδρα και χωρίς επαγγελματία μπορεί να ορίσει locationId, ώστε να κλείνει μόνο εκείνη την τοποθεσία. Οι επικαλύψεις στην ίδια έδρα απορρίπτονται.

Παράμετροι

ΕργαλείοΤύποςΥποχρεωτικό;Τι σημαίνει
actionstring: create | update | confirm | decline | cancelΥποχρεωτικό
appointmentIdstringΠροαιρετικόThe appointment to update, confirm, decline or cancel.
expectedDatestringΠροαιρετικόRequired for action=update, decline and cancel. The calendar day (YYYY-MM-DD, the practice's clock) of the booking named in appointmentId, as you just described it to the user — "her Thursday appointment" means the date of that Thursday. It is checked against the booking: if they disagree, nothing happens and the answer says which day the booking is really on. Send the day you told the user, not the day you infer from the id.
typestring: appointment | reminder | unavailableΠροαιρετικόRequired for action=create. appointment = a patient booking; reminder = a note on the calendar; unavailable = blocked-out time.
datestringΠροαιρετικόThe day of the booking, YYYY-MM-DD, on the practice's clock. Send this with startTime and endTime and you do not have to work out any offset — the server does it. This is the easy way and the one to use for a time somebody said out loud.
startTimestringΠροαιρετικόWhen it starts, HH:MM on the practice's clock — 10:00 means ten in the morning there. Needs date. This WINS over startAt if both are sent, because it is the time the practice was shown.
endTimestringΠροαιρετικόWhen it ends, HH:MM on the practice's clock. Needs date. This wins over endAt if both are sent.
startAtstringΠροαιρετικόWhen it starts, as an exact instant. Use this ONLY for a value a tool handed you — the startAt of a free slot — and then send NOTHING else about the time. For a time somebody said, send date and startTime and no startAt: converting it yourself is how a 10:00 booking got stored at 07:00. ISO-8601 datetime with an explicit offset or Z, e.g. "2026-07-08T09:00:00Z" or "2026-07-08T12:00:00+03:00". A datetime without one is rejected — do not send "2026-07-08T09:00:00". A time a person says is on the practice's clock (get_practice → settings.timezone): send it with that zone's offset for that date, not as Z.
endAtstringΠροαιρετικόWhen it ends, as an exact instant. For a time somebody said, send date and endTime instead. ISO-8601 datetime with an explicit offset or Z, e.g. "2026-07-08T09:00:00Z" or "2026-07-08T12:00:00+03:00". A datetime without one is rejected — do not send "2026-07-08T09:00:00". A time a person says is on the practice's clock (get_practice → settings.timezone): send it with that zone's offset for that date, not as Z.
chairIdstringΠροαιρετικόThe chair being booked. Use list_chairs for ids. Required on a booking when the practice has more than one chair.
patientIdstringΠροαιρετικόThe patient being seen, if there is one.
practitionerIdstringΠροαιρετικόThe practitioner the appointment is with — a practice-member id, from list_practice_members. Optional: unassigned booking requests have none. For type=unavailable it is the person who is away (a seminar, leave): send it only when the practice named that person, and that person's free times then leave the block out. Leave it out when nobody in particular is away. Assigning someone to a type=appointment marks them as one of the practice's practitioners; blocked time never does.
titlestringΠροαιρετικόCalendar label, only when the user dictated one. Omitted, the calendar shows the patient and the service. A title that only repeats names already on the booking is not written (see ignoredFields in the answer).
colorstringΠροαιρετικόOptional calendar colour override. Defaults to the chair's colour; sending the chair's own colour is not written.
serviceRefstringΠροαιρετικόOptional free-text reference to the service being performed.
notesstringΠροαιρετικόOptional free-text notes on the booking.
locationIdstring | nullΠροαιρετικόBlocked time with no chair and no practitioner only: the location it closes, an id from list_locations, only when one was named. Omitted, the whole practice closes.

Παράδειγμα κλήσης

action=create

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_appointment",
    "arguments": {
      "action": "create",
      "type": "appointment",
      "patientId": "0f1c7a2e-5b6d-4c3a-9e21-7b84c5d10f33",
      "startAt": "2026-11-09T09:00:00.000Z",
      "endAt": "2026-11-09T09:30:00.000Z",
      "chairId": "6f708192-2d3e-4f80-9b4c-5d6e7f8091a2"
    }
  }
}

action=update

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_appointment",
    "arguments": {
      "action": "update",
      "appointmentId": "2b3c4d5e-8f9a-4b6c-9d0e-1f2a3b4c5d6e",
      "expectedDate": "2026-11-09",
      "startAt": "2026-11-09T10:00:00.000Z",
      "endAt": "2026-11-09T10:30:00.000Z"
    }
  }
}

action=confirm

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_appointment",
    "arguments": {
      "action": "confirm",
      "appointmentId": "2b3c4d5e-8f9a-4b6c-9d0e-1f2a3b4c5d6e",
      "chairId": "6f708192-2d3e-4f80-9b4c-5d6e7f8091a2"
    }
  }
}

action=decline

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_appointment",
    "arguments": {
      "action": "decline",
      "appointmentId": "2b3c4d5e-8f9a-4b6c-9d0e-1f2a3b4c5d6e",
      "expectedDate": "2026-11-09"
    }
  }
}

action=cancel

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_appointment",
    "arguments": {
      "action": "cancel",
      "appointmentId": "2b3c4d5e-8f9a-4b6c-9d0e-1f2a3b4c5d6e",
      "expectedDate": "2026-11-09"
    }
  }
}

Αποτέλεσμα

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": { "...": "the written record" },
    "content": [{ "type": "text", "text": "<the same JSON>" }]
  }
}

Σφάλματα

ΚωδικόςΚατάστασηΠότε
validation_failed400Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών.
not_found404Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο.
conflict409Η έδρα ή ο επαγγελματίας υγείας έχει ήδη κράτηση σε μέρος αυτής της ώρας, ή η κράτηση δεν είναι σε κατάσταση από την οποία επιτρέπεται αυτή η ενέργεια (μια ακυρωμένη κράτηση δεν επιβεβαιώνεται).
plan_feature_required403Το πακέτο του ιατρείου δεν το περιλαμβάνει. Το MCP χρειάζεται Complete.
subscription_read_only403Η συνδρομή έχει λήξει, οπότε το ιατρείο είναι μόνο για ανάγνωση και δεν γράφεται τίποτα.

Συχνές ερωτήσεις

Οι καρτέλες ασθενών κρυπτογραφούνται, και εκεί που φυλάσσονται και καθώς έρχονται στην οθόνη σας. Τα αρχεία είναι ιδιωτικά, και ο σύνδεσμος προς ένα αρχείο σταματά να δουλεύει μετά από λίγο. Οι αλλαγές στις καρτέλες των ασθενών καταγράφονται, με το ποιος τις έκανε και πότε. Δεν υπάρχει κοινός κωδικός ιατρείου: ο καθένας έχει τον δικό του λογαριασμό. Στο πακέτο Complete, ο ιδιοκτήτης του ιατρείου μπορεί επίσης να απαιτεί σύνδεση σε δύο βήματα για όλη την ομάδα.

Ναι. Ο ιδιοκτήτης του ιατρείου μπορεί να εξάγει τον κατάλογο ασθενών, τις αναφορές και το ιστορικό ενεργειών σε αρχείο υπολογιστικού φύλλου (CSV) μέσα από την εφαρμογή, και οποιοσδήποτε στο ιατρείο μπορεί να κατεβάσει τα αρχεία του οποιαδήποτε στιγμή. Τα δεδομένα του ιατρείου σας ανήκουν σε εσάς, χωρίς χρέωση ή καθυστέρηση εξαγωγής. Αυτό ισχύει και στα δύο πακέτα, στη δοκιμή, αλλά και μετά την ακύρωση.

Το HyperCRM είναι λογισμικό επί πληρωμή. Κάθε ιατρείο ξεκινά με δωρεάν δοκιμή 30 ημερών στο πακέτο Complete, χωρίς κάρτα. Στη συνέχεια τα πακέτα ξεκινούν από 19 € και 34 € τον μήνα, με ΦΠΑ. Η τιμή εξαρτάται από το πόσους επαγγελματίες υγείας απασχολείτε. Κάθε τιμή βρίσκεται στη σελίδα τιμών, οπότε δεν χρειάζεται να μιλήσετε με πωλητή.