Netcafe Tables MCP server
Messy spreadsheets in, clean checkable tables out. Every result carries its arithmetic proof.
1 stars
Reviews
Write oneNobody has reviewed Netcafe Tables yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Netcafe Tables tools (15, 1 write)
write = sends, deletes, buys or postsclean_tableFreeTidies a spreadsheet export: removes duplicate rows, trims whitespace (half-width and full-width — Chinese exports are full of ), unifies the half-dozen ways a cell can say "empty" (NA / null / - / 无), drops empty rows and columns, and can split one column into several. Returns the cleaned CSV plus exactly what changed: rows in, rows out, duplicates removed, cells trimmed per column. It can also transpose rows/columns and unpivot a wide table into a long one. The row arithmetic is verified in code — if in − removed ≠ out, the response says so instead of handing back a table nobody can check. Use when a CSV came out of Excel or an export and needs cleaning before analysis.
csv_to_chartFreeCSV (first column = labels, second = values) → chart PNG in one call.
csv_to_jsonFreeCSV (text or URL) → JSON array of objects (first row = keys). Returns a .json file.
csv_to_md_tableFreeCSV (text or URL) → GitHub-flavoured Markdown table.
csv_to_qboFreeConvert a transaction CSV into a .qbo / OFX bank-feed file that QuickBooks and similar accounting software import directly. Needs date, description and amount columns (or debit + credit). Pairs with extract_statement: statement PDF in, importable bank feed out.
dedupe_entitiesFreeFind records in a supplier/customer/store list that are probably the SAME entity under different names — "北京星辰科技有限公司" vs "星辰科技(北京)" — by cross-checking name similarity against hard identifiers: tax ID (统一社会信用代码, checksum-verified), phone, domain, bank account, address. It never merges anything: it returns candidate groups with the evidence for each link, pairs that need human review, and — just as
diff_tablesFreeMatches rows across two CSVs on a key column and reports three things: keys only in A, keys only in B, and keys in both whose other columns disagree — naming the exact column and both values. Unlike reconcile_ledger this needs no amount column, so it also fits name lists, inventory counts, permission tables, and any "these two exports should match" check.
fix_csv_encodingFreeDetect the real encoding of a CSV (GB18030, Shift-JIS, Windows-1252…), repair mojibake (UTF-8 that was read as Latin-1, e.g. "é"), and re-emit UTF-8 with a BOM so Excel opens it correctly.
json_to_csvFreeJSON array of objects → CSV file. Flattens keys, quotes fields containing commas.
match_transactionsFreeMatch bank statement lines to ledger/invoice entries when there is NO shared key — by amount, date window, reference numbers found inside free-text descriptions, and fuzzy counterparty names ("北京XX科技" vs "XX科技(北京)"). Handles split payments (one invoice paid in instalments, 1:N) and combined payments (one transfer covering several invoices, N:1). Its rule is: never guess — a pair is only auto-match
merge_tablesFreeCombines up to 20 CSVs into a single table. Headers do not have to match: columns are unioned and a file missing a column contributes blanks for it, so rows never shift silently — the failure mode that makes hand-merged spreadsheets untrustworthy. Reports each source file row count and checks in code that they sum to the merged total. Use for monthly exports, per-store sheets, or any set of files with the same subject but drifting headers.
read_xlsxFreeRead an Excel .xlsx workbook (by URL) into rows — every sheet, or one you name. Returns cell values (not formula text), dates as YYYY-MM-DD instead of Excel serial numbers, and keeps leading zeros so ID/postcode columns are not silently mangled. Says plainly which sheet it used, which sheets are hidden, and where merged cells left blanks, instead of guessing for you.
reconcile_ledgerFreeReconciles two sets of records — your books against a bank, platform, or supplier statement. Matches rows on a key column, compares an amount column, and returns three lists: only in A, only in B, and same key but different amount. Amounts are compared in integer cents, so 0.1 + 0.2 never invents a phantom difference for someone to chase. The response also proves the result: the listed differences are re-added and must equal the gap between the two totals, checked in code. Use for month-end close, platform payouts vs orders, or any "these two numbers should agree and do not" problem. This is the job people do by hand with VLOOKUP or a groupby and then cannot prove they got right.
what_can_you_doFreeDescribe a task in plain language (any language) and get back exactly which tools on this server do it, with ready-to-run example calls — instead of reading the whole catalogue and guessing. Also returns multi-step recipes when a task needs several tools chained (invoices to a ledger, a bank statement reconciled, a messy CSV turned into a deliverable). Deterministic and free: it calls no model, costs nothing, and never runs out of quota. Call this FIRST when you are not sure what this server offers.
write_xlsxwrite actionFreeBuild an Excel .xlsx file from rows (CSV text or JSON arrays), optionally several sheets at once. Numbers are written as real numbers so they sum in Excel, while values with leading zeros stay text so IDs and postcodes survive the round trip.
Public scan report
scanner v0.1.9 · 2026-09-23 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1376ms20/20
- Tool poisoning15 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
- Maintenancelast push 38 days ago12/15
- Maintainer identitynamespace and repository owner differ; GitHub account older than a year; website matches verified namespace7/10
Findings (1)
- highWrite-action tools reachable without authentication
auth.open-write
What the publisher says
From the Netcafe Tables repository's README, as published. We do not edit it. Read it on GitHub
ai-netcafe
Hosted tools your agent can call over MCP — and a claim you can check in one command:
curl "https://ainetcafe.com/t/china_reachability?url=https://github.com"{
"url": "https://github.com",
"tested_from": "mainland China (China Mobile backbone)",
"verdict": "unreachable: timeout (common signature of blocking or a very slow route)"
}That request was answered by a machine actually sitting on a Chinese backbone network. A monitor hosted anywhere else can only tell you GitHub is up where it is — which is not the question you were asking. That is the kind of thing we host: capabilities that are hard to get, rather than wrappers around ones that aren't.
Four focused servers
One agent profile rarely needs both spreadsheet cleanup and the Chinese lunar calendar, and every tool description costs tokens on every session. So the catalogue is served as four focused MCP endpoints — connect the one you need and pay the context cost of nothing else.
All four are in the official MCP registry as com.ainetcafe/netcafe-tables, -devkit, -docflow and -china.
Nothing in these four calls a language model or a third-party API. They compute on our own servers, so results are deterministic and repeatable — and they cannot break because someone else changed their API.
Numbers come with their own proof
Anything involving counts or money returns an arithmetic check computed in code, not asserted by a model:
// reconcile_ledger: your books vs the bank statement
{
"total_a": 105.30, "total_b": 106.80, "gap": -1.50,
"only_in_a": [{ "key": "B", "amount": 5.00 }],
"only_in_b": [{ "key": "C", "amount": 7.00 }],
"mismatched": [{ "key": "A3", "a": 100.00, "b": 99.50, "diff": 0.50 }],
"arithmetic_check": {
"formula": "A 105.3 − B 106.8 = -1.5; differences explain -1.5",
"checks_out": true
}
}If checks_out is false, the response says the result is untrustworthy instead of handing back a table that looks finished. Amounts are compared in integer cents, so 0.1 + 0.2 never invents a difference for someone to go chase.
Connect it
claude mcp add --transport http netcafe-tables https://ainetcafe.com/mcp/tableDeepSeek Harness:
dsh plugin --profile web add github:mario03690/dsh-netcafeEverything is also a plain GET — no MCP client, no SDK, no key:
curl "https://ainetcafe.com/t/cn_holiday?date=2026-10-01"
curl "https://ainetcafe.com/t/diff_text?a=one%0Atwo&b=one%0Athree"Charts come back as images you can paste straight into a README:
That image is rendered on request, right now, by the same service this page describes.
Model cost is measured, not quoted
npx ai-netcafe compare "dedupe a JS array preserving order"MODEL COST LATENCY
deepseek-v4-flash $0.00012 7.6s
gemini-3.5-flash $0.000341 10.0s
GLM5.2 $0.001828 9.0sShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
claude mcp add --transport http netcafe-tables https://ainetcafe.com/mcp/table?s=registry
Netcafe Tables: common questions
- Is Netcafe Tables MCP server safe?
- Mostly: it is graded B (76/100). Read the Netcafe Tables safety report
- How do I install Netcafe Tables?
- It runs remotely at ainetcafe.com. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Netcafe Tables need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Netcafe Tables maintained?
- The last commit was 39 days ago (2026-08-16). The latest release is v1.0.0.
- Is Netcafe Tables up?
- 100% of our last 21 checks got an answer. We check remote servers about four times a day.
- What can I use instead of Netcafe Tables?
- Servers from other publishers that do the same job: Citra MCP server.
Alternatives to Netcafe Tables
Same job from other publishers: the closest match first, then the best rated.
- CitraCitra — PDF answers with page-level proof: structure, tables, OCR, and page citations.not reviewedEstablishedA