MCP server yang menghubungkan AI assistant ke data Accurate Online (barang, faktur, laporan keuangan) dalam bahasa natural
Server provides 7 tools with complete Zod schemas and descriptions in Indonesian. All tools are read-only and well-scoped to Accurate Online accounting data. Strengths: consistent naming (verb_noun pattern), all parameters typed with descriptions, error handling via errorResult() helper. Weaknesses: descriptions are functional but lack LLM-optimized guidance on WHEN to use each tool vs alternatives; no output schema documentation; parameter descriptions are minimal (avg ~40 chars, below 72-char baseline); no pagination guidance despite list_items and list_sales_invoices accepting page params; no error recovery hints (e.g., 'if token expired, re-run login').
Laporan umur piutang: daftar faktur penjualan belum lunas, dikelompokkan berdasarkan berapa lama sudah lewat jatuh tempo. Berguna untuk pertanyaan 'berapa piutang yang sudah lewat jatuh tempo?' atau 'siapa saja yang masih punya utang?'.
Laporan kas & bank: saldo seluruh akun kas, bank, dan setara kas pada tanggal tertentu. Berguna untuk pertanyaan 'berapa kas dan saldo bank saya?'.
Menampilkan detail satu barang/jasa berdasarkan ID. Gunakan setelah list_items untuk melihat rincian lengkap satu barang.
Menampilkan daftar barang/jasa dari Accurate Online. Berguna untuk pertanyaan seperti 'barang apa saja yang ada' atau 'cek stok X'.
Menampilkan daftar faktur pembelian dari Accurate Online. Berguna untuk pertanyaan soal pembelian, utang ke pemasok, atau pengeluaran. Butuh scope purchase_invoice_view (re-login lewat `bun run login` kalau token lama belum punya).
Output schemas not documented. Tools return JSON.stringify() of API responses without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract specific fields reliably.
Parameter descriptions are minimal and lack format/constraint guidance. E.g., 'Tanggal awal periode' does not explain accepted formats (YYYY-MM-DD vs DD/MM/YYYY both mentioned in profit_loss_report description but not in parameter docs). LLMs cannot validate inputs without explicit constraints.
No pagination guidance in list_items and list_sales_invoices descriptions. Tools accept 'page' param but do not document result limits, total count, or when to call next page. Agents may request all data in one call, exhausting context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Menampilkan daftar faktur penjualan. Berguna untuk pertanyaan soal omzet, penjualan terbaru, atau piutang.
Laporan laba rugi (income statement) dari Accurate Online: total penjualan, HPP, laba kotor, beban, dan laba bersih pada periode tertentu. Tanggal bisa ditulis YYYY-MM-DD atau DD/MM/YYYY. Contoh pertanyaan: 'berapa laba bersih bulan ini?'.
Error messages lack recovery guidance. errorResult() returns 'Gagal: <message>' without suggesting next steps. E.g., if token is invalid, should suggest 'Run `bun run login` to refresh credentials'.
Tool descriptions lack WHEN-to-use guidance. E.g., list_items vs get_item_detail distinction is clear, but profit_loss_report vs cash_flow_report vs aging_receivables_report lack guidance on which report answers which business question. LLMs may pick wrong tool.