
Uno dei vantaggi di avere un contratto di lavoro Svizzero consiste nel fatto di potere godere di un insieme di giorni di vacanza che in Italia non sono considerati tali. Ad esempio il 29 di Maggio è il giorno dell’Ascensione e per questo motivo non si lavora.
Uno degli svantaggi di avere un contratto di lavoro Svizzero risiede nel fatto che le festività tipicamente Italiane, come il prossimo 2 Giugno, Festa della Repubblica Italiana, non fanno altro che fare sollevare un sopracciglio alla confederazione. Per questo motivo, in questi giorni, festa non fa e si va a lavorà (Licenza poetica per fare tornare la rima)
Oggi è quindi vacanza in Svizzera e non avendo nessun impegno particolare se non portare a zonzo quel sacco di pelo che si chiama Buzz ho deciso di provare a mettere le mani su un piccolo progetto personale. Poca roba, ché la voglia di stare davanti ad uno schermo con il sole che comincia a scaldare è tanta come quella di andare a scuola il 7 di Gennaio.
Sono oramai mesi che sento parlare di MCP Server. Sono diventati la buzzword del momento quasi scalzando gli Agenti o, almeno, affiancandosi a loro con pieno diritto di cittadinanza. L’affollato panorama di cose che devi sapere per potere fare il figo quando ne parli si espande quindi con una nuova tecnologia.
Scherzi a parte. In quest’affare degli MCP Server io ci vedo un grandissimo valore. Permettere ad un Large Language Model di potere interagire con altre applicazioni e, potenzialmente, con il mondo esterno è una vera figata.
A questo punto si impone di metterci le mani e vedere quanto ho imparato leggendo a destra e a manca specifiche del protocollo MCP, diverse librerie rilasciata alla bisogna e pareri dei più diversi autori.
Rimane da trovare un campo di applicazione che rivesta una qualche utilità. Qui ricadiamo sempre nell’oramai noioso discorso. Tutti i tutorial, su qualsiasi argomento tecnico, che trovate ci fanno ritenere che basti fare copia ed incolla di tredici righe di codice per avere la presunzione di avere capito tutto.
No, non è proprio così che funziona. Dai, non ve la meno oltre con questo discorso, ché lo abbiamo sciorinate con grande ampiezza in passato.
Sta di fatto che ho deciso di risolvere un problema che vivo tutti i giorni che mi rompe le scatole oltre ogni misura. Citando la scala del vicequestore Schiavone, questa è “una rottura di palle del decimo livello”.
In attesa che le autorità governative che si occupano di fornirmi gli strumenti di lavoro di cui ho bisogno si impegnino a rilasciare le modifiche ad un sistema di cui ho bisogno, ho dovuto, meglio sarebbe dire “abbiamo dovuto”, fare ricorso a… dai, immaginate!
Sì, proprio lui, un becero foglio Excel depositato dentro un canale di Microsoft Teams che si deve aggiornare a manella ogni volta che è necessario. Si dà il caso che io questo file lo apra decine di volte al giorno. Ogni volta che lo apro devo fare cose diverse con i diversi filtri ed ogni volta perdo una mare di tempo che potrei dedicare a cose più interessanti e stimolanti.
So, che avete un pochino di curiosità e vorreste sapere che cosa diavolo contiene quel file. Purtroppo non ve lo posso dire. Sappiate solo che ci sono più meno 500 righe per 69 colonne. Sì, davvero, quando vogliamo farci male ci riusciamo proprio benissimo.
Quale migliore ‘use case’, come, ancora, dicono quelli fighi?
A questo punto ho fatto partire il mio amato PyCharm sul mio Mac e mi sono messo a scrivere questo benedetto MCP Server che finirà per parlare con l’applicazione desktop di Claude.
In sostanza la mia idea era quella di usare la libreria pandas per importarmi il file Excel e manipolarlo alla bisogna ed usare la libreria fastmcp per scrivere l’MCP Server.
Sono rimasto stupito dal fatto che sono riuscito a mettere tutto insieme in un paio d’ore di lavoro e, udite udite, senza usare l’AI per scrivere codice. Ok, rispetto a questa ultima affermazione vi dovete fidare del sottoscritto.
Ora posso tranquillamente chiacchierare con quel foglio Excel usando Claude. Per il momento non mi sono azzardato a scriverci su quel file. Non vorrei fare qualche disastro per il quale verrei condannato ad una “cura medievale per …” (dai, il resto lo conoscete).
Esperienza interessante che mi ha rivelato che, per quanto semplice, le considerazioni da fare nello scrivere il codice sono tante.