In molte PMI il programma più importante non ha un marchio. L’ha scritto un programmatore interno, un consulente o una piccola software house; gira su un database SQL Server, su un file Access in una cartella condivisa o dietro un’applicazione web. Lì stanno commesse, preventivi, interventi, lotti. Questa pagina serve a capire se il tuo è collegabile a un assistente AI, in che modo e con il permesso di chi.
Cosa puoi chiedere a un software fatto in casa?
Le stesse cose che chiederesti a chi lo conosce bene, senza aspettare che abbia tempo. Un esempio per un’azienda di impianti con un programma commesse scritto su misura:
Quali commesse aperte hanno già superato le ore preventivate?
Tre commesse sono oltre il preventivo. La più lontana è C-2614: le ore in più sono quasi tutte del reparto montaggio.
| C-2614 · Gamma Srl | 212 h su 160 preventivate |
|---|---|
| C-2631 · Delta Spa | 95 h su 80 preventivate |
| C-2588 · Alfa Srl | 41 h su 40 preventivate |
Fonte: database commesse · tabelle ore e preventivi · sola lettura
Altri esempi, a seconda di cosa fa il tuo programma:
- Tracciabilità: in quali consegne è finito il lotto 24-118, e a quali clienti.
- Assistenza tecnica: interventi aperti da più di 10 giorni, per tecnico e per zona.
- Preventivi: offerte inviate nell’ultimo trimestre e non ancora accettate, sopra 5.000 €.
Il tuo software è collegabile? La checklist
Otto domande che ti facciamo alla prima chiamata. Non serve sapere rispondere a tutte.
| Domanda | Se la risposta è sì | Se è no, o non lo sai |
|---|---|---|
| I dati stanno in un database (SQL Server, MySQL, PostgreSQL, Firebird, Oracle…)? | Strada più semplice: viste in sola lettura | Si guardano file, esportazioni o l’interfaccia web |
| Il programma è usato da più persone in rete? | Il database è già raggiungibile da un server | Se vive su un solo PC, va prima messo in un posto stabile |
| Sai chi possiede il codice e il database? | Partiamo dal suo permesso | Si chiarisce prima di toccare qualsiasi cosa |
| Chi l’ha scritto è ancora raggiungibile? | Una sessione con lui accorcia molto il lavoro | Ricostruiamo il significato dai dati e da chi usa il programma |
| Tabelle e colonne hanno nomi comprensibili? | Il dizionario dei dati è rapido | Si dedica più tempo a tradurre i nomi |
| Ci sono dati delicati (stipendi, salute, dati di dipendenti)? | Si escludono dalle viste o si mascherano | Si procede come previsto |
| Esiste una copia di prova del database? | Si prova lì prima | Si lavora in sola lettura sulla produzione, con query leggere |
| Le regole di calcolo (prezzi, sconti, provvigioni) stanno nel codice? | Serve un piccolo servizio di lettura che le applichi | Bastano le viste |
Se rispondi sì alle prime tre, il caso è di solito semplice. Se rispondi no alla terza, il primo passo non è tecnico: è capire chi può autorizzare l’accesso.
Tre modi per esporre un software che non ha API
1. Viste in sola lettura sul database. Una vista è una query salvata che mostra solo le colonne e le righe scelte. Microsoft la descrive esplicitamente come meccanismo di sicurezza: gli utenti leggono la vista senza avere permessi sulle tabelle sottostanti [Microsoft]. In PostgreSQL l’accesso alle tabelle sotto una vista si controlla, di serie, con i permessi del proprietario della vista [PostgreSQL Global Development Group]; MySQL fa lo stesso con l’opzione predefinita SQL SECURITY DEFINER [Oracle (MySQL)]; anche Firebird supporta le viste [Firebird Project]. Il connettore entra con un utente che vede solo quelle viste, e nient’altro.
2. Un piccolo servizio di lettura. Serve quando la risposta non sta in una tabella ma in un calcolo del programma: il prezzo netto con gli sconti a cascata, lo stato di una commessa dedotto da tre campi. Si scrive un servizio con poche chiamate di sola lettura, accanto al software e non dentro, possibilmente insieme a chi conosce il codice.
3. Un’esportazione periodica. Quando il database non si può toccare, si usa quello che il programma già produce: un CSV, un Excel, un report salvato ogni notte in una cartella. Il connettore legge l’ultimo file. I dati sono aggiornati all’ultima esportazione, e va detto agli utenti.
Se invece il programma ha già delle API, si usano quelle. In ogni caso, verso l’assistente il connettore parla MCP, lo standard aperto per collegare gli assistenti AI a sistemi esterni [Model Context Protocol].
| Aspetto | Viste in sola lettura | Servizio di lettura | Esportazione periodica |
|---|---|---|---|
| Dati aggiornati | Al momento della domanda | Al momento della domanda | All’ultima esportazione |
| Cosa si aggiunge | Viste e un utente nel database | Un piccolo servizio accanto al software | Nulla, se l’esportazione esiste già |
| Serve chi conosce il codice? | Utile, non indispensabile | Sì, se le regole stanno nel codice | No |
| Quando la scegliamo | Database SQL raggiungibile | Logica nel codice o database chiuso | Database non accessibile o vincoli del fornitore |
| Scrittura in futuro | Non dalle viste: si progetta a parte | Possibile, con approvazione di una persona | No |
Access, SQL Server, MySQL, PostgreSQL, Firebird: cosa cambia?
| Dove stanno i dati | Cosa controlliamo | Strada tipica |
|---|---|---|
| File Access in una cartella condivisa | Dimensione, quante persone lo aprono insieme, se esiste un backup | Esportazione periodica, o copia dei dati in un database server |
| SQL Server | Versione, chi lo amministra, se ospita anche altri programmi | Viste dedicate e un utente con permessi solo su quelle |
| MySQL | Se l’applicazione web è in casa o presso un hosting | Viste con SQL SECURITY DEFINER e utente di sola lettura |
| PostgreSQL | Schemi e ruoli già presenti | Viste in uno schema separato e un ruolo di sola lettura |
| Firebird | Se il programma tiene il file aperto in modo esclusivo | Viste o esportazione, secondo come si comporta il programma |
| Fogli Excel condivisi | Se la struttura è stabile o cambia ogni mese | Lettura dei file con una struttura concordata |
Su Access c’è un dettaglio da sapere: per leggere file .mdb e .accdb da altri programmi serve un driver separato, e Microsoft indica che il supporto della versione 2016 di quel componente è terminato il 14 ottobre 2025 [Microsoft]. È uno dei motivi per cui, con Access, preferiamo esportazioni o una copia in un database server.
Chi deve dare l’accesso, e chi possiede cosa?
Nei software su misura le responsabilità sono spesso meno chiare che con un gestionale di mercato. Tre figure da mettere d’accordo:
- L’azienda, che dei dati è titolare: decide quali dati possono arrivare all’assistente e quali no, e autorizza per iscritto.
- Chi amministra il server, IT interno o fornitore esterno: crea l’utente di sola lettura e il canale di rete.
- Chi ha scritto il programma: se è una software house, si legge prima il contratto. Alcuni contratti di assistenza escludono interventi di terzi sul database, e conviene saperlo prima.
Se chi l’ha scritto non c’è più, non è un blocco. Si lavora sui dati, non sul programma, e tutto ciò che aggiungiamo si può rimuovere senza conseguenze per il software. Se invece sei tu ad aver scritto il software e vuoi offrirlo compatibile con l’AI ai tuoi clienti, la pagina giusta è quella per le software house.
Come arriva l’assistente a un software che gira in ufficio?
Claude, ChatGPT, Copilot e Gemini lavorano nei cloud dei loro fornitori: per usare i tuoi dati devono raggiungere un server MCP. Le strade documentate oggi:
| Strada | Per chi | Cosa sapere |
|---|---|---|
| Connettore in UE e canale verso l’ufficio | Tutti gli assistenti | È l’impostazione che proponiamo: il connettore gira a Francoforte e legge il database attraverso un canale concordato con il tuo IT, di solito una VPN |
| Indirizzi autorizzati sul firewall | Claude | Anthropic pubblica l’intervallo di indirizzi da cui chiama i server dei connettori [Anthropic] |
| Tunnel MCP di Claude | Claude Enterprise | Anteprima di ricerca, su richiesta; collegamento solo in uscita, nessuna porta aperta in ingresso [Anthropic] |
| Secure MCP Tunnel di OpenAI | ChatGPT e altri prodotti OpenAI | Collegamento in uscita senza aprire porte in ingresso; la pagina non indica i piani [OpenAI] |
| Connettività VPC | Gemini Enterprise | Disponibile dal 27 ottobre 2026 per i server MCP personalizzati [Google Cloud] |
| Estensione desktop | Una persona, in Claude Desktop | Il server gira sul PC dell’utente: utile per prove, non per un team [Anthropic] |
Una cosa da non confondere: il connettore e il suo registro stanno in UE, ma l’assistente elabora i risultati secondo il piano e le condizioni del suo fornitore. Per Claude, Anthropic indica che i dati sono conservati negli Stati Uniti [Anthropic]. Il confronto completo è nelle pagine su Claude, ChatGPT e Gemini.
Limiti e cose da sapere
- L’assistente risponde bene quanto i dati. Clienti doppi, campi note usati per tutto, stati mai aggiornati: con le prime domande vengono fuori subito. Nel pilota li segnaliamo; ripulirli è una decisione tua.
- Sola lettura di serie. Scrivere nel programma, per esempio creare un intervento in bozza, si fa solo tramite un servizio dedicato e con l’approvazione di una persona.
- Quando diciamo di no. Dati solo su carta o in PDF scansionati, file in un formato chiuso che nessuno sa leggere, nessuno in grado di autorizzare l’accesso. In questi casi un connettore non è la risposta giusta, e lo diciamo alla prima chiamata.
- Se il software è di un produttore, valgono la sua licenza e le sue API: guarda le pagine dei connettori per i gestionali.
Come lavoriamo su un software su misura
Si parte dalla checklist qui sopra e dalle 10 domande che volete fare. Poi accesso in sola lettura, dizionario dei dati, strumenti del connettore e prova sulle 10 domande, dentro l’assistente che usate già. È lo stesso schema del programma pilota di 21 giorni; come gestiamo accessi personali, registro e dati è spiegato in sicurezza. Se il vostro software su misura gira su IBM i, c’è una pagina dedicata all’AI su AS/400.