Taokeh

Developer documentation

The Taokeh MCP server

Taokeh runs an official Model Context Protocol server. Connect Claude, ChatGPT or any MCP-capable client to a Taokeh workspace and it can read the live books — sales, cash, aging, stock, statements — and file drafts a human approves. Live since 16 July 2026, 37 tools.

Endpoint
https://taokeh.my/mcp
Transport
Streamable HTTP (MCP)
Tools
37 — 28 read, 9 write (drafts only)
Auth
OAuth 2.1 with dynamic client registration and PKCE, or a personal access token as a bearer
Tested clients
claude.ai · ChatGPT custom connectors · Claude Desktop · Claude Code · Cursor
Price
RM29/month add-on, included in the 14-day free trial

The first Malaysian-built accounting AI connector we are aware of (as of July 2026).

Connecting

claude.ai and ChatGPT. Add https://taokeh.my/mcp as a custom connector. The client registers itself, you are bounced to Taokeh to log in, and a consent screen names the workspace and the scope before anything is granted. No key to copy, no config file to edit.

Claude Desktop, Claude Code, Cursor and other CLI clients. Generate a personal access token inside Taokeh (they look like tkm_…) and send it as Authorization: Bearer <token>. Tokens are stored only as a hash, are scoped to one workspace, and can be revoked at any time.

Both routes need the AI connector add-on switched on for the workspace. The tenant-facing setup walkthrough lives on the Ask Taokeh connector page.

The safety contract

This is a design decision, not a limitation we are working around. An AI connected to a business’s books must not be able to change them.

Reads are free

Every read tool answers immediately. Ask for the aging, the cash position, last month’s P&L or a product’s stock and the answer comes straight from the ledger — no approval step, because a read changes nothing.

Writes are drafts

Every write tool files a pending draft. It appears in Taokeh for the owner to check against the original document, and only the human tap posts it. Six draft kinds: expense, bill, invoice, quote, customer receipt, and a contact read off a name card.

It can never post, edit or delete

There is no tool that posts to the ledger, amends a posted document, voids one, deletes anything, confirms a bank row, or sends an email. Bank statement rows import into a review queue; classification suggestions are proposals the owner sees, not decisions.

Your AI does the processing — ours never does

On MCP paths the Taokeh server never calls a language model. Your assistant reads the receipt, reads the statement, reads the name card, and sends structured fields; our server validates them, re-computes the arithmetic, and files a draft. That means the reasoning runs on your own AI subscription with your own choice of model, and your documents are not fanned out to a third model we picked for you. We do the books. Your AI does the reading.

The 37 tools

Names and behaviour as registered by the server. 28 read tools:

ToolWhat it returns
Overview & cash
business_snapshotOne-glance health check: today’s and this month’s sales and expenses so far.
daily_briefThe morning brief in one call — sales, cash, top debtors, pending approvals, tax, low stock.
cash_positionEvery bank account and cash pocket with its current GL balance, plus the liquid total. An owner advance is reported separately as a liability, never as cash.
cash_forecastA forward 8-week cash-flow forecast built from open invoices, open bills, payroll, statutory remittances, loans and SST — with every assumption listed.
profit_driversWhy net profit moved: a revenue/COGS/opex bridge against the same day-span of the previous month, with one-offs pulled out.
Statements & tax
income_statementProfit and loss for a period: revenue, COGS, gross profit, expenses, net income.
balance_sheetBalance sheet as of a date: assets, liabilities, equity, with the balanced check.
tax_positionCurrent SST period payable (if registered) plus e-invoice consolidation status and the filing due date.
Who owes whom
ar_agingWho owes you money and how overdue — accounts-receivable aging by customer.
ap_agingWhom you owe and how overdue — accounts-payable aging by supplier.
open_invoicesThe unpaid or part-paid invoices for one customer, oldest first.
payer_historyHow this workspace has categorised a given bank counterparty before — the tenant’s own precedent behind a suggestion.
Sales, stock & channels
sales_summaryHow much you have sold — today and month-to-date, or a date range broken down by month, customer and product.
expenses_summaryHow much you have spent: paid expenses today and this month so far.
channel_summarySales by channel (Shopee, TikTok Shop, Shopify, your storefront) with discounts, shipping, freight-out, marketplace fees, returns and net proceeds.
stock_levelUnits on hand right now for a product, by name or SKU.
low_stockThe reorder list: products at or below their reorder point.
Documents & search
search_documentsFind invoices, credit notes, quotes, delivery orders, bills, debit notes and purchase orders by number, party, date, amount or type.
search_expensesSearch paid expenses already posted to the ledger — the duplicate check before filing an expense draft.
get_document_pdfA short-lived signed link to the real PDF of an invoice, quote or credit note. It emails nobody; it hands you the link.
Banking review
bank_review_queueThe imported bank rows still awaiting review, each with Taokeh’s own suggested category, confidence score and reason. Lowest confidence first.
bank_reconciliation_statusWhere each bank account stands: GL balance against the latest statement close, row counts by status, and the unreviewed backlog.
Lookups & shaping
resolve_customerMatch a customer name against the real customer list — resolved, ambiguous or none, with current outstanding A/R. Never guesses.
resolve_vendorMatch a supplier name against the real vendor list. Near-misses are flagged rather than guessed.
resolve_productMatch a product by name or SKU and return its unit and default sell price.
expense_accountsThe expense categories and paid-from accounts this workspace can actually post to.
intake_contractThe exact shape a Taokeh draft needs — required fields, totals, measurement and SST rules, and a worked example grounded in this workspace.
find_in_taokehWhere in Taokeh to do something: the real deep-link page(s) for a plain-language question, from the live feature catalogue. Guides only; changes nothing.

9 write tools — every one of them files a draft or a suggestion, never a posted entry:

ToolWhat it files
create_expense_draftFile a paid-expense draft from a receipt, with the original image attached. Does not post.
create_bill_draftFile a supplier-bill draft (inventory lines). Does not post, receive stock or move cost.
create_invoice_draftFile a sales-invoice draft. Does not post or move stock; the server re-computes every line and total.
create_quote_draftFile a quotation draft — an estimate, never a ledger entry.
create_receipt_draftFile a customer-payment draft, allocated across open invoices. Nothing settles until approved.
create_contact_draftFile a contact draft read off a business card. The card image is required so the owner can check your fields against the picture.
import_bank_statementImport a bank statement for reconciliation. Every row lands in Banking → Review; the server refuses a statement whose rows do not tie to the printed closing balance.
draft_bank_classificationPropose categories for up to 50 bank rows. Written as an “AI suggestion” badge the owner sees — it never confirms and never posts.
request_attachment_uploadA one-time upload link for a file too large to inline, returning a token any draft tool accepts.

Questions developers and buyers actually ask

Can ChatGPT create an invoice in my accounting software?

With the Taokeh MCP server connected, yes — as a draft. ChatGPT calls create_invoice_draft, which files a pending sales invoice into Taokeh. It does not post to the ledger and does not move stock. You open Taokeh, check the lines against the source document, and tap approve. Only that tap posts it.

Can my AI categorise receipts and bank transactions?

Yes. Your AI reads the receipt itself and files it with create_expense_draft, original image attached. For bank statements it calls import_bank_statement, then draft_bank_classification to propose a category per row. Proposals appear as AI suggestions in Banking → Review. Confirming and posting each row stays a human click.

Can I ask who owes me money?

Yes — that is a plain read. Your AI calls ar_aging for the full receivables aging by customer and overdue bucket, or open_invoices for one customer’s unpaid invoices oldest first. payer_history explains how a given counterparty has been treated before. No approval needed: reads change nothing.

Can my AI generate my monthly profit and loss?

Yes. income_statement returns revenue, cost of goods sold, gross profit, expenses and net income for any period, straight from the double-entry ledger — not estimated by a model. balance_sheet does the same as of a date, and profit_drivers explains why the number moved against last month.

Can it prepare a monthly management report?

Not as a packaged report — as a composition your AI assembles. It calls income_statement twice (this month and last), profit_drivers for the bridge, ar_aging, cash_position, cash_forecast and expenses_summary, then writes the narrative itself on your own AI subscription. The figures come from the ledger; the document is your AI’s. Worked prompt and full recipe: /guides/talk-to-your-books.

Can it flag anomalies before month-end?

When you ask it to. No tool returns an “anomaly” field — your AI reads daily_brief, search_expenses (the doubled-bill check), ar_aging, bank_reconciliation_status and low_stock, and judges what looks off. MCP is pull-only: Taokeh runs no watcher and pushes no alert, so a standing scan is a scheduled prompt in your AI client. Full recipe: /guides/talk-to-your-books.

Is there an API? How is MCP different from a REST API?

MCP is the API, described so an AI can use it without you writing code. Each of the 37 tools carries a typed schema and a description your assistant reads at connect time, so it knows what exists and what each field means. A REST API needs an integration built first; MCP needs a connection.

Can one AI connection cover all my companies?

One connection per company — by design. A workspace-scoped token or OAuth grant binds to the one workspace you consented to, so an AI connected to one company cannot reach another’s books. claude.ai and ChatGPT both hold several named connectors side by side, so an accountant connects each company separately. One connection spanning companies is not offered today. Name each connector after the company it opens — “Taokeh — Lim Hardware”, not twelve connectors all called “Taokeh”; the name is what your AI sees in its tool list, and it is how it knows whose books it is reading. Every tool response also carries the company name, so the AI is told on every call.

Are there API rate limits for AI agents?

Yes, and they are published: 200 MCP calls per workspace per day, plus 300 requests per 15 minutes per IP address and a platform-wide daily backstop. They exist for fair use and cost control, not to meter you — a normal agent day sits far below 200. A limit returns a JSON-RPC error your client can read.

Are the AI’s actions fully auditable and reversible?

Yes. Every AI-filed draft records the connecting client’s name, the user whose grant it acted under, and the time. Approving or rejecting stamps the deciding user and timestamp. Nothing posts to the ledger without that tap, and a rejected draft posts nothing at all. Correcting a posted GL document is a void and repost that keeps its number.

What does the Taokeh MCP server cost?

RM29 per month as an à-la-carte add-on on top of a Taokeh base plan, and it is included in the 14-day free trial — so you can connect your AI and try every tool before paying for anything.

Point your AI at your books

RM29/month, included in the 14-day free trial. Connect it, ask it anything, and see how a draft feels before you pay for a thing.

Tool names and behaviour on this page mirror the live server. Setup walkthrough: Ask Taokeh connector. Security and data ownership: Trust & security.