DEV Community

Cover image for Come far modificare le tue Notes di osFoundry a una chat di Claude senza sovrascrivere un collega
BBT for BBT Italiano

Posted on

Come far modificare le tue Notes di osFoundry a una chat di Claude senza sovrascrivere un collega

Alla fine, una conversazione di Claude legge un intervallo di celle da una scheda Sheet in una delle tue Notes di osFoundry, riscrive una scheda di testo nella stessa Note e aggiunge una nuova scheda Slides, mentre una persona continua a scrivere in quella Note. Ogni scrittura indica l'ID esatto della scheda e la versione della Note che Claude ha letto per ultima. Se nel frattempo la persona ha salvato qualcosa, osFoundry respinge la scrittura di Claude e Claude rilegge prima di riprovare. Non sparisce la modifica di nessuno.

Chi fa cosa

Lato Claude Lato osFoundry
Accesso Il tuo account Claude, invariato La connessione che hai approvato per un workspace
Quale Note Claude la sceglie tra quelle elencate dal server Solo Notes nei progetti a cui è stata aggiunta la connessione
Quale scheda Claude deve inviare un tab_id esatto list_note_tabs restituisce ogni istanza di scheda, comprese due Sheet dello stesso tipo
Conflitti Claude rilegge e rifà la sua modifica Le scritture portano expected_version; una obsoleta viene respinta, non unita
Nuovi tentativi Claude può reinviare la stessa chiamata La stessa idempotency_key restituisce il primo risultato invece di scrivere due volte
Approvazioni La richiesta di permesso degli strumenti di Claude prima di ogni scrittura I tuoi permessi di modifica attuali su quella Note, verificati a ogni chiamata

Configurazione

Il connettore è quello della configurazione del connettore personalizzato di Claude (icona della chiave → Connected → Add assistant, poi aggiungi https://api.osfoundry.io/api/v1/external-mcp in Claude). I passaggi seguenti presuppongono che quella connessione esista e sia aggiunta a un progetto.

1. Metti la Note nel progetto connesso

Apri la Note, apri il pannello a destra e vai su Config → Settings. Il campo Project mostra "Add to project" (aggiungi al progetto) quando la Note non ne ha uno. Scegli il progetto a cui appartiene la connessione di Claude.

Una Note che esiste solo su questo dispositivo non ha una copia nel cloud, quindi la connessione non può vederla. La Note deve essere sincronizzata con il tuo workspace.

2. Controlla che gli strumenti delle Note siano attivi

In icona della chiave → Connected, seleziona la connessione di Claude e guarda Tools. Tutti gli strumenti supportati sono attivi per impostazione predefinita. Per questa guida devono restare spuntati questi:

read   list_note_tabs   read_note_tab   read_sheet_range   list_note_attachments
write  edit_note_tab    create_note_tab add_note_source
Enter fullscreen mode Exit fullscreen mode

L'elenco Tools di una connessione di Claude, tutto attivo per impostazione predefinita

Esempio: L'elenco Tools di una connessione di Claude, tutto attivo per impostazione predefinita

Per lasciare una chat in sola lettura per un po', togli la spunta ai tre strumenti di scrittura e fai clic su Save tools. La lettura continua a funzionare.

3. Dai un'occhiata ai tuoi permessi di modifica

Le scritture di Claude vengono eseguite con i permessi della persona che ha approvato la connessione, ricontrollati a ogni chiamata. Se puoi solo visualizzare la Note, edit_note_tab viene rifiutato anche se lo strumento è attivo. Se hai dubbi, apri la scheda Access della Note.

4. Chiedi usando i nomi delle schede

In una chat di Claude con il connettore osFoundry attivo, indica la Note e le schede per nome. Claude converte da solo i nomi in ID di scheda, ma "il foglio Owners" è meno ambiguo di "la tabella".

In osFoundry, apri la Note "Q3 launch". Leggi A1:D12 nel foglio Owners,
riscrivi la scheda Brief in modo che ogni punto aperto abbia un responsabile preso da quel foglio,
poi aggiungi una scheda Slides "Launch status" con una slide per responsabile.
Enter fullscreen mode Exit fullscreen mode

Un'esecuzione reale

Il contenuto della Note e la risposta di Claude sono dati di esempio. I nomi degli strumenti e degli argomenti sono quelli che il server in produzione elenca in tools/list. In Claude Code gli stessi strumenti compaiono come mcp__osfoundry__list_note_tabs e così via.

Esempio

Claude → list_note_tabs {"note_id": "…"}
       ← version "…41.118Z"
         schede: Brief (note), Owners (sheet), Owners archive (sheet)
Claude → read_sheet_range {"note_id": "…", "tab_id": "<Owners>",
                           "start_row": 0, "start_col": 0,
                           "row_count": 12, "col_count": 4}
       ← 12 × 4 valori
Claude → read_note_tab {"note_id": "…", "tab_id": "<Brief>"}
       ← testo, version "…41.118Z"
Claude → edit_note_tab {"note_id": "…", "tab_id": "<Brief>",
                        "operation": "replace_text", "text": "…",
                        "expected_version": "…41.118Z",
                        "idempotency_key": "brief-owners-1"}
       [Claude ti chiede di consentire questa chiamata allo strumento → Allow]
       ← respinta: la Note è cambiata dopo quella versione

         (nel frattempo, Mika ha aggiunto "press kit" alla scheda Brief in osFoundry)

Claude → read_note_tab {"note_id": "…", "tab_id": "<Brief>"}
       ← il testo ora include "press kit", version "…07.502Z"
Claude → edit_note_tab {... "text": "… press kit — owner: Mika …",
                        "expected_version": "…07.502Z",
                        "idempotency_key": "brief-owners-2"}
       ← salvata, version "…19.044Z"
Claude → create_note_tab {"note_id": "…", "tab_type": "slides",
                          "label": "Launch status",
                          "slides": [{"title": "Aiko"}, {"title": "Mika"}, …],
                          "expected_version": "…19.044Z",
                          "idempotency_key": "launch-status-deck"}
       ← nuovo ID scheda "<Launch status>"

Claude: Ora il Brief indica un responsabile per tutti i 9 punti aperti, compreso
        "press kit", che Mika ha aggiunto mentre stavo modificando. La nuova
        scheda Launch status ha una slide per responsabile.
Enter fullscreen mode Exit fullscreen mode

Sono successe tre cose che in una chat normale non si vedono. Claude ha letto l'intervallo della Sheet invece dell'intera cartella di lavoro. read_sheet_range restituisce al massimo 100 per 100 celle, quindi una Sheet grande non inonda la conversazione. La prima modifica è fallita di proposito: la versione di Claude era più vecchia del salvataggio di Mika. Claude non ha reinviato il suo vecchio testo con la nuova versione. Ha riletto la scheda e ha scritto un Brief che contiene sia la sua modifica sia la riga di Mika. La chiamata di creazione ha una sua chiave, quindi se la risposta fosse andata persa e Claude avesse richiamato, osFoundry avrebbe restituito la stessa scheda Launch status invece di crearne una seconda.

La scheda Owners archive è il motivo per cui gli ID delle schede contano. Una Note può contenere più schede Sheet o Slides, e né un nome né un tipo ne individuano una sola. Ogni chiamata a edit_note_tab ha bisogno dell'ID restituito da list_note_tabs.

Dove sta il limite

Una scrittura obsoleta viene respinta, mai unita. osFoundry non prova a combinare sul server il testo di Claude con quello della persona, perché un replace_text a testo completo non ha un modo affidabile per sapere quale di due versioni di un paragrafo intendevi. L'intenzione la conosce l'agente, quindi è l'agente a rifare la modifica su ciò che c'è adesso. Anche i salvataggi della persona dall'app desktop sono protetti allo stesso modo. Un salvataggio porta con sé la revisione da cui è partito e, se nel frattempo la Note è cambiata, l'app conserva la modifica della persona come bozza locale e segnala un conflitto di sincronizzazione invece di salvare sopra la modifica di Claude.

La versione appartiene alla Note. La prendi da list_note_tabs prima di creare una scheda e da read_note_tab prima di modificarne una. Quando la persona modifica una qualsiasi scheda della Note, la scrittura successiva di Claude deve rileggere, anche se punta a un'altra scheda. La lettura in più costa poco e fa sì che Claude non scriva mai partendo da un'immagine superata della Note.

Creare una scheda aggiunge e basta. create_note_tab crea schede Slides e Sheet e non può sostituire il contenuto di una scheda esistente. Ogni operazione di modifica è adatta a un tipo di scheda: replace_text per le schede Note e Markdown, slide_add e slides_add_outline per Slides, sheet_set_range per celle precise di una Sheet, replace_tab_data per le altre schede di contenuto supportate.

I file restano metadati. list_note_attachments elenca i Files e le Sources di una Note, ma non restituisce né il contenuto dei file né link di download. Un link incollato in una chat potrebbe essere inoltrato ovunque e continuerebbe a funzionare dopo la revoca della connessione. Claude può aggiungere una citazione con add_note_source, che accetta un URL HTTP o HTTPS, la versione della Note e una chiave, come le altre scritture.

Spostare la Note chiude l'accesso dalla chiamata successiva. Spostala in un progetto che non fa parte della connessione, rimuovi il progetto dalla connessione o fai clic su Revoke connection, e la lettura successiva di Claude viene rifiutata. Un token emesso prima non la tiene aperta.

Prossimo passo

Chiedi a Claude di trasformare l'intervallo Owners in un briefing di cinque slide in una nuova scheda Slides, poi modifica tu stesso il titolo di una slide mentre lavora. Nelle chiamate agli strumenti vedrai la scrittura respinta e la rilettura. Come le schede Slides si affiancano al resto di una Note è spiegato nella pagina Note Slides.

Top comments (0)