Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.laf-rge/quickbooks-mcp

NPM · QUICKBOOKS-MCP · SCANNED SEP 20

MCP server for QuickBooks Online API integration

Available components

0 this week 77 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security89
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects uuid 8.3.2, reached via node-quickbooks > uuid. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 72 of 200 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 8241 tokens (~211/item across 39 items; 39 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "query" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.laf-rge/quickbooks-mcp server?

io.github.laf-rge/quickbooks-mcp runs locally as an npm package, launched with npx -y quickbooks-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · quickbooks-mcp

# add to Claude Code
claude mcp add laf-rge-quickbooks-mcp -- npx -y quickbooks-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "laf-rge-quickbooks-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "quickbooks-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "laf-rge-quickbooks-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "quickbooks-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add laf-rge-quickbooks-mcp -- npx -y quickbooks-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "laf-rge-quickbooks-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "quickbooks-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add laf-rge-quickbooks-mcp --command npx --arg -y --arg quickbooks-mcp
# ~/.hermes/config.yaml
mcp_servers:
  laf-rge-quickbooks-mcp:
    command: "npx"
    args: ["-y", "quickbooks-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "laf-rge-quickbooks-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "quickbooks-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add laf-rge-quickbooks-mcp -t stdio -c npx -a -y quickbooks-mcp
// mcp.json
{
  "mcpServers": {
    "laf-rge-quickbooks-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "quickbooks-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1
    • Security disclosure: unverified → fail functional
  • 17 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 16 Sept 26 +1
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified functional
  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 10 Sept 26 +1
    • Stability: 0.97 → pass security
  • 8 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 7 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/quickbooks-mcp@0.11.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 4 findings
ID CVE Severity Vector Fix available
GHSA-vcc3-ghjq-m6fr CVE-2026-45822 medium yes
GHSA-gh4j-gqv2-49f6 CVE-2026-41650 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N yes
GHSA-qpx9-hpmf-5gmw CVE-2026-27601 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 200 packages
Packages resolved 200
Deprecated 2
Stale 71
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 39 exposed · ~8,241 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
account_period_summary ~132

Get a period summary for an account: opening balance, total debits/credits, closing balance, and transaction count. Uses the General Ledger report. Supports department filtering.

NameTypeReqDescription
accountstringyesAccount name, number (AcctNum), or ID
accounting_methodstringAccounting method: 'Accrual' (default) or 'Cash'
departmentstringFilter to specific department/location (optional)
end_datestringEnd date YYYY-MM-DD (default: today)
start_datestringStart date YYYY-MM-DD (default: start of year)

No output schema declared.

No examples provided.

create_bill ~331

Create a vendor bill. Accepts vendor/account/department names (will lookup IDs automatically). Note: DepartmentRef is header-level only — for multi-department splits, create separate bills (one per department). Returns bill details and a link to view in QuickBooks.

NameTypeReqDescription
ap_accountstringAccounts Payable account name or number (optional, defaults to standard AP). Only Accounts Payable-type accounts are matched.
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstringReference number for the bill (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
due_datestringDue date in YYYY-MM-DD format (optional)
linesarrayyesArray of expense line items. Provide account_name OR account_id (name preferred). Optionally provide class_name OR class_id for per-line Class tracking, and customer_name OR customer_id to attribute…
memostringPrivate memo for the bill
txn_datestringyesTransaction date in YYYY-MM-DD format
vendor_idstringVendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestringVendor display name (e.g., 'Simplisafe', 'PG&E'). Will be looked up to get ID.

No output schema declared.

No examples provided.

create_bill_payment ~333

Create a bill payment (the QBO 'check' / 'pay bills' flow). Pays one or more existing bills and optionally applies vendor credits, clearing Accounts Payable. Use this to record vendor ACH/EFT debits or checks so the bank feed can match them — especially when a bank charge equals bills minus credit memos. Amounts default to each bill's open balance and each credit's remaining balance. Returns payment details and a link to view in QuickBooks.

NameTypeReqDescription
billsarrayyesBills to pay. Each bill must belong to the vendor and have an open balance.
creditsarrayVendor credits to apply against the bills (optional). Each credit must belong to the vendor and have remaining balance.
doc_numberstringReference number, e.g., check number or EFT reference (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
memostringPrivate memo for the payment
payment_accountstringyesBank account name or number the payment is drawn from (e.g., 'PLAT BUS CHECKING', '5752'). Only Bank-type accounts are matched, so a partial name cannot resolve to an expense or liability account.
txn_datestringyesPayment date in YYYY-MM-DD format (use the bank debit date for bank-feed matching)
vendor_idstringVendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestringVendor display name (e.g., 'US Foods'). Will be looked up to get ID.

No output schema declared.

No examples provided.

create_customer ~385

Create a customer or sub-customer. Accepts name parts, contact info, addresses, and hierarchy settings. Use parent_ref to create sub-customers or jobs. Returns customer details and a link to view in QuickBooks.

NameTypeReqDescription
bill_addressobjectBilling address (optional)
bill_with_parentbooleanIf true, invoices for this sub-customer are billed to the parent (default: false)
company_namestringCompany name (optional)
display_namestringyesPrimary display name (must be unique in QuickBooks)
draftbooleanIf true, validate and show preview without creating (default: true)
emailstringPrimary email address (optional)
family_namestringLast/family name (optional)
given_namestringFirst/given name (optional)
jobbooleanMark this customer as a job (default: false). Jobs track work for a parent customer.
middle_namestringMiddle name (optional)
mobilestringMobile phone number (optional)
notesstringNotes about the customer (optional)
parent_refstringParent customer name or ID to create a sub-customer or job. Will be looked up to get ID.
phonestringPrimary phone number (optional)
preferred_delivery_methodstringHow invoices are delivered: Print, Email, or None
sales_term_refstringDefault payment terms name (e.g., 'Net 30'). Will be looked up to get ID.
ship_addressobjectShipping address (optional, same shape as bill_address)
suffixstringName suffix, e.g., 'Jr.' (optional)
taxablebooleanWhether the customer is taxable (optional)

No output schema declared.

No examples provided.

create_deposit ~262

Create a bank deposit. Accepts account/department/entity names (will lookup IDs automatically). Lines represent the sources of the deposit — amounts can be positive (income) or negative (fees, deductions). Each line may name the vendor, customer, or employee it came from via entity_name/entity_type. QuickBooks computes the total from line amounts. Returns deposit details and a link to view in QuickBooks.

NameTypeReqDescription
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
deposit_to_accountstringyesBank account name or number receiving the deposit (e.g., 'PLAT BUS CHECKING', '5752'). Will be looked up to get ID.
draftbooleanIf true, validate and show preview without creating (default: true)
linesarrayyesArray of deposit line items. Each line represents a source of the deposit. Amounts can be positive or negative.
memostringPrivate memo for the deposit
txn_datestringyesTransaction date in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_expense ~400

Create an expense (Purchase). Accepts account/department/payee names (will lookup IDs automatically). Covers Cash, Check, and Credit Card payment types. The payee may be a vendor, customer, or employee — set entity_type to say which (defaults to Vendor). Note: PaymentType cannot be changed after creation. DepartmentRef is header-level only. Returns expense details and a link to view in QuickBooks.

NameTypeReqDescription
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstringReference number for the expense (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
entity_idstringPayee ID (use if you already know it, otherwise use entity_name)
entity_namestringPayee display name (e.g., 'Acme Supply Co'). Will be looked up to get ID; use entity_type to say which name list it belongs to.
entity_typestringWhich name list entity_name/entity_id refers to. Defaults to Vendor.
linesarrayyesArray of expense line items. Provide account_name OR account_id (name preferred). Optionally provide customer_name OR customer_id to attribute the line to a customer.
memostringPrivate memo for the expense
payment_accountstringyesBank or credit card account name or number (e.g., 'PLAT BUS CHECKING', '5752'). Will be looked up to get ID.
payment_typestringyesPayment method: 'Cash', 'Check', or 'CreditCard'. Cannot be changed after creation.
txn_datestringyesTransaction date in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_invoice ~434

Create an invoice. Accepts item/customer/department names (will lookup IDs automatically). Either customer_name or customer_id is REQUIRED — invoices must have a customer. Lines use SalesItemLineDetail (product/service references, not accounts). Returns invoice details and a link to view in QuickBooks.

NameTypeReqDescription
allow_online_ach_paymentbooleanAllow customer to pay this invoice via bank transfer (ACH) online. Must be explicitly set — company defaults do not apply via API.
allow_online_credit_card_paymentbooleanAllow customer to pay this invoice with a credit card online. Must be explicitly set — company defaults do not apply via API.
bill_emailstringEmail address to send the invoice to. Required if you want QuickBooks to email the invoice.
customer_idstringCustomer ID (use if you already know it, otherwise use customer_name)
customer_memostringCustomer-facing message visible on the invoice
customer_namestringCustomer display name (e.g., 'Cash Sales'). Will be looked up to get ID.
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstringReference number for the invoice (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
due_datestringDue date in YYYY-MM-DD format (optional)
linesarrayyesArray of line items. Each line references an item (product/service). Provide item_name OR item_id (name preferred).
memostringPrivate memo for the invoice (internal, not visible to customer)
sales_term_refstringPayment terms name (e.g., 'Net 30', 'Due on receipt'). Will be looked up to get ID.
txn_datestringyesTransaction date in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_journal_entry ~192

Create a journal entry. Accepts account/department/entity names (will lookup IDs automatically). Validates debits=credits before creating. Lines may carry an entity (vendor, customer, or employee) — QuickBooks requires one on any line posting to Accounts Receivable or Accounts Payable. Returns entry details and a link to view in QuickBooks.

NameTypeReqDescription
doc_numberstringJournal number (shown as 'Journal no.' in QuickBooks). If not specified, QuickBooks will auto-assign the next number.
draftbooleanIf true, validate and show preview without creating (default: true)
linesarrayyesArray of line items. Provide account_name OR account_id (name preferred). Optionally provide department_name OR department_id.
memostringPrivate memo for the journal entry
txn_datestringyesTransaction date in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_sales_receipt ~288

Create a sales receipt. Accepts item/customer/department names (will lookup IDs automatically). Lines reference items (products/services) not accounts. Returns receipt details and a link to view in QuickBooks.

NameTypeReqDescription
customer_idstringCustomer ID (use if you already know it, otherwise use customer_name)
customer_namestringCustomer display name (e.g., 'Cash Sales'). Will be looked up to get ID.
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
deposit_to_accountstringBank account name or number to deposit into (e.g., 'Undeposited Funds', '1000'). Will be looked up to get ID.
doc_numberstringReference number for the sales receipt (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
linesarrayyesArray of line items. Each line references an item (product/service). Provide item_name OR item_id (name preferred).
memostringPrivate memo for the sales receipt
txn_datestringyesTransaction date in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_transfer ~210

Move money between two of the company's own accounts (QuickBooks 'Transfer') — bank to bank, or a credit-card paydown. Use this rather than create_expense, which would book the outflow as an expense and never touch the receiving account, or create_journal_entry, which posts the right result but does not read as a transfer in the register or the bank-feed match screen. Defaults to draft: true for a preview.

NameTypeReqDescription
amountnumberyesAmount to move. Must be positive; reverse the accounts rather than passing a negative.
draftbooleanPreview without recording. Default true.
from_accountstringyesAccount the money leaves. Bank or Credit Card only — name, number, or ID.
private_notestringPrivate note on the transfer.
to_accountstringyesAccount the money arrives in. Bank or Credit Card only — name, number, or ID.
txn_datestringyesTransfer date, YYYY-MM-DD.

No output schema declared.

No examples provided.

create_vendor_credit ~267

Create a vendor credit. Accepts vendor/account/department names (will lookup IDs automatically). Lines represent credit amounts applied to expense accounts. Returns credit details and a link to view in QuickBooks.

NameTypeReqDescription
ap_accountstringAccounts Payable account name or number (optional, defaults to standard AP). Only Accounts Payable-type accounts are matched.
department_idstringHeader-level department/location ID (use if you already know it, otherwise use department_name)
department_namestringHeader-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstringReference number for the vendor credit (optional)
draftbooleanIf true, validate and show preview without creating (default: true)
linesarrayyesArray of line items. Each line credits an expense account.
memostringPrivate memo for the vendor credit
txn_datestringyesTransaction date in YYYY-MM-DD format
vendor_idstringVendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestringVendor display name (e.g., 'Acme Corp'). Will be looked up to get ID.

No output schema declared.

No examples provided.

delete_entity ~133

Permanently delete a QuickBooks transaction. Supports journal entries, bills, invoices, deposits, sales receipts, expenses, vendor credits, bill payments, and attachments. Uses a two-step flow: first call previews what will be deleted, second call with confirm=true executes the deletion. Note: Customers cannot be deleted — use edit_customer with active=false to deactivate instead.

NameTypeReqDescription
confirmbooleanIf true, execute the deletion. If false (default), show a preview of what will be deleted.
entity_typestringyesThe type of entity to delete.
idstringyesThe entity ID to delete.

No output schema declared.

No examples provided.

edit_bill ~256

Modify an existing bill. Can update vendor, date, due date, memo, and/or lines. For lines: provide line_id to update existing line, omit to add new line, set delete=true to remove. A line_id preserves the line's existing customer unless customer_name/customer_id is given; pass customer_name: "" to clear it. Note: DepartmentRef is header-level only — lines do not support department.

NameTypeReqDescription
department_namestringHeader-level department/location name (auto-resolved to ID)
doc_numberstringReference number for the bill (optional)
draftbooleanIf true, validate and show preview without saving (default: true)
due_datestringNew due date in YYYY-MM-DD format (optional)
idstringyesBill ID to edit
linesarrayLine modifications. Provide line_id to update existing, omit to add new.
memostringNew private memo (optional)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)
vendor_namestringNew vendor display name (e.g., 'Simplisafe', 'PG&E'). Auto-resolved to ID.

No output schema declared.

No examples provided.

edit_customer ~369

Modify an existing customer. Can update name, contact info, addresses, notes, taxable status, active status, hierarchy (parent/sub-customer), delivery method, and payment terms. Set active=false to deactivate (QuickBooks equivalent of delete).

NameTypeReqDescription
activebooleanSet to false to deactivate customer (QuickBooks equivalent of delete)
bill_addressobjectNew billing address
bill_with_parentbooleanBill this sub-customer with its parent
company_namestringNew company name
display_namestringNew display name (must be unique in QuickBooks)
draftbooleanIf true, validate and show preview without saving (default: true)
emailstringNew primary email address
family_namestringNew last/family name
given_namestringNew first/given name
idstringyesCustomer ID to edit
jobbooleanMark as a job (tracks work for a parent customer)
middle_namestringNew middle name
mobilestringNew mobile phone number
notesstringNew notes about the customer
parent_refstringParent customer name or ID (makes this a sub-customer). Auto-resolved to ID.
phonestringNew primary phone number
preferred_delivery_methodstringHow invoices are delivered: Print, Email, or None
sales_term_refstringDefault payment terms name (e.g., 'Net 30'). Auto-resolved to ID.
ship_addressobjectNew shipping address
suffixstringNew name suffix
taxablebooleanWhether the customer is taxable

No output schema declared.

No examples provided.

edit_deposit ~352

Modify an existing deposit. Can update date, memo, deposit account, department, and/or lines. CRITICAL for line changes: The QB Deposit API does NOT replace lines - it merges them. Lines WITH line_id update existing lines. Lines WITHOUT line_id are ADDED as new. Lines NOT included are KEPT unchanged. To 'delete' a line, you must include ALL existing lines with their line_ids and set unwanted lines to amount: 0. Line amounts must sum to the original deposit total (use expected_total to override for corrupted deposits). Entity (vendor/customer/employee) can be set on any line, new or existing, via entity_name/entity_type; a line_id with no entity input keeps whatever entity the line already had.

NameTypeReqDescription
department_namestringHeader-level department/location name (auto-resolved to ID)
deposit_to_accountstringNew deposit account name/number (Bank account)
draftbooleanIf true, validate and show preview without saving (default: true)
expected_totalnumberOverride total validation with this expected amount (for fixing corrupted deposits). Lines must sum to this value instead of current deposit total.
idstringyesDeposit ID to edit
linesarrayIMPORTANT: You MUST include ALL existing lines with their line_ids. Lines without line_id are ADDED (not replaced). Lines not included are KEPT (not deleted). To 'delete' a line, set its amount to 0.…
memostringNew private memo (optional)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_expense ~274

Modify an existing expense (Purchase). Can update date, memo, payment account, payee, and/or lines. The payee may be a vendor, customer, or employee — set entity_type to say which (defaults to Vendor). Note: PaymentType (Cash/Check/CreditCard) cannot be changed after creation.

NameTypeReqDescription
department_namestringHeader-level department/location name (auto-resolved to ID)
draftbooleanIf true, validate and show preview without saving (default: true)
entity_idstringPayee ID (use if you already know it, otherwise use entity_name)
entity_namestringPayee display name. Will be looked up to get ID; use entity_type to say which name list it belongs to.
entity_typestringWhich name list entity_name/entity_id refers to. Defaults to Vendor.
idstringyesExpense (Purchase) ID to edit
linesarrayLine modifications. Provide line_id to update existing, omit to add new.
memostringNew private memo (optional)
payment_accountstringNew payment account name/number (Bank or Credit Card account)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_invoice ~306

Modify an existing invoice. Can update date, due date, memo, customer, department, terms, email, online payment settings, and/or lines. For lines: provide line_id to update existing line, omit line_id to add new line (requires item_name), set delete=true to remove.

NameTypeReqDescription
allow_online_ach_paymentbooleanAllow customer to pay via bank transfer (ACH) online
allow_online_credit_card_paymentbooleanAllow customer to pay with credit card online
bill_emailstringNew email address to send the invoice to
customer_memostringNew customer-facing message visible on the invoice
customer_namestringNew customer display name (auto-resolved to ID)
department_namestringHeader-level department/location name (auto-resolved to ID)
draftbooleanIf true, validate and show preview without saving (default: true)
due_datestringNew due date in YYYY-MM-DD format (optional)
idstringyesInvoice ID to edit
linesarrayLine modifications. Provide line_id to update existing line, omit to add new line.
memostringNew private memo (optional)
sales_term_refstringPayment terms name (e.g., 'Net 30'). Auto-resolved to ID.
txn_datestringNew transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_journal_entry ~189

Modify an existing journal entry. Can update date, memo, doc_number, and/or lines. For lines: provide line_id to update existing line, omit line_id to add new line, set delete=true to remove a line. A line_id preserves the line's existing entity unless entity_name/entity_id is given; pass entity_name: "" to clear it. Validates debits=credits before saving.

NameTypeReqDescription
doc_numberstringNew journal number (optional)
draftbooleanIf true, validate and show preview without saving (default: true)
idstringyesJournal entry ID to edit
linesarrayLine modifications. Provide line_id to update existing line, omit to add new line.
memostringNew private memo (optional)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_sales_receipt ~214

Modify an existing sales receipt. Can update date, memo, customer, deposit account, department, and/or lines. For lines: provide line_id to update existing line, omit line_id to add new line (requires item_name), set delete=true to remove.

NameTypeReqDescription
customer_namestringCustomer name (auto-resolved to ID). Also used to restore a customer that was cleared by an earlier edit.
department_namestringHeader-level department/location name (auto-resolved to ID)
deposit_to_accountstringNew deposit account name/number (Bank account)
draftbooleanIf true, validate and show preview without saving (default: true)
idstringyesSales receipt ID to edit
linesarrayLine modifications. Provide line_id to update existing line, omit to add new line.
memostringNew private memo (optional)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_vendor_credit ~218

Modify an existing vendor credit. Can update vendor, date, memo, ref number, and/or lines. For lines: provide line_id to update existing line, omit line_id to add new line (requires amount and account_name), set delete=true to remove. A line_id preserves the line's existing customer unless customer_name/customer_id is given; pass customer_name: "" to clear it. Note: DepartmentRef is header-level only — lines do not support department.

NameTypeReqDescription
doc_numberstringNew reference number (optional)
draftbooleanIf true, validate and show preview without saving (default: true)
idstringyesVendor Credit ID to edit
linesarrayLine modifications. Provide line_id to update existing line, omit to add new line.
memostringNew private memo (optional)
txn_datestringNew transaction date in YYYY-MM-DD format (optional)
vendor_namestringNew vendor display name (auto-resolved to ID)

No output schema declared.

No examples provided.

get_balance_sheet ~275

Get a Balance Sheet report. Can be broken down by department/location.

NameTypeReqDescription
accounting_methodstringAccounting method: 'Accrual' (default) or 'Cash'
as_of_datestringReport as of this date in YYYY-MM-DD format (defaults to today)
columnsstring'total' (default) shows only the total column. 'all' renders every column as a table — use with summarize_by to see per-department (or per-month) values, which are otherwise absent from the rendered…
departmentstringFilter to a specific department/location ID
detail_levelstring'summary' (default) returns section totals only. 'account' also lists each account with its balance, so you do not have to open the full report file.
include_rawbooleanAppend the full raw report payload. Off by default: the rendered summary already carries the numbers, and the raw copy roughly doubles the response. Only needed for fields the summary does not render.
summarize_bystringHow to summarize columns: 'Total' (default), 'Month', 'Week', 'Days', 'Quarter', 'Year', 'Customers', 'Vendors', 'Classes', 'Departments', 'Employees', 'ProductsAndServices'

No output schema declared.

No examples provided.

get_bill ~51

Fetch a single bill by ID with full details including SyncToken (needed for edits). Returns vendor, date, due date, amount, AP account, line details.

NameTypeReqDescription
idstringyesThe bill ID

No output schema declared.

No examples provided.

get_bill_payment ~68

Fetch a single bill payment by ID with full details including SyncToken. Shows vendor, date, pay type, bank account, linked bills/credits with applied amounts, and flags any unapplied amount (payment total not matching net applied lines).

NameTypeReqDescription
idstringyesThe bill payment ID

No output schema declared.

No examples provided.

get_company_info ~18

Get information about the connected QuickBooks company.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_customer ~56

Fetch a single customer by ID with full details including SyncToken (needed for edits). Returns name, contact info, addresses, balance, hierarchy (parent/sub-customer), and active status.

NameTypeReqDescription
idstringyesThe customer ID

No output schema declared.

No examples provided.

get_deposit ~53

Fetch a single deposit by ID with full details including SyncToken (needed for edits). Returns deposit account, date, memo, and line details showing source accounts and amounts.

NameTypeReqDescription
idstringyesThe deposit ID

No output schema declared.

No examples provided.

get_expense ~61

Fetch a single expense (Purchase) by ID with full details including SyncToken. Covers Expenses, Checks, and Credit Card charges. Returns payment type, account, date, amount, line details.

NameTypeReqDescription
idstringyesThe expense (Purchase) ID

No output schema declared.

No examples provided.

get_invoice ~56

Fetch a single invoice by ID with full details including SyncToken (needed for edits). Returns customer, date, due date, balance, department, line details with items/qty/price.

NameTypeReqDescription
idstringyesThe invoice ID

No output schema declared.

No examples provided.

get_journal_entry ~50

Fetch a single journal entry by ID with full details including SyncToken (needed for edits). Returns formatted summary and writes full object to temp file.

NameTypeReqDescription
idstringyesThe journal entry ID

No output schema declared.

No examples provided.

get_profit_loss ~287

Get a Profit and Loss (Income Statement) report. Can be broken down by department/location.

NameTypeReqDescription
accounting_methodstringAccounting method: 'Accrual' (default) or 'Cash'
columnsstring'total' (default) shows only the total column. 'all' renders every column as a table — use with summarize_by to see per-department (or per-month) values, which are otherwise absent from the rendered…
departmentstringFilter to a specific department/location ID
detail_levelstring'summary' (default) returns section totals only. 'account' also lists each account with its balance, so you do not have to open the full report file.
end_datestringEnd date in YYYY-MM-DD format
include_rawbooleanAppend the full raw report payload. Off by default: the rendered summary already carries the numbers, and the raw copy roughly doubles the response. Only needed for fields the summary does not render.
start_datestringStart date in YYYY-MM-DD format
summarize_bystringHow to summarize columns: 'Total' (default), 'Month', 'Week', 'Days', 'Quarter', 'Year', 'Customers', 'Vendors', 'Classes', 'Departments', 'Employees', 'ProductsAndServices'

No output schema declared.

No examples provided.

get_report ~355

Run a QuickBooks report that has no dedicated tool: A/R and A/P aging, customer and vendor balances, transaction lists, general ledger, journal, sales by customer/item/class/department, cash flow, and detail variants. Answers what is outstanding and how old it is, which the entity query tools cannot — a report sees postings that carry no account reference in entity JSON. Profit and Loss, Balance Sheet and Trial Balance have their own tools.

NameTypeReqDescription
accounting_methodstringDefault Accrual.
customerstringCustomer name or ID.
date_macrostringNamed period instead of dates, e.g. 'Last Month'.
departmentstringDepartment/location name or ID.
detail_levelstring'summary' (default) prints section headers and subtotals; 'full' adds the leaf rows nested under them, which on a detail report is thousands. Top-level rows always print, so a flat report is complete…
end_datestringYYYY-MM-DD.
include_rawbooleanAppend the raw report payload. Off by default; the table already carries the numbers.
max_rowsnumberRendered row cap, default 200, max 2000.
reportstringyesQuickBooks' own spelling ('AgedPayables') is accepted too.
report_datestringYYYY-MM-DD as-of date for the aging, balance and inventory reports; rejected on the rest.
start_datestringYYYY-MM-DD. Range reports only.
summarize_bystringColumn breakdown, where the report supports it.
vendorstringVendor name or ID.

No output schema declared.

No examples provided.

get_sales_receipt ~58

Fetch a single sales receipt by ID with full details including SyncToken (needed for edits). Returns customer, date, deposit account, department, line details with items/qty/price.

NameTypeReqDescription
idstringyesThe sales receipt ID

No output schema declared.

No examples provided.

get_trial_balance ~231

Get a Trial Balance report. Useful for month-end close and reconciliation. Note: Trial Balance does not support department/location breakdown in QuickBooks Online.

NameTypeReqDescription
accounting_methodstringAccounting method: 'Accrual' (default) or 'Cash'
end_datestringEnd date in YYYY-MM-DD format
flagsbooleanIf true, append a close-review pass over the report: accounts carrying a balance on the wrong side (an asset or expense with a credit, a liability/equity/income with a debit), and uncategorized/suspe…
include_rawbooleanAppend the full raw report payload. Off by default: the rendered account/debit/credit table already carries the numbers, and the raw copy roughly doubles the response.
start_datestringStart date in YYYY-MM-DD format

No output schema declared.

No examples provided.

get_vendor_credit ~60

Fetch a single vendor credit by ID with full details including SyncToken (needed for edits). Returns vendor, date, memo, ref number, AP account, and line details showing expense accounts and amounts.

NameTypeReqDescription
idstringyesThe vendor credit ID

No output schema declared.

No examples provided.

list_accounts ~116

List all accounts in the chart of accounts. Returns AcctNum (the user-facing account number), Name, AccountType, AccountSubType, and CurrentBalance. Use AcctNum to reference accounts in other queries or operations.

NameTypeReqDescription
account_typestringOptional filter by account type (e.g., 'Bank', 'Expense', 'Income', 'Other Current Asset', 'Fixed Asset', 'Other Current Liability', 'Equity')
active_onlybooleanIf true, only return active accounts (default: true)

No output schema declared.

No examples provided.

qbo_authenticate ~128

Authenticate with QuickBooks using OAuth (local credential mode only). Step 1: Call with no arguments to get the authorization URL. Step 2: After authorizing in browser, call with authorization_code and realm_id from the callback URL. This tool only works when QBO_CREDENTIAL_MODE is 'local' (the default).

NameTypeReqDescription
authorization_codestringAuthorization code from the QuickBooks OAuth callback URL (the 'code' parameter)
realm_idstringCompany/realm ID from the callback URL (the 'realmId' parameter). Required when providing authorization_code.

No output schema declared.

No examples provided.

query ~191

Execute a QuickBooks query using SQL-like syntax. Supports querying any entity type (Customer, Vendor, Invoice, Bill, Account, Item, Department, etc.). Results are written to a file to preserve context. Defaults to MAXRESULTS 1000 if not specified. Examples: 'SELECT * FROM Customer', 'SELECT * FROM SalesReceipt WHERE TxnDate >= \'2025-11-01\' AND TxnDate <= \'2025-11-30\''

NameTypeReqDescription
querystringyesThe SQL-like query string, e.g. SELECT * FROM Bill WHERE TxnDate >= '2026-01-01'. Any queryable QBO entity works. Add MAXRESULTS N to limit results (default: 1000). Most transaction fields (Departmen…

No output schema declared.

No examples provided.

query_account_transactions ~262

Query all transactions affecting a specific account, across all 13 posting transaction types. Returns a consolidated list with date, type, amount (debit/credit), and description. Useful for investigating account balance discrepancies. Note: the A/R side of invoices, credit memos, and payments has no account reference in QBO's data model and cannot appear here — use account_period_summary for A/R totals.

NameTypeReqDescription
accountstringyesAccount name, number (AcctNum), or ID. Examples: 'Tips', '2320', '116'
departmentstringFilter to specific department/location (optional)
end_datestringEnd date YYYY-MM-DD (default: today)
include_subaccountsbooleanAlso match transactions posting to sub-accounts of this account (default: false). Needed to reconcile against account_period_summary, which always rolls sub-accounts into the parent.
limitnumberMax transactions returned in detail. Totals always cover the whole period regardless of this.
offsetnumberSkip this many transactions (default: 0). Page through long results using the offset the previous call reports.
start_datestringStart date YYYY-MM-DD (default: start of year)

No output schema declared.

No examples provided.

receive_payment ~320

Record a customer payment against one or more open invoices (QuickBooks 'Receive Payment'), clearing Accounts Receivable. This is the A/R counterpart to create_bill_payment. Not a deposit — create_deposit banks money without settling an invoice — and not a sales receipt, which records a sale that was paid outright and never had an invoice. Defaults to draft: true for a preview.

NameTypeReqDescription
amountnumberPayment total. Defaults to the sum applied to invoices. A larger figure is allowed and leaves the difference as an unapplied credit on the customer; a smaller one is rejected.
customer_idstringCustomer ID. Either this or customer_name.
customer_namestringCustomer display name. Either this or customer_id.
deposit_to_accountstringBank account, or Undeposited Funds. Omit to let QuickBooks use its own default, which is normally Undeposited Funds.
draftbooleanPreview without recording. Default true — shows each invoice's open balance, what is being applied, and what remains.
invoicesarrayyesInvoices to settle. Each amount defaults to that invoice's open balance, so the common case needs only the id.
memostringPrivate note on the payment.
payment_methodstringPayment method name or ID, e.g. 'Check', 'Cash', 'EFT'.
reference_nostringCheck number or ACH reference.
txn_datestringyesPayment date, YYYY-MM-DD.

No output schema declared.

No examples provided.

Common questions

What is the io.github.laf-rge/quickbooks-mcp server?

io.github.laf-rge/quickbooks-mcp is listed in the public MCP registry as io.github.laf-rge/quickbooks-mcp. MCP server for QuickBooks Online API integration. This page covers its npm package (quickbooks-mcp).

Is the io.github.laf-rge/quickbooks-mcp server safe to use?

io.github.laf-rge/quickbooks-mcp scores 77 out of 100 on VerifyMCP. We recorded 4 known advisories against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.laf-rge/quickbooks-mcp server expose?

io.github.laf-rge/quickbooks-mcp exposes 39 tools: qbo_authenticate, get_company_info, query, list_accounts, get_profit_loss, and 34 more. Their descriptions and schemas cost roughly 8,241 tokens of context every time the server is loaded.

Is the io.github.laf-rge/quickbooks-mcp server still maintained?

io.github.laf-rge/quickbooks-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.laf-rge/quickbooks-mcp server under?

io.github.laf-rge/quickbooks-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.