v1.0.0-005 : [DRAFT] Plan Sentralisasi Smart Note di MCP
Analisis Arsitektur, Efisiensi, Latensi, dan Rencana Implementasi Pemindahan Sistem Aturan AI ke MCP Server untuk Ekosistem Samkarsa.
Saat ini, aturan AI (seperti Voice AI Rules) disimpan di dalam database masing-masing aplikasi (di tabel AppSetting pada backend sajen). Rencana ini bertujuan memigrasikan penyimpanan dan manajemen Smart Note / AI Rules secara terpusat ke dalam MCP Server (~/kerjaan/mcp-server).
Dengan sentralisasi ini, setiap aturan yang dibuat oleh pengguna di satu aplikasi (misal: Blonjo) akan secara otomatis berlaku dan terhubung untuk seluruh ekosistem aplikasi Samkarsa lainnya tanpa duplikasi data.
Memusatkan Knowledge Base di MCP Server adalah langkah yang selaras dengan fondasi Microservices/Agentic Architecture. Berikut analisanya:
- Kondisi Lama:
sajen(sebagai Core Accounting & Inventory Engine) sibuk mengurusi instruksi NLP dan melakukan query aturan, lalu mengirimkannya ke MCP. - Kondisi Baru (MCP Sentral):
sajenmurni fokus pada logika akuntansi. Urusan bagaimana menginterpretasikan kalimat menjadi tanggung jawab penuh MCP Server. Ekosistem menjadi sangat scalable. Aplikasi baru di Samkarsa tinggal panggil MCP, dan semua aturan bisnis (simbol, kosakata) langsung teraplikasi.
- Sistem tidak perlu lagi mereplikasi aturan di setiap database aplikasi (DRY - Don’t Repeat Yourself).
- Jika ada update pada memori vektor AI, hanya database MCP yang perlu diperbarui.
- Menurunkan Beban Jaringan: Payload yang dikirim dari
sajenke MCP menjadi sangat kecil (hanya ID Tenant dan teks transaksi). - Zero-Latency Injection: MCP Server merakit prompt dengan mengambil aturan dari database lokalnya sendiri (di internal Node.js/Express) sebelum dikirim ke LLM.
Karena MCP Server berjalan terpisah di VPS, kita akan memanfaatkan infrastruktur Express.js yang sudah ada di mcp-server/src/index.ts (seperti endpoint /api/settings dan /api/v1/rag/templates yang saat ini sudah berjalan) untuk menambahkan rute REST API CRUD Smart Note.
Open Question:
Apakah Anda setuju jika antarmuka Blonjo UI menembak endpoint sajen terlebih dahulu, lalu sajen meneruskannya (mem-proxy) ke endpoint baru di MCP Server?
(Rekomendasi ini dipilih untuk menjamin keamanan dan validasi token pengguna tetap terpusat di gateway Sajen).
Menambahkan tabel baru di database MCP Server khusus untuk menyimpan aturan per tenant.
File: ~/kerjaan/mcp-server/src/config/database.ts (atau file inisialisasi tabel)
- Menambahkan DDL/inisialisasi tabel
smart_notes(kolom:id, tenant_id, rule_text, is_active).
Menambahkan rute REST API di aplikasi Express MCP untuk manajemen aturan, sejajar dengan struktur API yang sudah ada.
File: ~/kerjaan/mcp-server/src/index.ts
- Menambahkan endpoint
GET /api/v1/smart-notes/:tenant_iddanPOST /api/v1/smart-notes/:tenant_id. - Di dalam registrasi
server.tool("parse_transaction"), kode akan memanggil fungsi kueri lokal ke tabelsmart_notesberdasarkanargs.tenant_iduntuk disisipkan ke dalam prompt.
Menghapus beban Sajen untuk merakit dan mengirim voice_ai_rules.
File: sajen/app/api/v1/accounting.py & sajen/app/api/v1/smart_notes.py (File Baru)
- Menghapus query ke
AppSettinguntuk mengambilvoice_ai_rules. - Menghapus lemparan parameter aturan AI pada saat memanggil
mcp_client.parse_transaction. - Membuat router
/smart-notesdi Sajen API yang berfungsi sebagai proxy HTTP (mirip dengan komunikasi microservices) untuk meneruskan data dari Blonjo UI ke URL REST API MCP Server.
File: blonjo/src/pages/settings/SmartNoteSettings.tsx
- Mengarahkan aksi fetch dan save catatan ke endpoint proxy baru di backend Sajen.
- Simpan Aturan: Buka menu Smart Note di Blonjo UI. Tulis aturan: “Simbol # berarti metode pembayaran”. Klik Simpan.
- Cek Aliran Data: Verifikasi network request berhasil melewati rute proxy Sajen dan data masuk ke tabel
smart_notesdi database MCP. - Uji Transaksi: Masukkan teks di Omnibar: “Jual kopi 5000 #”.
- Validasi Kemerdekaan MCP: Verifikasi di log MCP Server bahwa sistem berhasil mem-parsing instruksi tersebut tanpa menerima operan teks aturan dari Sajen, membuktikan kemandirian MCP Server dalam mengelola konteks NLP.
- Database MCP Server: Buat tabel
smart_notes(id, tenant_id, rule_text, is_active). - API MCP Server: Buat endpoint
GET /api/v1/smart-notes/:tenant_iddanPOST. - MCP Tool: Modifikasi
transactionParser.tsagar mengambil konteks aturan secara mandiri. - Sajen API: Buat endpoint proxy
/api/v1/smart-notesdi Sajen yang meneruskan request ke MCP. - Sajen Accounting: Hapus logika query dan pengiriman
voice_ai_ruleske MCP. - Blonjo UI: Update halaman SmartNoteSettings agar mengarah ke endpoint proxy baru.