Di akhir panduan ini, percakapan Claude membaca rentang sel dari tab Sheet di salah satu Notes osFoundry Anda, menulis ulang tab teks di Note yang sama, dan menambahkan tab Slides baru, sementara seseorang terus mengetik di Note itu. Setiap penulisan menyebutkan ID tab yang tepat dan versi Note yang terakhir dibaca Claude. Jika orang tersebut menyimpan sesuatu di sela-selanya, osFoundry menolak penulisan Claude, dan Claude membaca ulang sebelum mencoba lagi. Tidak ada editan siapa pun yang hilang.
Siapa mengerjakan apa
| Sisi Claude | Sisi osFoundry | |
|---|---|---|
| Login | Akun Claude Anda, tidak berubah | Koneksi yang Anda setujui untuk satu workspace |
| Note mana | Claude memilihnya dari daftar yang diberikan server | Hanya Notes di project yang sudah ditambahi koneksi tersebut |
| Tab mana | Claude harus mengirim tab_id yang tepat |
list_note_tabs mengembalikan setiap instance tab, termasuk dua Sheet dengan tipe yang sama |
| Konflik | Claude membaca ulang dan mengulang perubahannya | Penulisan membawa expected_version; versi usang ditolak, bukan digabung |
| Percobaan ulang | Claude boleh mengirim ulang panggilan yang sama |
idempotency_key yang sama mengembalikan hasil pertama alih-alih menulis dua kali |
| Persetujuan | Prompt izin tool milik Claude sendiri sebelum setiap penulisan | Hak edit Anda saat ini pada Note itu, dicek di setiap panggilan |
Persiapan
Konektornya sama dengan yang dari pengaturan custom connector Claude (ikon kunci → Connected → Add assistant, lalu tambahkan https://api.osfoundry.io/api/v1/external-mcp di Claude). Langkah-langkah di bawah mengasumsikan koneksi itu sudah ada dan sudah ditambahkan ke sebuah project.
1. Masukkan Note ke project yang terhubung
Buka Note, buka panel kanannya, lalu masuk ke Config → Settings. Kolom Project menampilkan "Add to project" (tambahkan ke project) kalau Note belum punya project. Pilih project tempat koneksi Claude berada.
Note yang hanya ada di perangkat ini tidak punya salinan di cloud, jadi koneksi tidak bisa melihatnya. Note harus sudah tersinkron ke workspace Anda.
2. Pastikan tool Note aktif
Di ikon kunci → Connected, pilih koneksi Claude lalu lihat Tools. Semua tool yang didukung aktif secara default. Untuk panduan ini, tool berikut harus tetap dicentang:
read list_note_tabs read_note_tab read_sheet_range list_note_attachments
write edit_note_tab create_note_tab add_note_source
Contoh: Daftar centang Tools pada koneksi Claude, semuanya aktif secara default
Untuk membuat chat hanya-baca sementara waktu, hapus centang tiga tool write lalu klik Save tools. Membaca tetap berfungsi.
3. Cek sebentar hak edit Anda
Penulisan Claude berjalan dengan hak orang yang menyetujui koneksi, dan dicek ulang di setiap panggilan. Jika Anda hanya bisa melihat Note, edit_note_tab ditolak meskipun tool-nya aktif. Buka tab Access di Note kalau ragu.
4. Minta dengan menyebut nama tab
Di chat Claude yang konektor osFoundry-nya aktif, sebutkan nama Note dan tab-nya. Claude sendiri yang mengubah nama menjadi ID tab, tetapi "sheet Owners" lebih tidak ambigu daripada "tabelnya".
Di osFoundry, buka Note "Q3 launch". Baca A1:D12 di sheet Owners,
tulis ulang tab Brief supaya setiap item terbuka punya penanggung jawab dari sheet itu,
lalu tambahkan tab Slides "Launch status" dengan satu slide per penanggung jawab.
Contoh eksekusi nyata
Isi Note dan jawaban Claude adalah data contoh. Nama tool dan nama argumen sama persis dengan yang didaftarkan server produksi di tools/list. Di Claude Code, tool yang sama muncul sebagai mcp__osfoundry__list_note_tabs dan seterusnya.
Contoh
Claude → list_note_tabs {"note_id": "…"}
← version "…41.118Z"
tab: 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 nilai
Claude → read_note_tab {"note_id": "…", "tab_id": "<Brief>"}
← teks, 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 meminta Anda mengizinkan panggilan tool ini → Allow]
← ditolak: Note berubah setelah versi itu
(sementara itu, Mika menambahkan "press kit" ke tab Brief di osFoundry)
Claude → read_note_tab {"note_id": "…", "tab_id": "<Brief>"}
← teks kini memuat "press kit", version "…07.502Z"
Claude → edit_note_tab {... "text": "… press kit — owner: Mika …",
"expected_version": "…07.502Z",
"idempotency_key": "brief-owners-2"}
← tersimpan, 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"}
← ID tab baru "<Launch status>"
Claude: Brief sekarang mencantumkan penanggung jawab untuk semua 9 item terbuka,
termasuk "press kit", yang ditambahkan Mika saat saya mengedit. Tab
Launch status yang baru punya satu slide per penanggung jawab.
Ada tiga hal yang terjadi yang tidak terlihat di chat biasa. Claude membaca rentang Sheet, bukan seluruh workbook. read_sheet_range mengembalikan paling banyak 100 kali 100 sel, jadi Sheet yang besar tidak membanjiri percakapan. Editan pertama memang sengaja gagal: versi Claude lebih lama daripada simpanan Mika. Claude tidak mengirim ulang teks lamanya dengan versi baru. Claude membaca ulang tab itu dan menulis Brief yang berisi perubahannya sekaligus baris dari Mika. Panggilan create membawa key-nya sendiri, jadi kalau balasannya hilang dan Claude memanggil lagi, osFoundry akan mengembalikan tab Launch status yang sama alih-alih membuat tab kedua.
Tab Owners archive adalah alasan ID tab itu penting. Satu Note bisa berisi beberapa tab Sheet atau Slides, dan nama atau tipe saja tidak menunjuk satu tab tertentu. Setiap panggilan edit_note_tab membutuhkan ID yang dikembalikan oleh list_note_tabs.
Di mana batasnya
Penulisan usang ditolak, tidak pernah digabung. osFoundry tidak mencoba menggabungkan teks Claude dengan teks orang tersebut di server, karena replace_text yang berisi teks lengkap tidak punya cara yang andal untuk tahu versi paragraf mana yang Anda maksud. Yang tahu maksudnya adalah agen, jadi agenlah yang mengulang perubahan di atas isi yang ada sekarang. Simpanan orang itu sendiri dari aplikasi desktop juga dijaga dengan cara yang sama. Sebuah simpanan membawa revisi tempat ia mulai, dan jika Note berubah di bawahnya, aplikasi menyimpan editan orang itu sebagai draf lokal dan menandai konflik sinkronisasi alih-alih menimpa perubahan Claude.
Versi itu milik Note. Anda mengambilnya dari list_note_tabs sebelum membuat tab dan dari read_note_tab sebelum mengedit tab. Ketika orang tersebut mengedit tab mana pun di Note, penulisan Claude berikutnya harus membaca ulang, meskipun menyasar tab lain. Pembacaan tambahan itu murah, dan memastikan Claude tidak pernah menulis berdasarkan gambaran Note yang sudah usang.
Membuat tab hanya menambah. create_note_tab membuat tab Slides dan Sheet, dan tidak bisa mengganti isi tab yang sudah ada. Setiap operasi edit cocok untuk satu jenis tab: replace_text untuk tab Note dan Markdown, slide_add dan slides_add_outline untuk Slides, sheet_set_range untuk sel Sheet yang tepat, replace_tab_data untuk tab konten lain yang didukung.
File tetap berupa metadata. list_note_attachments menampilkan Files dan Sources dari sebuah Note, tetapi tidak mengembalikan isi file maupun link unduhan. Link yang ditempel di chat bisa diteruskan ke mana saja, dan tetap berfungsi setelah koneksi dicabut. Claude bisa menambahkan sitasi dengan add_note_source, yang menerima URL HTTP atau HTTPS, versi Note, dan sebuah key, sama seperti penulisan lainnya.
Memindahkan Note memutus akses di panggilan berikutnya. Pindahkan ke project yang tidak ada di koneksi, hapus project dari koneksi, atau klik Revoke connection, dan pembacaan Claude berikutnya ditolak. Token yang diterbitkan sebelumnya tidak membuat akses tetap terbuka.
Selanjutnya
Minta Claude mengubah rentang Owners menjadi briefing lima slide di tab Slides baru, lalu edit sendiri satu judul slide saat Claude bekerja. Anda akan melihat penulisan yang ditolak dan pembacaan ulangnya di panggilan tool. Bagaimana tab Slides berdampingan dengan bagian lain dari Note ada di halaman Note Slides.

Top comments (0)