BookMind
An intelligent bookkeeping MCP server for QuickBooks Online that enables natural language control over categorization, reconciliation, monthly close, and anomaly detection.
README
<div align="center"> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"> <img src="https://img.shields.io/github/stars/bbookmind/mcp" alt="Stars"> <img src="https://img.shields.io/npm/v/@bbookmind/mcp" alt="npm"> <img src="https://img.shields.io/badge/MCP-Compatible-6366f1" alt="MCP Compatible"> <br> <h1>BookMind</h1> <p><strong>AI bookkeeping for QuickBooks Online. Use any model, any provider.</strong></p> <p>Auto-categorize · Reconcile · Monthly Close · Anomaly Detection · Chase Emails</p> <p> <a href="#install">Install</a> · <a href="#tools">Tools</a> · <a href="#pricing">Pricing</a> · <a href="https://bookmind.dev">Website</a> </p> <br> <pre><code>npx @bbookmind/mcp</code></pre> </div>
What is BookMind?
BookMind is an open-source MCP server that brings intelligent bookkeeping to QuickBooks Online. Unlike Intuit's official MCP server (a raw API wrapper), BookMind is an intelligent bookkeeping layer — you speak naturally, it handles the rest.
Why BookMind?
| Problem | Solution |
|---|---|
| Manual transaction categorization | Auto-categorize with 90%+ accuracy using learned rules + any LLM |
| Month-end close takes hours | One prompt → full close package (P&L, BS, CF, action items) |
| Bank reconciliation is tedious | Automatic fuzzy matching by amount, date, vendor |
| Duplicate payments slip through | Statistical anomaly detection catches them |
| Chasing overdue invoices | Professional emails in friendly/firm/escalation tones |
| Vendor research is slow | Natural language search: "What did we pay AWS last quarter?" |
| Locked into one AI provider | Works with OpenAI, Anthropic, Google, Groq, Mistral, NVIDIA, Ollama — or no provider at all |
Architecture
QuickBooks Online ──► BookMind (this MCP) ──► Local SQLite
│
┌─────────┼─────────┐
▼ ▼ ▼
Rules Engine Memory Anomaly Detector
- Zero cloud dependency — your data stays in local SQLite
- Learns from you — every correction becomes a persistent rule
- Model-agnostic — works with 7+ LLM providers (or rules-only mode)
- Agent-agnostic — works with Claude, Cursor, Cline, Continue, Windsurf, VS Code Copilot, Goose
Install
One command (any MCP client)
npx @bbookmind/mcp
Pre-built configs
| Agent | Config | Location |
|---|---|---|
| Claude Desktop | install/claude-desktop.json |
%APPDATA%\Claude\claude_desktop_config.json (Windows) |
| Cursor | install/cursor.json |
~/.cursor/mcp.json |
| Cline | install/cline.json |
VS Code → Extensions → Cline → MCP |
| Continue | install/continue.json |
~/.continue/config.json |
| Windsurf | install/windsurf.json |
~/.codeium/windsurf/mcp_config.json |
| VS Code Copilot | install/vscode-copilot.json |
VS Code → GitHub Copilot → MCP |
Environment (optional)
BookMind runs in rules-only mode by default (no API key needed). To enable AI categorization, add one provider key:
# Pick ONE:
export GROQ_API_KEY=... # Free tier available
export NVIDIA_API_KEY=... # Free tier available
export GOOGLE_API_KEY=... # Free tier available
export OPENAI_API_KEY=...
export ANTHROPIC_API_KEY=...
export MISTRAL_API_KEY=...
export OLLAMA_BASE_URL=http://localhost:11434
Tools
BookMind exposes 14 tools that your AI agent discovers automatically:
| Category | Tool | Description |
|---|---|---|
| Categorization | bookmind.categorize |
Auto-categorize uncategorized transactions |
bookmind.approve_categorizations |
Approve pending categorizations in batch | |
bookmind.reject_categorizations |
Reject with feedback, auto-create rules | |
bookmind.undo_categorize |
Rollback from audit log | |
| Data | bookmind.fetch_transactions |
Pull transactions, invoices, bills from QBO |
bookmind.sync_to_qbo |
Push approved changes back to QuickBooks | |
| Reconciliation | bookmind.reconcile |
Match bank feed ↔ invoices/bills |
| Intelligence | bookmind.anomalies |
Duplicate, drift, outlier detection |
bookmind.monthly_close |
Full close package (P&L, BS, CF) | |
bookmind.vendor_search |
Natural language vendor search | |
| Communications | bookmind.chase_email |
Overdue invoice email generator |
| Learning | bookmind.learn_rules |
Create rules from user corrections |
| Multi-company | bookmind.select_company |
Switch between QBO companies |
bookmind.list_companies |
List connected companies |
Example prompts
"Categorize my uncategorized transactions from last month"
"Reconcile my bank feed against open invoices"
"Generate March close package"
"Any duplicate payments to vendors?"
"What did we pay AWS last quarter?"
"Draft friendly chase emails for invoices over 30 days overdue"
"Remember: Stripe transactions → Payment Processing Fees"
"Switch to Acme Corp company"
Pricing
| Tier | Price | Transactions | Companies | Features |
|---|---|---|---|---|
| Free | $0 | 50/mo | 1 | Rules-only categorization, basic vendor search |
| Pro | $29/mo | 1,000/mo | 3 | AI categorize, reconcile, anomalies, vendor search |
| Firm | $149/mo | Unlimited | Unlimited | Monthly close, chase emails, white-label PDFs, team seats |
14-day Pro trial — no credit card required.
Development
git clone https://github.com/bbookmind/mcp
cd bookmind
npm install
npm run dev # watch mode
npm run build # production build
npm test # vitest
Project structure
src/
├── index.ts # MCP server entry
├── tools/ # 14 bookkeeping tools
│ ├── categorize.ts
│ ├── approveCategories.ts
│ ├── rejectCategories.ts
│ ├── undoCategories.ts
│ ├── fetchTransactions.ts
│ ├── syncToQbo.ts
│ ├── reconcile.ts
│ ├── anomalies.ts
│ ├── monthlyClose.ts
│ ├── vendorSearch.ts
│ ├── chaseEmail.ts
│ ├── learnRules.ts
│ ├── selectCompany.ts
│ └── listCompanies.ts
└── lib/
├── qbo.ts # QuickBooks OAuth + API client
├── db.ts # SQLite schema + migrations
└── llm.ts # Multi-provider LLM interface
Distribution channels
- npm:
npx @bbookmind/mcp - MCP Registry:
registry.modelcontextprotocol.io - Claude Marketplace:
/plugin install bookmind - GitHub: github.com/bbookmind/mcp
License
MIT — free to use, modify, and distribute.
Support
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.