Αρχιτεκτονική και ροή δεδομένων

Το whatsapp-mcp αποτελεί μια ενδιαφέρουσα προσέγγιση για την ενσωμάτωση προσωπικών δεδομένων επικοινωνίας σε workflows παραγωγικής τεχνητής νοημοσύνης (Generative AI). Η λύση βασίζεται σε έναν stateless Worker που επικοινωνεί με ένα Durable Object, το οποίο λειτουργεί ως ο κεντρικός αποθηκευτικός χώρος (source of truth) για τα μηνύματα και τα κλειδιά αυθεντικοποίησης.

Η επικοινωνία με τους διακομιστές του WhatsApp επιτυγχάνεται μέσω της βιβλιοθήκης Baileys, η οποία προσομοιώνει τη συμπεριφορά μιας συσκευής WhatsApp Web. Για να λειτουργήσει στο περιβάλλον του Cloudflare, το project χρησιμοποιεί shims για τα Node.js sockets και μεταγλώττιση του WebAssembly (Wasm) του Baileys, παρακάμπτοντας τους περιορισμούς του runtime workerd.

Διαχείριση κατάστασης και συγχρονισμός

Η αποθήκευση των δεδομένων γίνεται σε μια βάση SQLite εντός του Durable Object, η οποία υποστηρίζει πλήρη αναζήτηση κειμένου (FTS5). Η διαδικασία συγχρονισμού είναι σχεδιασμένη να είναι ιδιοδύναμη (idempotent): κατά την εισαγωγή δεδομένων, το σύστημα πραγματοποιεί upserts, διασφαλίζοντας ότι δεν δημιουργούνται διπλότυπα μηνύματα σε περίπτωση επανασύνδεσης.

Τεχνικές προκλήσεις και περιορισμοί

Η υλοποίηση αντιμετωπίζει σημαντικά σημεία συμφόρησης (bottlenecks) κατά την αρχική φάση συγχρονισμού, καθώς η αποκωδικοποίηση του ιστορικού απαιτεί σημαντικούς πόρους CPU. Επιπλέον, η χρήση του lru-cache έπρεπε να τροποποιηθεί, καθώς η προεπιλεγμένη συμπεριφορά autopurge δημιουργούσε υπερβολικό αριθμό timers, οδηγώντας σε QuotaExceededError εντός του περιβάλλοντος των Workers.

Ασφάλεια και ιδιωτικότητα

Το εργαλείο έχει σχεδιαστεί με αυστηρή προσέγγιση «μόνο ανάγνωσης» (read-only). Δεν παρέχεται δυνατότητα αποστολής μηνυμάτων, γεγονός που μειώνει την επιφάνεια επίθεσης. Ωστόσο, επειδή η χρήση του πρωτοκόλλου μέσω τρίτων βιβλιοθηκών δεν είναι επίσημα υποστηριζόμενη από το WhatsApp, η χρήση του ενέχει ρίσκο συμμόρφωσης με τους όρους χρήσης της πλατφόρμας.