Back to Discover

AccountingQB-MCP

connector

RCOLKITT

QuickBooks Online for Claude: reports, bookkeeping cleanup, and US & Canadian tax prep.

View on GitHub
0 starsSynced Aug 2, 2026

Install to Claude Code

/plugin marketplace add RCOLKITT/AccountingQB-MCP

README

AccountingQB-MCP

The 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.

119 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.

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.

Built by Vaspera Capital — because QuickBooks deserved a real MCP server.


Quick Start

Prerequisites

  • Python 3.10+
  • A QuickBooks Online account (any plan)
  • Claude Desktop
  • An Intuit Developer account (free signup)

1. Clone and Install

git clone https://github.com/RCOLKITT/AccountingQB-MCP.git
cd AccountingQB-MCP
pip install -r requirements.txt

2. Create Your Intuit Developer App

  1. Go to developer.intuit.com and sign in
  2. Click Create an App → select QuickBooks Online and Payments
  3. Under Redirect URIs, add: http://localhost:8080/callback
  4. Copy your Client ID and Client Secret

3. Run Setup

python setup.py

The setup wizard will:

  • Ask for your Client ID and Client Secret
  • Open your browser to authorize access to your QuickBooks company
  • Catch the OAuth callback automatically
  • Write your Claude Desktop configuration
  • Verify the connection works

That's it. Restart Claude Desktop and you're connected.

Manual Configuration (Advanced)

If you prefer to configure manually, add this to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "accountingqb": {
      "command": "python3",
      "args": ["/path/to/AccountingQB-MCP/server.py"],
      "env": {
        "QB_CLIENT_ID": "your_client_id",
        "QB_CLIENT_SECRET": "your_client_secret",
        "QB_REALM_ID": "your_company_id",
        "QB_REFRESH_TOKEN": "your_refresh_token",
        "QB_ENVIRONMENT": "production"
      }
    }
  }
}

To get your refresh token manually, use the Intuit OAuth Playground.


Tools (113)

Company & Entities

ToolDescription
qb_company_infoCompany name, EIN, address, fiscal year
qb_list_accountsFull chart of accounts with balances
qb_list_vendorsSearch vendors/suppliers
qb_list_customersSearch customers
qb_list_itemsProducts and services
qb_create_vendorCreate a new vendor
qb_create_customerCreate a new customer
qb_update_vendorUpdate vendor details (email, phone, address)
qb_update_customerUpdate customer details (email, phone, address)
qb_create_accountAdd an account to chart of accounts
qb_create_sub_accountCreate a sub-account under a parent
qb_inactivate_accountHide unused accounts

Transactions

ToolDescription
qb_list_transactionsPurchases/expenses with filters
qb_list_depositsIncome and owner investments
qb_list_transfersAccount-to-account transfers
qb_list_journal_entriesAdjustments and reclassifications
qb_list_journal_entries_by_memoSearch JEs by memo text
qb_list_billsAccounts payable
qb_list_bill_paymentsBill payments
qb_list_sales_receiptsDirect sales
qb_list_paymentsCustomer payments received
qb_list_invoicesInvoices with status filter
qb_list_credit_memosCustomer credit memos/refunds
qb_list_vendor_creditsVendor credits received
qb_list_estimatesEstimates/quotes with status filter
qb_search_transactionsSearch across ALL transaction types
qb_list_recurring_transactionsRecurring templates and schedules
qb_transaction_detailFull detail for any single transaction
qb_account_transactionsAll transactions hitting a specific account

Create & Modify

ToolDescription
qb_create_expenseRecord a purchase/expense
qb_create_invoiceCreate a customer invoice
qb_create_billCreate a vendor bill
qb_create_estimateCreate a customer estimate/quote
qb_create_journal_entryRecord adjustments
qb_create_depositRecord a bank deposit
qb_create_transferTransfer between accounts
qb_create_credit_memoIssue a customer credit memo
qb_create_vendor_creditRecord a vendor credit
qb_convert_estimate_to_invoiceConvert an estimate into an invoice
qb_record_bill_paymentRecord payment on a vendor bill
qb_record_invoice_paymentRecord customer payment on invoice
qb_update_transactionUpdate any transaction
qb_void_transactionVoid a transaction
qb_delete_transactionDelete a transaction permanently
qb_delete_journal_entryPermanently delete a JE
qb_reclassify_transactionMove a transaction to a different account
qb_bulk_update_vendorBulk-assign vendor to multiple transactions
qb_bulk_update_vendors_multiBulk-assign multiple vendors in one call
qb_batch_create_expensesBulk expense import
qb_batch_create_billsBulk bill import
qb_batch_create_journal_entriesBulk JE import

Reports & Analysis

ToolDescription
qb_profit_lossP&L by total, month, quarter, or year
qb_profit_loss_detailP&L drill-down — every transaction behind each line, by account
qb_profit_loss_by_classP&L by department/class
qb_balance_sheetBalance sheet as of any date
qb_sales_by_customerTotal sales (income) by customer
qb_sales_by_productSales by product/service — quantity and amount
qb_transaction_listFlexible transaction register for a date range
qb_customer_balance_detailOpen invoices per customer with line detail (AR drill-down)
qb_vendor_balance_detailOpen bills per vendor with line detail (AP drill-down)
qb_cash_flowStatement of cash flows
qb_cash_flow_forecastMulti-period cash flow projections
qb_general_ledgerAll transactions by account
qb_trial_balanceVerify books are balanced
qb_ar_agingWhat customers owe you
qb_ap_agingWhat you owe vendors
qb_expense_summaryExpenses by category
qb_income_summaryIncome by source
qb_sales_tax_summarySales tax collected by jurisdiction
qb_sales_tax_nexusEconomic-nexus screen — sales by ship-to state vs each state's sourced Wayfair threshold + liability by state
qb_compare_periodsSide-by-side period comparison
qb_vendor_summaryTop vendors by spend
qb_profit_margin_analysisProfit margins by customer or item
qb_budget_vs_actualCompare budget to actual spending
qb_anomaly_detectionStatistical anomaly and fraud detection

Tax Preparation

ToolDescription
qb_tax_summaryExpenses mapped to Schedule C lines
qb_schedule_cFull IRS Schedule C line-by-line
qb_schedule_c_detailedGranular Schedule C with QB account detail
qb_estimate_quarterly_taxFederal + state estimated taxes
qb_deduction_finderFind commonly missed deductions
qb_depreciation_scheduleSection 179 and MACRS schedules
qb_1099_contractor_report1099-NEC contractor reporting with TIN/address validation
qb_home_office_calculatorForm 8829 home office deduction calculator
qb_vehicle_depreciation_calculatorVehicle depreciation with business use %
qb_payroll_checklistPayroll boundary checklist — wages/liability signals + W-2/1099, 941/940 items to hand your CPA

Canadian Tax (GST/HST, T2125)

ToolDescription
qb_gst_hst_returnGST34 return workpaper — lines 101/103/105/106/108/109 with 50% meals ITC restriction, TaxSummary report, tax payments, and Quick Method note
qb_t2125_summaryCRA T2125 line-by-line mapping (8521 Advertising, 8523 Meals at 50%, 8910 Rent, ...)
qb_cca_scheduleCapital Cost Allowance by class — half-year rule, Accelerated Investment Incentive, Class 10.1/54 ceilings
qb_t4a_contractor_reportT4A box 048 contractor reporting with BN/address validation (T5018 note for construction)
qb_estimate_instalmentsCRA instalments (Mar/Jun/Sep/Dec 15) + exact CPP/CPP2, with approximate federal/provincial tax
qb_list_tax_codesSales tax codes (name, combined rate, agency) — pass as tax_code= to create tools
qb_list_tax_ratesIndividual sales tax rates and agencies

Smart Features

ToolDescription
qb_uncategorized_transactionsFind uncategorized transactions
qb_find_duplicatesDetect potential duplicates
qb_auto_categorize_suggestionsAI-suggested categories based on vendor history
qb_monthly_burn_rateMonthly expense trends
qb_runway_calculatorMonths of cash runway
qb_fiscal_year_close_checklistYear-end close readiness check
qb_books_health_auditComprehensive books health audit
qb_month_end_closeMonth-end close checklist with status checks
qb_unknown_vendor_reportFind transactions with missing vendor names

Reconciliation & Attachments

ToolDescription
qb_reconcile_invoicesMatch invoices against QB transactions
qb_match_invoices_to_transactionsFuzzy-match with tolerance
qb_upload_receiptAttach receipts to transactions
qb_list_attachmentsList attached documents
qb_missing_receiptsExpenses ≥ threshold (default $75) with no receipt attached — IRS substantiation gap
qb_change_audit_trailWhat changed since a date — created / updated / deleted transactions (QuickBooks CDC)
qb_bank_reconciliationTie a bank/credit-card statement CSV to the books — matched / missing / uncleared
qb_account_balanceCheck any account balance

Connection & Multi-Company

ToolDescription
qb_list_companiesList all connected QuickBooks companies
qb_switch_companySwitch to a different company
qb_refresh_connectionRefresh connection to AccountingQB

Usage Examples

Once connected, just ask Claude naturally:

  • "What's my P&L for 2025?"
  • "Show me all expenses over $500 from last month"
  • "Create an expense for $49.99 to GitHub for software subscriptions"
  • "Run my Schedule C for tax year 2025"
  • "Find any uncategorized transactions"
  • "What's my monthly burn rate?"
  • "How much runway do I have?"
  • "Compare Q1 vs Q2 profit and loss"
  • "Find potential duplicate transactions"
  • "What deductions am I missing?"
  • "Generate my 1099 contractor report"
  • "Run anomaly detection on last quarter's transactions"
  • "Show my profit margins by customer"
  • "Forecast my cash flow for the next 6 months"
  • "Create a vendor credit for $200 to Amazon"
  • "Convert estimate #1042 to an invoice"
  • "Build my GST/HST return workpaper for Q2" (Canada)
  • "Map my books to the T2125 and estimate my CRA instalments" (Canada)

Security

This server takes security seriously:

  • No credentials in code — all secrets come from environment variables
  • OAuth 2.0 with automatic token rotation
  • Local-only OAuth flow — the setup script runs a callback server on 127.0.0.1
  • .env files are gitignored and set to chmod 600 (owner-only)
  • No data storage — the server is stateless; it reads/writes to QuickBooks and nothing else
  • Refresh tokens rotate — each token exchange returns a new refresh token
  • 100-day expiry — tokens expire after 100 days of inactivity (Intuit policy)

Token Management

QuickBooks 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:

  • 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/dashboardConnect QuickBooks, then run qb_refresh_connection again.
  • Self-hosted (your own Intuit app): re-run python setup.py to re-authorize and rewrite your refresh token.

Sandbox Mode

Test with Intuit's sandbox before connecting to production:

python setup.py --sandbox

This connects to sandbox-quickbooks.api.intuit.com with Intuit's test data. Switch to production when ready by running setup again without the flag.


Troubleshooting

"QuickBooks credentials not configured" Self-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.

"401 Unauthorized" Your connection may have expired (100-day idle limit). Hosted/managed: run qb_refresh_connection first, then if needed reconnect at accountingqb.com/dashboardConnect QuickBooks. Self-hosted: re-run python setup.py to re-authorize.

"Company not found" Check that your QB_REALM_ID matches the company you authorized. You can find it in the URL when logged into QuickBooks Online.

Tools not appearing in Claude Desktop Restart Claude Desktop after running setup. Check that the accountingqb entry exists in your Claude Desktop config.

Sandbox vs Production If you're seeing test data, check that QB_ENVIRONMENT is set to "production" in your config.


Contributing

Issues and PRs welcome. If you're adding new tools, follow the existing pattern:

  • Use flat parameters (not Pydantic models) for Claude Desktop compatibility
  • Include descriptive docstrings
  • Handle errors gracefully with actionable messages
  • Add the tool to the README table

License

Proprietary — © Vaspera Capital LLC, all rights reserved. The source is publicly viewable for transparency and security review; it is not open source. Use requires a paid license key. See LICENSE.

Built by Vaspera Capital

Rendered live from RCOLKITT/AccountingQB-MCP's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://mcp.accountingqb.com/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.