Lanjut ke konten
Samkarsa Logbook

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.

MCP,Samkarsa,Jualan3mnt baca

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): sajen murni 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 sajen ke 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_id dan POST /api/v1/smart-notes/:tenant_id.
  • Di dalam registrasi server.tool("parse_transaction"), kode akan memanggil fungsi kueri lokal ke tabel smart_notes berdasarkan args.tenant_id untuk 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 AppSetting untuk mengambil voice_ai_rules.
  • Menghapus lemparan parameter aturan AI pada saat memanggil mcp_client.parse_transaction.
  • Membuat router /smart-notes di 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.

  1. Simpan Aturan: Buka menu Smart Note di Blonjo UI. Tulis aturan: “Simbol # berarti metode pembayaran”. Klik Simpan.
  2. Cek Aliran Data: Verifikasi network request berhasil melewati rute proxy Sajen dan data masuk ke tabel smart_notes di database MCP.
  3. Uji Transaksi: Masukkan teks di Omnibar: “Jual kopi 5000 #”.
  4. 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_id dan POST.
  • MCP Tool: Modifikasi transactionParser.ts agar mengambil konteks aturan secara mandiri.
  • Sajen API: Buat endpoint proxy /api/v1/smart-notes di Sajen yang meneruskan request ke MCP.
  • Sajen Accounting: Hapus logika query dan pengiriman voice_ai_rules ke MCP.
  • Blonjo UI: Update halaman SmartNoteSettings agar mengarah ke endpoint proxy baru.