MainBook MCP¶
Local bookkeeping-conversion server (stdio, API key) — MainBook scopes itself to one job and does it well: converting PDF bank statements into checked JSON, Excel, or CSV with balance validation. It runs locally with a MainBook API key, talks to api.mainbook.ai for the conversion engine, and refuses to touch anything outside the folders the operator names.
Server type: Local (stdio via uvx or pip)
Auth: Account API key (MAINBOOK_API_KEY, mb_live_...)
Endpoint: api.mainbook.ai (REST under the local server)
Tools: convert_bank_statement, get_conversion, list_conversions, get_balance, output_folder
Pricing: 1 PDF page = 1 credit; 20-page signup grant; packages bought in the web app
Category: Finance / Accounting
Built by: mainbook.ai
Why This Matters for Operators¶
Bank statements are the worst part of bookkeeping: every bank exports differently, PDFs resist parsing, and a wrong number poisons reconciliation. MainBook turns the chore into one tool call — "convert ~/Downloads/march-statement.pdf and save the Excel next to it" — and returns 63 transactions with opening and closing totals reconciled against the statement. If the totals do not match, nothing is silently accepted; the validation flags it.
The boundary design is the trust story: the server can only read and write inside the folders passed as arguments or set in MAINBOOK_ALLOWED_DIRS, and it has no tool for buying credits, handling payments, or deleting anything. It cannot spend money it was not given.
Tools & Capabilities¶
| Tool | Purpose |
|---|---|
convert_bank_statement |
Upload one PDF, run a conversion job, poll 30–900s, return reviewed JSON or write XLSX/CSV to disk |
get_conversion |
Pick up a job after a client timeout, write results to a chosen destination |
list_conversions |
Cursor-paged account job history |
get_balance |
Total, reserved, and available page credits |
output_folder |
Read or change the default local result folder |
Operating limits: 500 pages and 50MB per PDF, 6 in-flight jobs per key, 90-day document retention. A client timeout does not kill the job — get_conversion picks it up by job ID.
Installation¶
{
"mcpServers": {
"mainbook": {
"command": "uvx",
"args": ["mainbook-mcp", "~/Downloads", "~/Desktop", "~/Documents"],
"env": { "MAINBOOK_API_KEY": "mb_live_…" }
}
}
}
Requires Python 3.11+ (or pip install mainbook-mcp). Folder boundary via the args list or MAINBOOK_ALLOWED_DIRS (colon-separated on macOS/Linux, semicolon on Windows). The account must accept the API Terms or calls fail with api_terms_not_accepted.
Business Relevance¶
- Bookkeepers convert statement PDFs into spreadsheets with reconciliation checks in one prompt
- Finance teams keep bank data out of the agent context until it is structured and validated
- Ops automation can route statement folders through the agent on a schedule, with the folder boundary as the guardrail
- Audit prep gains checked CSV/JSON exports instead of hand-typed entries
Integration with CorpusIQ¶
MainBook is the intake step for the accounting layer CorpusIQ already connects: converted statements become clean CSV/JSON that feeds QuickBooks imports or CorpusIQ's financial connectors for reconciliation against live balances. The split of labor is clean — MainBook turns the PDF into checked data, CorpusIQ turns that data into cross-source financial truth.
Limitations¶
- One job only — no general accounting, invoicing, or categorization tools
- Page-credit pricing; heavy monthly conversion volumes need a package check
- Local stdio means the folder boundary is only as strong as the operator's configuration
- New listing — the MCP surface has no community track record yet