{
  "markdown": "# AccountingQB-MCP\n\nThe most comprehensive QuickBooks Online MCP server for Claude. Built for sole proprietors and small businesses who want to manage their books, run reports, and prep taxes through natural conversation.\n\n**138 tools** covering transactions, reports, tax prep (US **and** Canada), reconciliation, smart bookkeeping, 1099/T4A reporting, GST/HST returns, anomaly detection, credit memos, vendor credits, cash flow forecasting, and profit margin analysis — all from Claude Desktop. Includes a **CPA Workbook**: a 15-page year-end binder (comparative statements, reconciliation tie-outs, tax payments made, owner's draws, tax organizer) exported to Excel for your accountant.\n\n**Canada support:** works with Canadian QuickBooks Online companies out of the box — the server auto-detects the company's tax edition, applies sales tax codes (GST/HST/PST) on created transactions, and ships a full Canadian tax suite: GST/HST (GST34) return workpapers with the 50% meals ITC restriction, T2125 line mapping, CCA schedules (half-year rule + Accelerated Investment Incentive), T4A/T5018 contractor reporting, and CRA instalment + CPP estimates. Multicurrency companies see per-transaction currency and exchange rates.\n\n> Built by [Vaspera Capital](https://vasperacapital.com) — because QuickBooks deserved a real MCP server.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.10+\n- A QuickBooks Online account (any plan)\n- Claude Desktop\n- An Intuit Developer account ([free signup](https://developer.intuit.com))\n\n### 1. Clone and Install\n\n```bash\ngit clone https://github.com/RCOLKITT/AccountingQB-MCP.git\ncd AccountingQB-MCP\npip install -r requirements.txt\n```\n\n### 2. Create Your Intuit Developer App\n\n1. Go to [developer.intuit.com](https://developer.intuit.com) and sign in\n2. Click **Create an App** → select **QuickBooks Online and Payments**\n3. Under **Redirect URIs**, add: `http://localhost:8080/callback`\n4. Copy your **Client ID** and **Client Secret**\n\n### 3. Run Setup\n\n```bash\npython setup.py\n```\n\nThe setup wizard will:\n- Ask for your Client ID and Client Secret\n- Open your browser to authorize access to your QuickBooks company\n- Catch the OAuth callback automatically\n- Write your Claude Desktop configuration\n- Verify the connection works\n\nThat's it. Restart Claude Desktop and you're connected.\n\n### Manual Configuration (Advanced)\n\nIf you prefer to configure manually, add this to your Claude Desktop config:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"accountingqb\": {\n      \"command\": \"python3\",\n      \"args\": [\"/path/to/AccountingQB-MCP/server.py\"],\n      \"env\": {\n        \"QB_CLIENT_ID\": \"your_client_id\",\n        \"QB_CLIENT_SECRET\": \"your_client_secret\",\n        \"QB_REALM_ID\": \"your_company_id\",\n        \"QB_REFRESH_TOKEN\": \"your_refresh_token\",\n        \"QB_ENVIRONMENT\": \"production\"\n      }\n    }\n  }\n}\n```\n\nTo get your refresh token manually, use the [Intuit OAuth Playground](https://developer.intuit.com/app/developer/playground).\n\n---\n\n## Tools (130)\n\n### Company & Entities\n\n| Tool | Description |\n|------|-------------|\n| `qb_company_info` | Company name, EIN, address, fiscal year |\n| `qb_list_accounts` | Full chart of accounts with balances |\n| `qb_list_classes` | List classes (class-tracking segments) |\n| `qb_list_departments` | List departments/locations (location tracking) |\n| `qb_list_vendors` | Search vendors/suppliers |\n| `qb_list_customers` | Search customers |\n| `qb_list_items` | Products and services |\n| `qb_create_vendor` | Create a new vendor |\n| `qb_create_customer` | Create a new customer |\n| `qb_update_vendor` | Update vendor details (email, phone, address) |\n| `qb_update_customer` | Update customer details (email, phone, address) |\n| `qb_create_account` | Add an account to chart of accounts |\n| `qb_create_sub_account` | Create a sub-account under a parent |\n| `qb_inactivate_account` | Hide unused accounts |\n\n### Transactions\n\n| Tool | Description |\n|------|-------------|\n| `qb_list_transactions` | Purchases/expenses with filters |\n| `qb_list_deposits` | Income and owner investments |\n| `qb_list_transfers` | Account-to-account transfers |\n| `qb_list_journal_entries` | Adjustments and reclassifications |\n| `qb_list_journal_entries_by_memo` | Search JEs by memo text |\n| `qb_list_bills` | Accounts payable |\n| `qb_list_bill_payments` | Bill payments |\n| `qb_list_sales_receipts` | Direct sales |\n| `qb_list_payments` | Customer payments received |\n| `qb_list_invoices` | Invoices with status filter |\n| `qb_list_credit_memos` | Customer credit memos/refunds |\n| `qb_list_vendor_credits` | Vendor credits received |\n| `qb_list_estimates` | Estimates/quotes with status filter |\n| `qb_search_transactions` | Search across ALL transaction types |\n| `qb_list_purchase_orders` | List purchase orders — vendor, amount, Open/Closed status |\n| `qb_list_recurring_transactions` | Recurring templates and schedules |\n| `qb_transaction_detail` | Full detail for any single transaction |\n| `qb_account_transactions` | All transactions hitting a specific account |\n\n### Create & Modify\n\n| Tool | Description |\n|------|-------------|\n| `qb_create_expense` | Record a purchase/expense |\n| `qb_create_invoice` | Create a customer invoice |\n| `qb_create_bill` | Create a vendor bill |\n| `qb_create_estimate` | Create a customer estimate/quote |\n| `qb_create_journal_entry` | Record adjustments |\n| `qb_create_deposit` | Record a bank deposit |\n| `qb_create_transfer` | Transfer between accounts |\n| `qb_create_credit_memo` | Issue a customer credit memo |\n| `qb_create_vendor_credit` | Record a vendor credit |\n| `qb_convert_estimate_to_invoice` | Convert an estimate into an invoice |\n| `qb_record_bill_payment` | Record payment on a vendor bill |\n| `qb_record_invoice_payment` | Record customer payment on invoice |\n| `qb_update_transaction` | Update any transaction |\n| `qb_void_transaction` | Void a transaction |\n| `qb_delete_transaction` | Delete a transaction permanently |\n| `qb_delete_journal_entry` | Permanently delete a JE |\n| `qb_reclassify_transaction` | Move a transaction to a different account |\n| `qb_bulk_update_vendor` | Bulk-assign vendor to multiple transactions |\n| `qb_bulk_update_vendors_multi` | Bulk-assign multiple vendors in one call |\n| `qb_batch_create_expenses` | Bulk expense import |\n| `qb_batch_create_bills` | Bulk bill import |\n| `qb_batch_create_journal_entries` | Bulk JE import |\n\n### Reports & Analysis\n\n| Tool | Description |\n|------|-------------|\n| `qb_profit_loss` | P&L by total, month, quarter, or year |\n| `qb_profit_loss_detail` | P&L drill-down — every transaction behind each line, by account |\n| `qb_profit_loss_by_class` | P&L broken out by class (segment/program) |\n| `qb_profit_loss_by_department` | P&L broken out by department/location |\n| `qb_vendor_expenses` | Total spend by vendor (VendorExpenses report) |\n| `qb_balance_sheet` | Balance sheet as of any date |\n| `qb_sales_by_customer` | Total sales (income) by customer |\n| `qb_sales_by_product` | Sales by product/service — quantity and amount |\n| `qb_sales_by_class` | Sales broken out by class (segment/program) |\n| `qb_sales_by_department` | Sales broken out by department/location |\n| `qb_inventory_valuation` | Inventory on-hand quantity, asset value, avg cost as of a date |\n| `qb_transaction_list` | Flexible transaction register for a date range |\n| `qb_customer_balance_detail` | Open invoices per customer with line detail (AR drill-down) |\n| `qb_vendor_balance_detail` | Open bills per vendor with line detail (AP drill-down) |\n| `qb_cash_flow` | Statement of cash flows |\n| `qb_cash_flow_forecast` | Multi-period cash flow projections |\n| `qb_general_ledger` | All transactions by account |\n| `qb_trial_balance` | Verify books are balanced |\n| `qb_ar_aging` | What customers owe you |\n| `qb_ap_aging` | What you owe vendors |\n| `qb_expense_summary` | Expenses by category |\n| `qb_income_summary` | Income by source |\n| `qb_sales_tax_summary` | Sales tax collected by jurisdiction |\n| `qb_sales_tax_nexus` | Economic-nexus screen — sales by ship-to state vs each state's sourced Wayfair threshold + liability by state |\n| `qb_compare_periods` | Side-by-side period comparison |\n| `qb_vendor_summary` | Top vendors by spend |\n| `qb_profit_margin_analysis` | Profit margins by customer or item |\n| `qb_budget_vs_actual` | Compare budget to actual spending |\n| `qb_anomaly_detection` | Statistical anomaly and fraud detection |\n\n### Tax Preparation\n\n| Tool | Description |\n|------|-------------|\n| `qb_tax_summary` | Expenses mapped to Schedule C lines |\n| `qb_schedule_c` | Full IRS Schedule C line-by-line |\n| `qb_schedule_c_detailed` | Granular Schedule C with QB account detail |\n| `qb_estimate_quarterly_tax` | Federal + state estimated taxes |\n| `qb_deduction_finder` | Find commonly missed deductions |\n| `qb_depreciation_schedule` | Section 179 and MACRS schedules |\n| `qb_1099_contractor_report` | 1099-NEC contractor reporting with TIN/address validation |\n| `qb_home_office_calculator` | Form 8829 home office deduction calculator |\n| `qb_vehicle_depreciation_calculator` | Vehicle depreciation with business use % |\n| `qb_payroll_checklist` | Payroll boundary checklist — wages/liability signals + W-2/1099, 941/940 items to hand your CPA |\n\n### Canadian Tax (GST/HST, T2125)\n\n| Tool | Description |\n|------|-------------|\n| `qb_gst_hst_return` | GST34 return workpaper — lines 101/103/105/106/108/109 with 50% meals ITC restriction, TaxSummary report, tax payments, and Quick Method note |\n| `qb_t2125_summary` | CRA T2125 line-by-line mapping (8521 Advertising, 8523 Meals at 50%, 8910 Rent, ...) |\n| `qb_cca_schedule` | Capital Cost Allowance by class — half-year rule, Accelerated Investment Incentive, Class 10.1/54 ceilings |\n| `qb_t4a_contractor_report` | T4A box 048 contractor reporting with BN/address validation (T5018 note for construction) |\n| `qb_estimate_instalments` | CRA instalments (Mar/Jun/Sep/Dec 15) + exact CPP/CPP2, with approximate federal/provincial tax |\n| `qb_list_tax_codes` | Sales tax codes (name, combined rate, agency) — pass as `tax_code=` to create tools |\n| `qb_list_tax_rates` | Individual sales tax rates and agencies |\n\n### Smart Features\n\n| Tool | Description |\n|------|-------------|\n| `qb_uncategorized_transactions` | Find uncategorized transactions |\n| `qb_find_duplicates` | Detect potential duplicates |\n| `qb_auto_categorize_suggestions` | AI-suggested categories based on vendor history |\n| `qb_monthly_burn_rate` | Monthly expense trends |\n| `qb_runway_calculator` | Months of cash runway |\n| `qb_fiscal_year_close_checklist` | Year-end close readiness check |\n| `qb_books_health_audit` | Comprehensive books health audit |\n| `qb_books_hygiene` | Structural audit: deleted-account postings, wrong-sign balances, misfiled card payments, dormant balances, statement attestation |\n| `qb_month_end_close` | Month-end close checklist with status checks |\n| `qb_unknown_vendor_report` | Find transactions with missing vendor names |\n\n### Reconciliation & Attachments\n\n| Tool | Description |\n|------|-------------|\n| `qb_reconcile_invoices` | Match invoices against QB transactions |\n| `qb_match_invoices_to_transactions` | Fuzzy-match with tolerance |\n| `qb_upload_receipt` | Attach receipts to transactions |\n| `qb_list_attachments` | List attached documents |\n| `qb_missing_receipts` | Expenses ≥ threshold (default $75) with no receipt attached — IRS substantiation gap |\n| `qb_change_audit_trail` | What changed since a date — created / updated / **deleted** transactions (QuickBooks CDC) |\n| `qb_bank_reconciliation` | Tie a bank/credit-card statement CSV to the books — matched / missing / uncleared |\n| `qb_stripe_reconcile` | Reconcile Stripe activity — nets processing **and** platform fees (Sigma/Billing/Radar) through a clearing account and ties to the Stripe balance |\n| `qb_account_balance` | Check any account balance |\n\n### Connection & Multi-Company\n\n| Tool | Description |\n|------|-------------|\n| `qb_list_companies` | List all connected QuickBooks companies |\n| `qb_switch_company` | Switch to a different company |\n| `qb_refresh_connection` | Refresh connection to AccountingQB |\n\n---\n\n## Usage Examples\n\nOnce connected, just ask Claude naturally:\n\n- *\"What's my P&L for 2025?\"*\n- *\"Show me all expenses over $500 from last month\"*\n- *\"Create an expense for $49.99 to GitHub for software subscriptions\"*\n- *\"Run my Schedule C for tax year 2025\"*\n- *\"Find any uncategorized transactions\"*\n- *\"What's my monthly burn rate?\"*\n- *\"How much runway do I have?\"*\n- *\"Compare Q1 vs Q2 profit and loss\"*\n- *\"Find potential duplicate transactions\"*\n- *\"What deductions am I missing?\"*\n- *\"Generate my 1099 contractor report\"*\n- *\"Run anomaly detection on last quarter's transactions\"*\n- *\"Show my profit margins by customer\"*\n- *\"Forecast my cash flow for the next 6 months\"*\n- *\"Create a vendor credit for $200 to Amazon\"*\n- *\"Convert estimate #1042 to an invoice\"*\n- *\"Build my GST/HST return workpaper for Q2\"* (Canada)\n- *\"Map my books to the T2125 and estimate my CRA instalments\"* (Canada)\n\n---\n\n## Security\n\nThis server takes security seriously:\n\n- **No credentials in code** — all secrets come from environment variables\n- **OAuth 2.0** with automatic token rotation\n- **Local-only OAuth flow** — the setup script runs a callback server on `127.0.0.1`\n- **`.env` files are gitignored** and set to `chmod 600` (owner-only)\n- **No data storage** — the server is stateless; it reads/writes to QuickBooks and nothing else\n- **Refresh tokens rotate** — each token exchange returns a new refresh token\n- **100-day expiry** — tokens expire after 100 days of inactivity (Intuit policy)\n\n### Token Management\n\nQuickBooks refresh tokens are valid for 100 days and rotate automatically on every use, so an active connection stays live indefinitely. If a connection does lapse (100+ days idle), reconnect based on how you run AccountingQB:\n\n- **Hosted / managed (you have a license key):** In Claude, run `qb_refresh_connection` first — it silently re-establishes most expired connections with no browser step. If the connection is fully gone, reconnect at [accountingqb.com/dashboard](https://accountingqb.com/dashboard) → **Connect QuickBooks**, then run `qb_refresh_connection` again.\n- **Self-hosted (your own Intuit app):** re-run `python setup.py` to re-authorize and rewrite your refresh token.\n\n---\n\n## Sandbox Mode\n\nTest with Intuit's sandbox before connecting to production:\n\n```bash\npython setup.py --sandbox\n```\n\nThis connects to `sandbox-quickbooks.api.intuit.com` with Intuit's test data. Switch to production when ready by running setup again without the flag.\n\n---\n\n## Troubleshooting\n\n**\"QuickBooks credentials not configured\"**\nSelf-hosted: run `python setup.py` to configure credentials, or check your Claude Desktop config. Hosted/managed: set your `QB_LICENSE_KEY` and connect a company at [accountingqb.com/dashboard](https://accountingqb.com/dashboard).\n\n**\"401 Unauthorized\"**\nYour connection may have expired (100-day idle limit). Hosted/managed: run `qb_refresh_connection` first, then if needed reconnect at [accountingqb.com/dashboard](https://accountingqb.com/dashboard) → **Connect QuickBooks**. Self-hosted: re-run `python setup.py` to re-authorize.\n\n**\"Company not found\"**\nCheck that your `QB_REALM_ID` matches the company you authorized. You can find it in the URL when logged into QuickBooks Online.\n\n**Tools not appearing in Claude Desktop**\nRestart Claude Desktop after running setup. Check that the `accountingqb` entry exists in your Claude Desktop config.\n\n**Sandbox vs Production**\nIf you're seeing test data, check that `QB_ENVIRONMENT` is set to `\"production\"` in your config.\n\n---\n\n## Contributing\n\nIssues and PRs welcome. If you're adding new tools, follow the existing pattern:\n- Use flat parameters (not Pydantic models) for Claude Desktop compatibility\n- Include descriptive docstrings\n- Handle errors gracefully with actionable messages\n- Add the tool to the README table\n\n---\n\n## License\n\n**Proprietary — © Vaspera Capital LLC, all rights reserved.** The source is\npublicly viewable for transparency and security review; it is **not** open\nsource. Use requires a paid license key. See [LICENSE](LICENSE).\n\nBuilt by [Vaspera Capital](https://vasperacapital.com)\n",
  "bytes": 16384,
  "sha": "8b7925e9552a81a04483635c19d59e68c3add86a661ecbd74ecc1d2dbfddb500",
  "repo_slug": "rcolkitt/accountingqb-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_accountingqb_accountingqb_fe8823f3/readme"
}