Connects Claude to QuickBooks Online's accounting API so you can query invoices, customers, vendors, and transactions without leaving your LLM workflow. Built in Python with async support and handles OAuth authentication, rate limiting, and retry logic out of the box. Reach for this when you're building financial dashboards, automating bookkeeping tasks, or need to pull accounting data into reports without manual CSV exports. The implementation covers the major QuickBooks entities, though the docs don't spell out every endpoint. Installation is straightforward via pip, and it uses the standard MCP stdio transport for Claude Desktop integration.
Public tool metadata for what this MCP can expose to an agent.
QUICKBOOKS_CREATE_ACCOUNTCreate a new account in QuickBooks with the given parameters.4 paramsCreate a new account in QuickBooks with the given parameters.
namestringaccount_typestringBank · Other Current Asset · Fixed Asset · Other Asset · Accounts Receivable · Equityaccount_numberstringaccount_sub_typestringCashOnHand · Checking · MoneyMarket · RentsHeldInTrust · Savings · TrustAccountsQUICKBOOKS_CREATE_CUSTOMERCreate a new customer in QuickBooks with the given parameters.6 paramsCreate a new customer in QuickBooks with the given parameters.
titlestringsuffixstringgiven_namestringfamily_namestringmiddle_namestringdisplay_namestringQUICKBOOKS_CREATE_EMPLOYEECreate a new employee in QuickBooks.3 paramsCreate a new employee in QuickBooks.
given_namestringfamily_namestringprimary_addrobjectQUICKBOOKS_CREATE_INVOICETool to create a new invoice in QuickBooks. Use after confirming customer and item details.3 paramsTool to create a new invoice in QuickBooks. Use after confirming customer and item details.
linesarraycustomer_idstringminorversionintegerQUICKBOOKS_CREATE_VENDORCreate a new vendor in QuickBooks with the given details.6 paramsCreate a new vendor in QuickBooks with the given details.
titlestringsuffixstringgiven_namestringfamily_namestringmiddle_namestringdisplay_namestringQUICKBOOKS_CUSTOMER_BALANCE_DETAILGenerate a balance detail report for a customer in QuickBooks with the given customer ID.13 paramsGenerate a balance detail report for a customer in QuickBooks with the given customer ID.
arpaidstringAll · Paid · Unpaidcolumnsstringcustom1stringshipviastringsort_bystringterm_idsarraysort_orderstringascend · descendend_duedatestringreport_datestringaging_methodstringReport_Date · Currentcustomer_idsarraystart_duedatestringdepartment_idsarrayQUICKBOOKS_CUSTOMER_BALANCE_REPORTGenerate a balance report for a customer in QuickBooks with the given customer ID.8 paramsGenerate a balance report for a customer in QuickBooks with the given customer ID.
arpaidstringAll · Paid · Unpaiddate_macrostringToday · Yesterday · This Week · Last Week · This Week-to-date · Last Week-to-datesort_orderstringascend · descendreport_datestringcustomer_idsarraydepartment_idsarrayaccounting_methodstringCash · Accrualsummarize_column_bystringTotal · Month · Week · Days · Quarter · YearQUICKBOOKS_LIST_INVOICESTool to list invoices via QuickBooks Query endpoint. Use when retrieving invoices with optional pagination and custom fields.3 paramsTool to list invoices via QuickBooks Query endpoint. Use when retrieving invoices with optional pagination and custom fields.
fieldsarraymax_resultsintegerstart_positionintegerQUICKBOOKS_QUERY_ACCOUNTQuery an account in QuickBooks with the given parameters.1 paramsQuery an account in QuickBooks with the given parameters.
querystringQUICKBOOKS_READ_ACCOUNTRead an account in QuickBooks with the given account ID.1 paramsRead an account in QuickBooks with the given account ID.
account_idstringQUICKBOOKS_READ_CUSTOMERRead a customer in QuickBooks with the given customer ID.1 paramsRead a customer in QuickBooks with the given customer ID.
customer_idstringQUICKBOOKS_READ_EMPLOYEERead an employee's details in QuickBooks with the given employee ID.1 paramsRead an employee's details in QuickBooks with the given employee ID.
employee_idstringQUICKBOOKS_READ_INVOICETool to fetch a QuickBooks invoice by ID or the most recent if no ID provided. Use when needing full invoice details including metadata and sync token.2 paramsTool to fetch a QuickBooks invoice by ID or the most recent if no ID provided. Use when needing full invoice details including metadata and sync token.
invoice_idstringminorversionintegerQUICKBOOKS_READ_VENDORRead a vendor in QuickBooks with the given vendor ID.1 paramsRead a vendor in QuickBooks with the given vendor ID.
vendor_idstringQUICKBOOKS_UPDATE_FULL_INVOICETool to fully replace an Invoice. Use when you need to update all aspects of an existing invoice in a single operation.3 paramsTool to fully replace an Invoice. Use when you need to update all aspects of an existing invoice in a single operation.
invoiceobjectrequestidstringminorversionintegerQUICKBOOKS_UPDATE_SPARSE_INVOICETool to perform a sparse update of an existing invoice. Use when you need to update only specific invoice fields without overwriting other data.1 paramsTool to perform a sparse update of an existing invoice. Use when you need to update only specific invoice fields without overwriting other data.
invoiceobjectQUICKBOOKS_VENDOR_BALANCE_DETAILGenerate a balance detail report for a vendor in QuickBooks with the given vendor ID.12 paramsGenerate a balance detail report for a vendor in QuickBooks with the given vendor ID.
appaidstringAll · Paid · Unpaidsort_bystringterm_idsarraydate_macrostringToday · Yesterday · This Week · Last Week · This Week-to-date · Last Week-to-datesort_orderstringascend · descendvendor_idsarrayend_duedatestringreport_datestringduedate_macrostringToday · Yesterday · This Week · Last Week · This Week-to-date · Last Week-to-datestart_duedatestringdepartment_idsarrayaccounting_methodstringCash · AccrualQUICKBOOKS_VENDOR_BALANCE_REPORTGet the balance report of a vendor in QuickBooks with the given vendor ID.9 paramsGet the balance report of a vendor in QuickBooks with the given vendor ID.
qzurlstringappaidstringAll · Paid · Unpaiddate_macrostringToday · Yesterday · This Week · Last Week · This Week-to-date · Last Week-to-datesort_orderstringascend · descendvendor_idsarrayreport_datestringdepartment_idsarrayaccounting_methodstringCash · Accrualsummarize_column_bystringTotal · Month · Week · Days · Quarter · YearA Model Context Protocol (MCP) server for integrating QuickBooks with GenAI applications.
Accounting and financial management integration
pip install quickbooks-mcp-server
Or install from source:
git clone https://github.com/asklokesh/quickbooks-mcp-server.git
cd quickbooks-mcp-server
pip install -e .
Create a .env file or set environment variables according to QuickBooks API requirements.
from quickbooks_mcp import QuickbooksMCPServer
# Initialize the server
server = QuickbooksMCPServer()
# Start the server
server.start()
MIT License - see LICENSE file for details
QUICKBOOKS_API_KEY*secretAPI Key for QUICKBOOKS
QUICKBOOKS_API_URLAPI URL for QUICKBOOKS
io.github.shelvick/shopify-subscription-reconciliation
zleventer/google-ads-mcp
csoai-org/meok-stripe-acp-checkout-mcp
io.github.mharnett/google-ads
csoai-org/stripe-billing-mcp
co.pipeboard/google-ads-mcp