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

MCP server for QuickBooks Online API integration

Available components

0 this week 79 Trust /100

Last scanned (22 hours ago)

Scores higher than 62% of npm servers

Category Finance and Payments

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 decode-uri-component 0.2.2, reached via intuit-oauth > query-string > decode-uri-component. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 70 of 197 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 8545 tokens (~208/item across 41 items; 41 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety92
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 2 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "query" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 41 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
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.

  • 30 Oct 26 0
    • CVE-2026-118664 affects this package: high ▼ security
  • 28 Oct 26 +1
    • Stability: 0.97 → pass security
  • 26 Oct 26 −1
    • Stability: pass → 0.93 functional
    • Package version: 0.8.0 → 0.12.0 functional
  • 19 Oct 26 +1
    • Stability: pass → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Tool coverage: 100% → 94% ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Destructive annotations: 0% → 67% ▲ functional
    • Package version: 0.11.0 → 0.12.0 functional
  • 17 Oct 26 +2
    • Stability: 0.87 → pass security
  • 15 Oct 26 −2
    • Stability: pass → 0.83 functional
  • 14 Oct 26 +1
    • Stability: 0.97 → pass security
  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
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 4 Nov 2026 · Analysed npm/quickbooks-mcp@0.12.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 5 findings
ID CVE Severity Vector Fix available
GHSA-qr28-fpjm-wq7f CVE-2026-118664 high yes
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 197 packages
Packages resolved 197
Deprecated 2
Stale 69
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 41 exposed · ~8,545 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_methodstring–Accounting method: 'Accrual' (default) or 'Cash'
departmentstring–Filter to specific department/location (optional)
end_datestring–End date YYYY-MM-DD (default: today)
start_datestring–Start 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_accountstring–Accounts Payable account name or number (optional, defaults to standard AP). Only Accounts Payable-type accounts are matched.
department_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstring–Reference number for the bill (optional)
draftboolean–If true, validate and show preview without creating (default: true)
due_datestring–Due 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…
memostring–Private memo for the bill
txn_datestringyesTransaction date in YYYY-MM-DD format
vendor_idstring–Vendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestring–Vendor 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.
creditsarray–Vendor credits to apply against the bills (optional). Each credit must belong to the vendor and have remaining balance.
doc_numberstring–Reference number, e.g., check number or EFT reference (optional)
draftboolean–If true, validate and show preview without creating (default: true)
memostring–Private 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_idstring–Vendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestring–Vendor 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_addressobject–Billing address (optional)
bill_with_parentboolean–If true, invoices for this sub-customer are billed to the parent (default: false)
company_namestring–Company name (optional)
display_namestringyesPrimary display name (must be unique in QuickBooks)
draftboolean–If true, validate and show preview without creating (default: true)
emailstring–Primary email address (optional)
family_namestring–Last/family name (optional)
given_namestring–First/given name (optional)
jobboolean–Mark this customer as a job (default: false). Jobs track work for a parent customer.
middle_namestring–Middle name (optional)
mobilestring–Mobile phone number (optional)
notesstring–Notes about the customer (optional)
parent_refstring–Parent customer name or ID to create a sub-customer or job. Will be looked up to get ID.
phonestring–Primary phone number (optional)
preferred_delivery_methodstring–How invoices are delivered: Print, Email, or None
sales_term_refstring–Default payment terms name (e.g., 'Net 30'). Will be looked up to get ID.
ship_addressobject–Shipping address (optional, same shape as bill_address)
suffixstring–Name suffix, e.g., 'Jr.' (optional)
taxableboolean–Whether 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_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-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.
draftboolean–If 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.
memostring–Private 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_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstring–Reference number for the expense (optional)
draftboolean–If true, validate and show preview without creating (default: true)
entity_idstring–Payee ID (use if you already know it, otherwise use entity_name)
entity_namestring–Payee 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_typestring–Which 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.
memostring–Private 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_paymentboolean–Allow 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_paymentboolean–Allow customer to pay this invoice with a credit card online. Must be explicitly set — company defaults do not apply via API.
bill_emailstring–Email address to send the invoice to. Required if you want QuickBooks to email the invoice.
customer_idstring–Customer ID (use if you already know it, otherwise use customer_name)
customer_memostring–Customer-facing message visible on the invoice
customer_namestring–Customer display name (e.g., 'Cash Sales'). Will be looked up to get ID.
department_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstring–Reference number for the invoice (optional)
draftboolean–If true, validate and show preview without creating (default: true)
due_datestring–Due 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).
memostring–Private memo for the invoice (internal, not visible to customer)
sales_term_refstring–Payment 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_numberstring–Journal number (shown as 'Journal no.' in QuickBooks). If not specified, QuickBooks will auto-assign the next number.
draftboolean–If 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.
memostring–Private 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_idstring–Customer ID (use if you already know it, otherwise use customer_name)
customer_namestring–Customer display name (e.g., 'Cash Sales'). Will be looked up to get ID.
department_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
deposit_to_accountstring–Bank account name or number to deposit into (e.g., 'Undeposited Funds', '1000'). Will be looked up to get ID.
doc_numberstring–Reference number for the sales receipt (optional)
draftboolean–If 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).
memostring–Private 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.
draftboolean–Preview without recording. Default true.
from_accountstringyesAccount the money leaves. Bank or Credit Card only — name, number, or ID.
private_notestring–Private 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 ~139

Create a vendor.

NameTypeReqDescription
account_numberstring–Your account number with the vendor
bill_addressobject––
company_namestring––
display_namestringyesUnique display name
draftboolean–Preview only (default: true)
emailstring––
family_namestring––
given_namestring––
phonestring––
term_refstring–Payment terms name or ID
titlestring–Contact title, e.g. 'Ms.'
vendor_1099boolean–Track for 1099

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_accountstring–Accounts Payable account name or number (optional, defaults to standard AP). Only Accounts Payable-type accounts are matched.
department_idstring–Header-level department/location ID (use if you already know it, otherwise use department_name)
department_namestring–Header-level department/location name (e.g., '20358', 'Cotati'). Will be looked up to get ID.
doc_numberstring–Reference number for the vendor credit (optional)
draftboolean–If true, validate and show preview without creating (default: true)
linesarrayyesArray of line items. Each line credits an expense account.
memostring–Private memo for the vendor credit
txn_datestringyesTransaction date in YYYY-MM-DD format
vendor_idstring–Vendor ID (use if you already know it, otherwise use vendor_name)
vendor_namestring–Vendor 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
confirmboolean–If 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_namestring–Header-level department/location name (auto-resolved to ID)
doc_numberstring–Reference number for the bill (optional)
draftboolean–If true, validate and show preview without saving (default: true)
due_datestring–New due date in YYYY-MM-DD format (optional)
idstringyesBill ID to edit
linesarray–Line modifications. Provide line_id to update existing, omit to add new.
memostring–New private memo (optional)
txn_datestring–New transaction date in YYYY-MM-DD format (optional)
vendor_namestring–New 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
activeboolean–Set to false to deactivate customer (QuickBooks equivalent of delete)
bill_addressobject–New billing address
bill_with_parentboolean–Bill this sub-customer with its parent
company_namestring–New company name
display_namestring–New display name (must be unique in QuickBooks)
draftboolean–If true, validate and show preview without saving (default: true)
emailstring–New primary email address
family_namestring–New last/family name
given_namestring–New first/given name
idstringyesCustomer ID to edit
jobboolean–Mark as a job (tracks work for a parent customer)
middle_namestring–New middle name
mobilestring–New mobile phone number
notesstring–New notes about the customer
parent_refstring–Parent customer name or ID (makes this a sub-customer). Auto-resolved to ID.
phonestring–New primary phone number
preferred_delivery_methodstring–How invoices are delivered: Print, Email, or None
sales_term_refstring–Default payment terms name (e.g., 'Net 30'). Auto-resolved to ID.
ship_addressobject–New shipping address
suffixstring–New name suffix
taxableboolean–Whether 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_namestring–Header-level department/location name (auto-resolved to ID)
deposit_to_accountstring–New deposit account name/number (Bank account)
draftboolean–If true, validate and show preview without saving (default: true)
expected_totalnumber–Override 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
linesarray–IMPORTANT: 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.…
memostring–New private memo (optional)
txn_datestring–New 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_namestring–Header-level department/location name (auto-resolved to ID)
draftboolean–If true, validate and show preview without saving (default: true)
entity_idstring–Payee ID (use if you already know it, otherwise use entity_name)
entity_namestring–Payee display name. Will be looked up to get ID; use entity_type to say which name list it belongs to.
entity_typestring–Which name list entity_name/entity_id refers to. Defaults to Vendor.
idstringyesExpense (Purchase) ID to edit
linesarray–Line modifications. Provide line_id to update existing, omit to add new.
memostring–New private memo (optional)
payment_accountstring–New payment account name/number (Bank or Credit Card account)
txn_datestring–New 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_paymentboolean–Allow customer to pay via bank transfer (ACH) online
allow_online_credit_card_paymentboolean–Allow customer to pay with credit card online
bill_emailstring–New email address to send the invoice to
customer_memostring–New customer-facing message visible on the invoice
customer_namestring–New customer display name (auto-resolved to ID)
department_namestring–Header-level department/location name (auto-resolved to ID)
draftboolean–If true, validate and show preview without saving (default: true)
due_datestring–New due date in YYYY-MM-DD format (optional)
idstringyesInvoice ID to edit
linesarray–Line modifications. Provide line_id to update existing line, omit to add new line.
memostring–New private memo (optional)
sales_term_refstring–Payment terms name (e.g., 'Net 30'). Auto-resolved to ID.
txn_datestring–New 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_numberstring–New journal number (optional)
draftboolean–If true, validate and show preview without saving (default: true)
idstringyesJournal entry ID to edit
linesarray–Line modifications. Provide line_id to update existing line, omit to add new line.
memostring–New private memo (optional)
txn_datestring–New 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_namestring–Customer name (auto-resolved to ID). Also used to restore a customer that was cleared by an earlier edit.
department_namestring–Header-level department/location name (auto-resolved to ID)
deposit_to_accountstring–New deposit account name/number (Bank account)
draftboolean–If true, validate and show preview without saving (default: true)
idstringyesSales receipt ID to edit
linesarray–Line modifications. Provide line_id to update existing line, omit to add new line.
memostring–New private memo (optional)
txn_datestring–New transaction date in YYYY-MM-DD format (optional)

No output schema declared.

No examples provided.

edit_vendor ~165

Sparse-update a vendor: only fields passed change; bill_address merges into the stored address. active=false deactivates. Read vendors with query (SELECT * FROM Vendor WHERE ...).

NameTypeReqDescription
account_numberstring––
activeboolean––
bill_addressobject––
company_namestring––
display_namestring––
draftboolean–Preview only (default: true)
emailstring––
family_namestring––
given_namestring––
idstringyesVendor ID
phonestring––
term_refstring–Payment terms name or ID
titlestring––
vendor_1099boolean––

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_numberstring–New reference number (optional)
draftboolean–If true, validate and show preview without saving (default: true)
idstringyesVendor Credit ID to edit
linesarray–Line modifications. Provide line_id to update existing line, omit to add new line.
memostring–New private memo (optional)
txn_datestring–New transaction date in YYYY-MM-DD format (optional)
vendor_namestring–New 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_methodstring–Accounting method: 'Accrual' (default) or 'Cash'
as_of_datestring–Report 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…
departmentstring–Filter 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_rawboolean–Append 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_bystring–How 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_methodstring–Accounting 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…
departmentstring–Filter 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_datestring–End date in YYYY-MM-DD format
include_rawboolean–Append 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_datestring–Start date in YYYY-MM-DD format
summarize_bystring–How 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_methodstring–Default Accrual.
customerstring–Customer name or ID.
date_macrostring–Named period instead of dates, e.g. 'Last Month'.
departmentstring–Department/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_datestring–YYYY-MM-DD.
include_rawboolean–Append the raw report payload. Off by default; the table already carries the numbers.
max_rowsnumber–Rendered row cap, default 200, max 2000.
reportstringyesQuickBooks' own spelling ('AgedPayables') is accepted too.
report_datestring–YYYY-MM-DD as-of date for the aging, balance and inventory reports; rejected on the rest.
start_datestring–YYYY-MM-DD. Range reports only.
summarize_bystring–Column breakdown, where the report supports it.
vendorstring–Vendor 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_methodstring–Accounting method: 'Accrual' (default) or 'Cash'
end_datestring–End date in YYYY-MM-DD format
flagsboolean–If 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_rawboolean–Append 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_datestring–Start 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_typestring–Optional filter by account type (e.g., 'Bank', 'Expense', 'Income', 'Other Current Asset', 'Fixed Asset', 'Other Current Liability', 'Equity')
active_onlyboolean–If 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_codestring–Authorization code from the QuickBooks OAuth callback URL (the 'code' parameter)
realm_idstring–Company/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'
departmentstring–Filter to specific department/location (optional)
end_datestring–End date YYYY-MM-DD (default: today)
include_subaccountsboolean–Also 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.
limitnumber–Max transactions returned in detail. Totals always cover the whole period regardless of this.
offsetnumber–Skip this many transactions (default: 0). Page through long results using the offset the previous call reports.
start_datestring–Start 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
amountnumber–Payment 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_idstring–Customer ID. Either this or customer_name.
customer_namestring–Customer display name. Either this or customer_id.
deposit_to_accountstring–Bank account, or Undeposited Funds. Omit to let QuickBooks use its own default, which is normally Undeposited Funds.
draftboolean–Preview 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.
memostring–Private note on the payment.
payment_methodstring–Payment method name or ID, e.g. 'Check', 'Cash', 'EFT'.
reference_nostring–Check number or ACH reference.
txn_datestringyesPayment date, YYYY-MM-DD.

No output schema declared.

No examples provided.

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
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 79 out of 100 on VerifyMCP. We recorded 5 known advisories against it as of 4 November 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 41 tools: qbo_authenticate, get_company_info, query, list_accounts, get_profit_loss, and 36 more. Their descriptions and schemas cost roughly 8,545 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 4 November 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.