---
title: "Εργαλεία MCP — και τα 60, ανά τομέα"
description: "Κάθε εργαλείο MCP του HyperCRM: οι παράμετροί του, αν διαβάζει ή γράφει, αν μπορεί να διαγράψει ή να βγει έξω από το HyperCRM, και ποιος ρόλος το καλεί."
canonical: "https://hypercrm.app/el/docs/mcp/tools"
lang: "el"
updated: "2026-07-26"
---

_Τεκμηρίωση / MCP_

# Και τα 60 εργαλεία

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

[Ξεκινήστε δωρεάν δοκιμή](/dashboard) · [Πίσω στην αναφορά MCP](/el/docs/mcp)

> **Μία ανάγνωση, ένα εργαλείο· οι εγγραφές ομαδοποιούνται** — Κάθε ανάγνωση είναι δικό της εργαλείο, ώστε η επιλογή να είναι προφανής για ένα μοντέλο. Η δημιουργία, ενημέρωση και διαγραφή ενός πόρου συμπτύσσονται σε ένα εργαλείο write_* με υποχρεωτική παράμετρο action — έτσι η λίστα εργαλείων μένει διαχειρίσιμη και κάθε εγγραφή αρκετά ευρεία για να φέρει ουσιαστική προειδοποίηση διαγραφής.

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

**38 από τα 60 εργαλεία είναι μόνο ανάγνωσης** και μπορούν να κληθούν ελεύθερα. **15 μπορούν να διαγράψουν ή να ακυρώσουν δεδομένα.** **Τέσσερα βγαίνουν έξω από το HyperCRM** και αξίζουν επιβεβαίωση σε κάθε client: η αποστολή πρόσκλησης με email, η δημοσίευση της ιστοσελίδας στο διαδίκτυο, και η δημιουργία δημόσιου συνδέσμου φόρμας.

Το `practiceId` δεν είναι ποτέ παράμετρος — προέρχεται από το token. Όπου ένα εργαλείο δέχεται `action`, η ενέργεια καθορίζει ποιες άλλες παράμετροι είναι υποχρεωτικές· η περιγραφή το λέει.

### Ασθενείς

Ο φάκελος του ασθενή, οι σημειώσεις του και οι υποπόροι που κρέμονται από αυτόν.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_patients` | `search`, `status`, `tagId`, `limit`, `offset` | Μόνο ανάγνωση, Κάθε μέλος | Λίστα ασθενών του ιατρείου, με προαιρετική αναζήτηση και φίλτρα κατάστασης και ετικέτας. |
| `get_patient` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση ενός ασθενή με βάση το id. |
| `list_patient_notes` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Λίστα όλων των κλινικών σημειώσεων ενός ασθενή. |
| `list_patient_files` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Λίστα αρχείων ασθενή. Χρησιμοποιήστε το get_file για σύνδεσμο λήψης. |
| `list_patient_billing_entries` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Λίστα των χρεώσεων που έχουν καταγραφεί για έναν ασθενή, μαζί με το υπόλοιπο: τι οφείλει τώρα, το ίδιο ποσό με το καθολικό στη σελίδα του ασθενή. Χρησιμοποιήστε αυτό αντί να αθροίζετε εγγραφές. Μια εγγραφή receipt είναι είσπραξη, όχι παραστατικό. |
| `list_patient_invoices` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Λίστα των αποδείξεων και τιμολογίων που έχουν εκδοθεί για έναν ασθενή. |
| `get_patient_invoice_preview` | **`patientId`** | Μόνο ανάγνωση, Κάθε μέλος | Υπολογισμός προσχεδίου απόδειξης ή τιμολογίου για τις μη χρεωμένες εγγραφές, χωρίς έκδοση. Για έκδοση χρησιμοποιήστε write_invoice με action=issue. |
| `write_patient` | **`action`**, `patientId`, `firstName`, `lastName`, `dob`, `gender`, `email`, `phoneMobile`, `address`, `postcode`, `country`, `status`, `notifyByEmail`, `notifyBySms` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Δημιουργία, ενημέρωση ή διαγραφή ασθενή. action=create απαιτεί firstName και lastName· update και delete απαιτούν patientId. Η διαγραφή είναι μόνιμη. |
| `write_patient_note` | **`action`**, **`patientId`**, `noteId`, `title`, `body`, `isNext` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Δημιουργία, ενημέρωση ή διαγραφή σημείωσης ασθενή. action=create απαιτεί body· update και delete απαιτούν noteId. |
| `toggle_patient_tag` | **`patientId`**, **`tagId`** | Γράφει, Κάθε μέλος | Προσθέτει την ετικέτα αν λείπει, την αφαιρεί αν υπάρχει ήδη. |

### Ραντεβού

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

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_appointments` | **`from`**, **`to`**, `chairId` | Μόνο ανάγνωση, Κάθε μέλος | Λίστα ραντεβού σε χρονικό παράθυρο. Δώστε chairId για περιορισμό σε μία έδρα. |
| `get_appointment` | **`appointmentId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση ενός ραντεβού με βάση το id. |
| `get_appointment_availability` | **`chairId`**, **`date`**, **`durationMinutes`** | Μόνο ανάγνωση, Κάθε μέλος | Υπολογισμός ελεύθερων διαστημάτων μιας έδρας για μία ημέρα, με βάση το ωράριο, τη ζώνη ώρας και τις υπάρχουσες κρατήσεις. |
| `write_appointment` | **`action`**, `appointmentId`, `chairId`, `patientId`, `type`, `title`, `startAt`, `endAt`, `color`, `serviceRef`, `notes` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Δημιουργία, ενημέρωση ή ακύρωση ραντεβού. action=create απαιτεί chairId, startAt και endAt· update και cancel απαιτούν appointmentId. Το type είναι appointment, reminder ή unavailable. Οι επικαλύψεις στην ίδια έδρα απορρίπτονται. |

### Χρεώσεις, αποδείξεις και τιμολόγια

Το καθολικό των χρεώσεων και τα παραστατικά (αποδείξεις και τιμολόγια) που εκδίδονται από αυτό.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_billing_entries` | `from`, `to` | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Λίστα χρεώσεων για όλο το ιατρείο, προαιρετικά σε εύρος ημερομηνιών (ημέρες του ιατρείου, μαζί με την πρώτη και την τελευταία). Για έναν ασθενή, και για το τι οφείλει, χρησιμοποιήστε list_patient_billing_entries. |
| `get_billing_entry` | **`entryId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση μιας χρέωσης με βάση το id. |
| `get_invoice` | **`invoiceId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση εκδοθέντος παραστατικού (απόδειξης ή τιμολογίου) και των παγιωμένων γραμμών του. Για το προσχέδιο, get_patient_invoice_preview. |
| `get_appointment_charge` | **`appointmentId`** | Μόνο ανάγνωση, Κάθε μέλος | Τι χρειάζεται για να χρεωθεί ένα ραντεβού: αν μπορεί να χρεωθεί, και η υπηρεσία του καταλόγου που του αντιστοιχεί, με το id και την τιμή της. Χρησιμοποιήστε το πριν χρεώσετε ραντεβού με write_billing_entry. |
| `write_billing_entry` | **`action`**, `entryId`, `patientId`, `description`, `amount`, `quantity`, `serviceId`, `occurredAt`, `voidReason` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Δημιουργία, ενημέρωση ή ακύρωση χρέωσης. action=create απαιτεί patientId· update και void απαιτούν entryId. Η ακύρωση είναι αντιστροφή, όχι διαγραφή — η εγγραφή μένει στο καθολικό σημειωμένη ως άκυρη. Μια εγγραφή receipt καταγράφει είσπραξη και παίρνει αριθμό είσπραξης (HCRM-0001)· δεν είναι παραστατικό. Αποδείξεις και τιμολόγια εκδίδονται με write_invoice. |
| `write_invoice` | **`action`**, `patientId`, `invoiceId`, `voidReason` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Έκδοση απόδειξης ή τιμολογίου για τις μη χρεωμένες εγγραφές ασθενή (action=issue, απαιτεί patientId) ή ακύρωση εκδοθέντος παραστατικού (action=void, απαιτεί invoiceId). Η έκδοση παγιώνει τις τρέχουσες γραμμές. |

### Φόρμες

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

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_forms` | Καμία | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Λίστα των φορμών εισαγωγής και συναίνεσης του ιατρείου. |
| `get_form` | **`formId`** | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Ανάγνωση μιας φόρμας με τα πεδία της. |
| `list_form_submissions` | **`formId`** | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Λίστα όλων των υποβολών μιας φόρμας, νεότερες πρώτα. |
| `get_form_submission` | **`formId`**, **`submissionId`** | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Ανάγνωση μιας υποβολής και των απαντήσεών της. |
| `write_form` | **`action`**, `formId`, `patientId`, `title`, `description`, `isActive`, `fields` | Γράφει, Μπορεί να διαγράψει, Βγαίνει προς τα έξω, Μόνο ιδιοκτήτης | action=create φτιάχνει φόρμα· update επεξεργάζεται μεταδεδομένα· delete τη διαγράφει· replace_fields αντικαθιστά όλη τη λίστα πεδίων· create_link εκδίδει ΔΗΜΟΣΙΟ σύνδεσμο μίας χρήσης που λήγει σε 3 ημέρες (προαιρετικά δεσμευμένο σε ασθενή, του οποίου τον φάκελο οι απαντήσεις τότε αντικαθιστούν)· seed_defaults εγκαθιστά τα πρότυπα του pack. |

### Αρχεία

Το ανέβασμα γίνεται από τον browser στην αποθήκευση και δεν έχει εργαλείο· αυτά διαβάζουν και αφαιρούν ό,τι έχει αποθηκευτεί.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `get_file` | **`fileId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση μεταδεδομένων αρχείου με βραχύβιο υπογεγραμμένο σύνδεσμο λήψης. Για ids, list_patient_files. |
| `delete_file` | **`fileId`** | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Μόνιμη διαγραφή αρχείου. |

### Αναφορές και αναζήτηση

Συγκεντρωτικά και αναζήτηση σε πολλές οντότητες. Οι τρεις αναφορές και το ιστορικό ελέγχου απαιτούν ιδιοκτήτη.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `get_dashboard_kpis` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Βασικοί δείκτες — σημερινά ραντεβού, ανεξόφλητα υπόλοιπα, πρόσφατη δραστηριότητα. |
| `get_appointments_report` | `from`, `to`, `groupBy` | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Πλήθος ραντεβού ανά διάστημα. Το groupBy είναι day, week ή month. |
| `get_revenue_report` | `from`, `to`, `groupBy` | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Σύνολα εσόδων ανά διάστημα. Το groupBy είναι day, week ή month. |
| `get_patient_acquisition_report` | `from`, `to`, `groupBy` | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Πλήθος νέων ασθενών ανά διάστημα. Το groupBy είναι day, week ή month. |
| `list_audit_log` | `type`, `from`, `to`, `limit`, `offset` | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Ανάγνωση του ιστορικού ελέγχου, νεότερα πρώτα. Φίλτρα τύπου οντότητας και εύρους ημερομηνιών. |
| `search` | **`q`**, `limit` | Μόνο ανάγνωση, Κάθε μέλος | Αναζήτηση σε πολλές οντότητες του ιατρείου — ασθενείς, ραντεβού και άλλα. |

### Ειδοποιήσεις

Τα εισερχόμενα του ίδιου του χρήστη. Όχι για όλο το ιατρείο.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_notifications` | `unreadOnly`, `limit`, `offset` | Μόνο ανάγνωση, Κάθε μέλος | Λίστα των ειδοποιήσεών σας, νεότερες πρώτα, με το πλήθος μη διαβασμένων. Με unreadOnly=true παραλείπονται οι διαβασμένες. |
| `mark_notifications_read` | **`action`**, `notificationId` | Γράφει, Κάθε μέλος | Σήμανση μιας ειδοποίησης ως διαβασμένης (action=one, απαιτεί notificationId) ή όλων (action=all). |

### Ιατρείο και προσωπικό

Το προφίλ του ιατρείου, τα μέλη του και οι προσκλήσεις προσωπικού.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `get_practice` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση του προφίλ και των ρυθμίσεων του ιατρείου. |
| `get_me` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση του χρήστη, του ιατρείου του, του ρόλου του και του vertical pack του ιατρείου. |
| `list_practice_members` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Λίστα μελών προσωπικού και ρόλων. |
| `list_invitations` | Καμία | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Λίστα εκκρεμών προσκλήσεων προσωπικού. |
| `update_practice` | `name`, `address`, `phone`, `email`, `website`, `country`, `currency`, `packId`, `workTimeStart`, `workTimeEnd`, `calendarSlotMinutes`, `reminderLeadMinutes`, `taxPercentage`, `includeTaxInInvoices`, `timezone`, `mfaRequired` | Γράφει, Μόνο ιδιοκτήτης | Ενημέρωση του ιατρείου. Πεδία προφίλ και ρυθμίσεων μπορούν να συνδυαστούν σε μία κλήση· κάθε άγνωστο πεδίο απορρίπτεται. |
| `update_me` | **`locale`** | Γράφει, Κάθε μέλος | Ενημέρωση των δικών σας προτιμήσεων. Ρυθμίζεται μόνο η γλώσσα διεπαφής. |
| `report_bug` | **`description`**, `expected`, `pagePath` | Γράφει, Κάθε μέλος | Αναφορά σφάλματος στο ίδιο το HyperCRM. Η αναφορά αποθηκεύεται και στέλνεται με email στην ομάδα του HyperCRM, μαζί με το ποιος τη στέλνει. Έως 5 ανά χρήστη την ώρα. Μη γράφετε στοιχεία ασθενών. |
| `write_practice_member` | **`action`**, **`membershipId`**, `role` | Γράφει, Μόνο ιδιοκτήτης | action=update_role θέτει ρόλο owner ή assistant· action=remove αφαιρεί το μέλος. Και τα δύο απορρίπτονται αν θα άφηναν το ιατρείο χωρίς ιδιοκτήτη. |
| `write_invitation` | **`action`**, `invitationId`, `email`, `role` | Γράφει, Μπορεί να διαγράψει, Βγαίνει προς τα έξω, Μόνο ιδιοκτήτης | action=create ΣΤΕΛΝΕΙ ΠΡΑΓΜΑΤΙΚΟ EMAIL με σύνδεσμο μίας χρήσης που λήγει σε 3 ημέρες· action=revoke διαγράφει εκκρεμή πρόσκληση. |

### Κατασκευαστής ιστοσελίδας

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

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `get_site` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση της ιστοσελίδας με σελίδες, modules και FAQ. Επιστρέφει null αν δεν έχει δημιουργηθεί. |
| `list_site_page_modules` | **`pageId`** | Μόνο ανάγνωση, Κάθε μέλος | Ανάγνωση των modules και FAQ μιας σελίδας. |
| `check_site_slug_available` | **`slug`** | Μόνο ανάγνωση, Μόνο ιδιοκτήτης | Έλεγχος αν ένα slug είναι έγκυρο και ελεύθερο. Επιστρέφει διαθεσιμότητα και αιτία όταν δεν είναι. |
| `write_site` | **`action`**, `slug`, `title`, `description`, `themeId`, `isPublished` | Γράφει, Μπορεί να διαγράψει, Βγαίνει προς τα έξω, Μόνο ιδιοκτήτης | action=create δημιουργεί την ιστοσελίδα· update αλλάζει ρυθμίσεις· publish ΔΗΜΟΣΙΕΥΕΙ ΤΟ ΤΡΕΧΟΝ ΠΡΟΣΧΕΔΙΟ στο διαδίκτυο, ορατό αμέσως σε οποιονδήποτε. |
| `update_site_page` | **`pageId`**, `title`, `slug`, `metaTitle`, `metaDescription`, `isPublished` | Γράφει, Μόνο ιδιοκτήτης | Επεξεργασία μεταδεδομένων μιας σελίδας — τίτλος, slug, SEO. |
| `write_site_module` | **`action`**, `pageId`, `moduleId`, `type`, `position`, `content` | Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης | action=create προσθέτει module σε σελίδα (απαιτεί pageId)· update και delete απαιτούν moduleId. Οι αλλαγές αφορούν το προσχέδιο μέχρι τη δημοσίευση. |
| `write_site_faq` | **`action`**, `pageId`, `faqId`, `question`, `answer`, `position` | Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης | action=create προσθέτει FAQ σε σελίδα (απαιτεί pageId)· update και delete απαιτούν faqId. |
| `list_blog_posts` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Εμφανίζει τα άρθρα του ιστολογίου — πρόχειρα και δημοσιευμένα — με τη διεύθυνση, την κατάστασή τους και το κείμενό τους. |
| `list_blog_categories` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Εμφανίζει τις κατηγορίες στις οποίες μπορεί να καταχωρηθεί ένα άρθρο. Καλέστε το πριν γράψετε άρθρο αν θέλετε να ορίσετε κατηγορία: το id πρέπει να ανήκει σε αυτόν τον ιστότοπο. |
| `write_blog_post` | **`action`**, `postId`, `title`, `slug`, `excerpt`, `body`, `coverFileId`, `categoryId`, `authorTeamMemberId`, `status`, `metaTitle`, `metaDescription` | Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης | Δημιουργεί, επεξεργάζεται ή διαγράφει άρθρο. Το create χρειάζεται τίτλο, διεύθυνση και κείμενο· τα update και delete χρειάζονται postId. Το άρθρο δημιουργείται ως ΠΡΟΧΕΙΡΟ, και η αλλαγή μόνο της κατάστασής του δεν το βγάζει στον ζωντανό ιστότοπο — πρέπει να δημοσιευτεί ο ίδιος ο ιστότοπος. |

### Κατάλογοι

Έδρες, υπηρεσίες και ετικέτες — οι λίστες από τις οποίες επιλέγει το υπόλοιπο προϊόν.

| Εργαλείο | Παράμετροι | Πρόσβαση | Τι κάνει |
| --- | --- | --- | --- |
| `list_chairs` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Λίστα των εδρών θεραπείας (κρατήσιμοι πόροι). |
| `list_services` | `isPublic` | Μόνο ανάγνωση, Κάθε μέλος | Λίστα του καταλόγου υπηρεσιών. Με isPublic=true μόνο όσες προσφέρονται στη δημόσια σελίδα κράτησης. |
| `list_tags` | Καμία | Μόνο ανάγνωση, Κάθε μέλος | Λίστα όλων των ετικετών του ιατρείου. |
| `write_chair` | **`action`**, `chairId`, `name`, `color`, `isActive` | Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης | Δημιουργία, ενημέρωση ή διαγραφή έδρας. Τα update και delete απαιτούν chairId. |
| `write_service` | **`action`**, `serviceId`, `name`, `description`, `durationMinutes`, `price`, `isPublic`, `isActive` | Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης | Δημιουργία, ενημέρωση ή διαγραφή υπηρεσίας, ή εγκατάσταση του προεπιλεγμένου καταλόγου του pack με action=seed_defaults. Τα update και delete απαιτούν serviceId. |
| `write_tag` | **`action`**, `tagId`, `name`, `color` | Γράφει, Μπορεί να διαγράψει, Κάθε μέλος | Δημιουργία, ενημέρωση ή διαγραφή ετικέτας ασθενή. Τα update και delete απαιτούν tagId. Η διαγραφή την αφαιρεί από κάθε ασθενή που τη φέρει. |

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

### Πώς προστατεύονται τα δεδομένα των ασθενών;

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

### Γιατί τα εργαλεία εγγραφής δέχονται παράμετρο action αντί να είναι ξεχωριστά;

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

### Ποια εργαλεία πρέπει να επιβεβαιώνει πάντα ο client μου;

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

### Απαιτούν όντως ρόλο ιδιοκτήτη τα εργαλεία φορμών, ακόμη και οι αναγνώσεις;

Ναι. Οι υποβολές φορμών περιέχουν κλινικές απαντήσεις, οπότε όλος ο τομέας βρίσκεται πίσω από τον ρόλο ιδιοκτήτη και όχι μόνο οι εγγραφές του. Αυτό αντικατοπτρίζει ακριβώς το REST API — το MCP δεν είναι παρακαμπτήριος μιας άδειας που επιβάλλει η επιφάνεια HTTP.