← Back to search

io.github.NyxToolsDev/quickbooks-mcp-server

NyxToolsDev Scanned 25d ago

Connect Claude to QuickBooks Online — query finances, create invoices, run reports

D
51.1 / 100

Versions

0.1.1latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 19

list_invoices
annotations: none low

List invoices with optional filters. Args: status: Filter by status - Open, Paid, Overdue, or All (default: All). date_from: Start date filter in YYYY-MM-DD format. date_to: End date filter in YYYY-MM-DD format. customer_name: Filter by customer name (partial match). limit: Maximum number of invoices to return (default: 25, max: 100). Returns: Formatted list of invoices with number, customer, amount, due date, and status.

limit int status str date_to str date_from str customer_name str
get_invoice_details
annotations: none low

Get full details for a specific invoice including line items. Args: invoice_id: The QuickBooks invoice ID. Returns: Detailed invoice information including line items, amounts, tax, customer info, and payment history.

invoice_id str
get_overdue_invoices
annotations: none low

Get all overdue invoices sorted by days past due. Returns: Overdue invoices with days overdue and total outstanding amount.

search_customers
annotations: none low

Search customers by name or email address. Args: query: Search term to match against customer name or email (partial match). Leave empty to list all customers. include_inactive: Include inactive/archived customers (default: false). limit: Maximum number of customers to return (default: 25, max: 100). Returns: Customer list with name, email, phone, balance due, and status.

limit int query str include_inactive bool
get_customer_summary
annotations: none low

Get a financial summary for a specific customer. Includes total invoiced, total paid, outstanding balance, and most recent payment information. Provide either customer_id or customer_name. Args: customer_id: The QuickBooks customer ID. customer_name: Search by customer name (uses first match). Returns: Comprehensive financial summary for the customer.

customer_id str customer_name str
get_financial_health
annotations: none low

Get key financial health metrics for your business. Calculates current ratio, quick ratio, days sales outstanding (DSO), monthly burn rate, and estimated cash runway. Requires a premium license. Args: as_of_date: Date for calculations in YYYY-MM-DD (default: today). Returns: Financial health dashboard with key ratios and metrics.

as_of_date str
compare_periods
annotations: none low

Compare financial performance between two time periods. Shows revenue, expenses, and net income side-by-side with dollar and percentage changes. Requires a premium license. Args: period_1: First period - this_month, last_month, this_quarter, last_quarter, this_year, last_year, or custom (default: this_month). period_2: Second period for comparison (default: last_month). date_from_1: Start date for custom period 1 (YYYY-MM-DD). date_to_1: End date for custom period 1 (YYYY-MM-DD). date_from_2: Start date for custom period 2 (YYYY-MM-DD). date_to_2: End date for custom period 2 (YYYY-MM-DD). Returns: Side-by-side comparison with dollar changes and percentage differences.

period_1 str period_2 str date_to_1 str date_to_2 str date_from_1 str date_from_2 str
list_expenses
annotations: none low

List recent expenses and purchases with optional filters. Args: date_from: Start date filter in YYYY-MM-DD format. date_to: End date filter in YYYY-MM-DD format. vendor_name: Filter by vendor/payee name (partial match). category: Filter by expense category/account name. min_amount: Minimum expense amount filter. max_amount: Maximum expense amount filter (0 = no limit). limit: Maximum results to return (default: 25, max: 100). Returns: Formatted list of expenses with date, vendor, amount, and category.

limit int date_to str category str date_from str max_amount float min_amount float vendor_name str
get_top_expenses
annotations: none low

Get top expenses grouped by category or vendor. Args: period: Time period - this_month, last_month, this_quarter, this_year (default: this_month). group_by: Group results by 'category' or 'vendor' (default: category). limit: Number of top entries to show (default: 10). Returns: Ranked expense breakdown with totals and percentages.

limit int period str group_by str
get_account_balances
annotations: none low

Get current balances for your accounts by type. Args: account_type: Filter by account type - Bank, CreditCard, or All (default: All). Returns: Formatted list of accounts with names, types, and current balances.

account_type str
get_account_transactions
annotations: none low

Get recent transactions for a specific account. You must provide either account_id or account_name. Args: account_id: The QuickBooks account ID. account_name: Search by account name (will find the first match). date_from: Start date filter in YYYY-MM-DD format. date_to: End date filter in YYYY-MM-DD format. limit: Maximum number of transactions to return (default: 25, max: 100). Returns: Recent transactions with dates, descriptions, amounts, and running context.

limit int date_to str date_from str account_id str account_name str
get_profit_and_loss
annotations: none low

Get a Profit & Loss (Income Statement) report. Shows revenue, expenses, and net income/loss for the specified period. Requires a premium license. Args: period: Time period - this_month, last_month, this_quarter, last_quarter, this_year, last_year, or custom (default: this_month). date_from: Start date for custom period (YYYY-MM-DD). date_to: End date for custom period (YYYY-MM-DD). accounting_method: Accrual or Cash (default: Accrual). Returns: Formatted P&L report with income, expense categories, and net income.

period str date_to str date_from str accounting_method str
get_balance_sheet
annotations: none low

Get a Balance Sheet report as of a specific date. Shows assets, liabilities, and equity. Requires a premium license. Args: as_of_date: Report date in YYYY-MM-DD format (default: today). accounting_method: Accrual or Cash (default: Accrual). Returns: Formatted Balance Sheet with assets, liabilities, equity, and totals.

as_of_date str accounting_method str
get_cash_flow
annotations: none low

Get a Cash Flow Statement. Shows operating, investing, and financing cash flows. Requires a premium license. Args: period: Time period - this_month, last_month, this_quarter, last_quarter, this_year, last_year, or custom (default: this_month). date_from: Start date for custom period (YYYY-MM-DD). date_to: End date for custom period (YYYY-MM-DD). Returns: Formatted Cash Flow Statement with operating, investing, and financing sections.

period str date_to str date_from str
get_accounts_receivable_aging
annotations: none low

Get an Accounts Receivable Aging report. Shows outstanding customer invoices grouped by aging buckets (Current, 1-30, 31-60, 61-90, 91+ days). Requires a premium license. Args: as_of_date: Report date in YYYY-MM-DD (default: today). Returns: AR aging by customer with current, 30, 60, 90+ day buckets and totals.

as_of_date str
get_accounts_payable_aging
annotations: none low

Get an Accounts Payable Aging report. Shows outstanding vendor bills grouped by aging buckets (Current, 1-30, 31-60, 61-90, 91+ days). Requires a premium license. Args: as_of_date: Report date in YYYY-MM-DD (default: today). Returns: AP aging by vendor with current, 30, 60, 90+ day buckets and totals.

as_of_date str
create_invoice
annotations: none low

Create a new invoice in QuickBooks. Requires a premium license. Args: customer_id: The QuickBooks customer ID to invoice. line_items: List of line items, each with: - description (str): Item description - amount (float): Line total amount - quantity (float, optional): Quantity (default: 1) - unit_price (float, optional): Price per unit - service_date (str, optional): Service date YYYY-MM-DD due_date: Invoice due date in YYYY-MM-DD format (optional). memo: Private memo/note for the invoice (optional). email_to_customer: Whether to email the invoice to the customer (default: false). Returns: Confirmation with the new invoice number, total, and ID.

memo str due_date str line_items string customer_id str email_to_customer bool
record_payment
annotations: none low

Record a payment against an existing invoice. Requires a premium license. Args: invoice_id: The QuickBooks invoice ID to apply payment to. amount: Payment amount (must be positive). payment_date: Payment date in YYYY-MM-DD format (default: today). payment_method: Payment method (e.g., Cash, Check, Credit Card, ACH, Other). reference_number: Check number or transaction reference (optional). memo: Private memo for the payment (optional). Returns: Confirmation with payment details and remaining invoice balance.

memo str amount float invoice_id str payment_date str payment_method str reference_number str
create_expense
annotations: none low

Record a new expense/purchase in QuickBooks. Requires a premium license. Args: vendor_name: Vendor/payee name. amount: Expense total amount (must be positive). category: Expense category/account name (e.g., Office Supplies, Rent). account_name: Bank/credit card account used for payment. payment_type: Cash, Check, or CreditCard (default: Cash). expense_date: Expense date in YYYY-MM-DD format (default: today). memo: Description or memo for the expense (optional). reference_number: Check number or reference (optional). Returns: Confirmation with expense details and ID.

memo str amount float category str vendor_name str account_name str expense_date str payment_type str reference_number str

Permissions 3

network medium
Server uses network capabilities via: http, httpx, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 86

low
Tool 'list_invoices' has no annotations annotation_checker · 100%
low
Tool 'get_invoice_details' has no annotations annotation_checker · 100%
low
Tool 'get_overdue_invoices' has no annotations annotation_checker · 100%
low
Tool 'search_customers' has no annotations annotation_checker · 100%
low
Tool 'get_customer_summary' has no annotations annotation_checker · 100%
low
Tool 'get_financial_health' has no annotations annotation_checker · 100%
low
Tool 'compare_periods' has no annotations annotation_checker · 100%
low
Tool 'list_expenses' has no annotations annotation_checker · 100%
low
Tool 'get_top_expenses' has no annotations annotation_checker · 100%
low
Tool 'get_account_balances' has no annotations annotation_checker · 100%
low
Tool 'get_account_transactions' has no annotations annotation_checker · 100%
low
Tool 'get_profit_and_loss' has no annotations annotation_checker · 100%
low
Tool 'get_balance_sheet' has no annotations annotation_checker · 100%
low
Tool 'get_cash_flow' has no annotations annotation_checker · 100%
low
Tool 'get_accounts_receivable_aging' has no annotations annotation_checker · 100%
low
Tool 'get_accounts_payable_aging' has no annotations annotation_checker · 100%
low
Tool 'create_invoice' has no annotations annotation_checker · 100%
low
Tool 'record_payment' has no annotations annotation_checker · 100%
low
Tool 'create_expense' has no annotations annotation_checker · 100%
high
Hardcoded OAuth client secret in NyxToolsDev-quickbooks-mcp-server-dffaac6/tests/conftest.py auth_checker · 95%
high
Hardcoded OAuth client secret in NyxToolsDev-quickbooks-mcp-server-dffaac6/scripts/setup_oauth.py auth_checker · 95%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-3qhf-m339-9g5v) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-9h52-p55h-vw2f) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-j975-95f5-7wqh) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1616) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1617) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1618) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3482) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3483) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-3ww4-gg4f-jr7f) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-537c-gmf6-5ccf) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-6vqw-3v5j-54x4) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-9v9h-cgj8-h64p) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-cf7p-gm2m-833m) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-h4gh-qq45-vh27) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-jfhm-5ghh-2f97) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-jm77-qphf-c4w8) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-jwv3-5hgf-82ww) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-m2h6-j472-rp4c) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-m959-cc7f-wv43) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-r6ph-v2qm-q3c2) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (GHSA-v8gr-m533-ghj9) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2023-112) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2023-254) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2024-225) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-1283) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-1285) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-2141) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-35) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-3553) dependency_analyzer · 95%
medium
Vulnerable dependency: cryptography@41.0.0 (PYSEC-2026-3554) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: list_invoices manifest_parser · 90%
info
Tool: get_invoice_details manifest_parser · 90%
info
Tool: get_overdue_invoices manifest_parser · 90%
info
Tool: search_customers manifest_parser · 90%
info
Tool: get_customer_summary manifest_parser · 90%
info
Tool: get_financial_health manifest_parser · 90%
info
Tool: compare_periods manifest_parser · 90%
info
Tool: list_expenses manifest_parser · 90%
info
Tool: get_top_expenses manifest_parser · 90%
info
Tool: get_account_balances manifest_parser · 90%
info
Tool: get_account_transactions manifest_parser · 90%
info
Tool: get_profit_and_loss manifest_parser · 90%
info
Tool: get_balance_sheet manifest_parser · 90%
info
Tool: get_cash_flow manifest_parser · 90%
info
Tool: get_accounts_receivable_aging manifest_parser · 90%
info
Tool: get_accounts_payable_aging manifest_parser · 90%
info
Tool: create_invoice manifest_parser · 90%
info
Tool: record_payment manifest_parser · 90%
info
Tool: create_expense manifest_parser · 90%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (8) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 80%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'get_account_transactions': Directive language: 'you must' poisoning · 85%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%