# QuickBooks Online MCP Server - Tools Summary

## Overview
Built 14 tool files with **105 total tools** for comprehensive QuickBooks Online integration.

## Tool Files Created

### 1. `src/tools/invoices.ts` (7 tools)
- `qbo_list_invoices` - List with filters (customer, amount range)
- `qbo_get_invoice` - Get by ID
- `qbo_create_invoice` - Create with line items
- `qbo_update_invoice` - Update (requires SyncToken)
- `qbo_void_invoice` - Void transaction
- `qbo_delete_invoice` - Delete (soft)
- `qbo_query_invoices` - Custom SQL-like queries

### 2. `src/tools/customers.ts` (6 tools)
- `qbo_list_customers` - List with pagination
- `qbo_get_customer` - Get by ID
- `qbo_create_customer` - Create with full details
- `qbo_update_customer` - Update (requires SyncToken)
- `qbo_search_customers` - Search by name/email
- `qbo_query_customers` - Custom SQL-like queries

### 3. `src/tools/payments.ts` (9 tools)
- `qbo_list_payments` - List payments
- `qbo_get_payment` - Get by ID
- `qbo_create_payment` - Create with linked invoices
- `qbo_update_payment` - Update
- `qbo_void_payment` - Void
- `qbo_delete_payment` - Delete
- `qbo_list_credit_memos` - List credit memos
- `qbo_get_credit_memo` - Get by ID
- `qbo_create_credit_memo` - Create

### 4. `src/tools/estimates.ts` (10 tools)
- `qbo_list_estimates` - List estimates
- `qbo_get_estimate` - Get by ID
- `qbo_create_estimate` - Create
- `qbo_update_estimate` - Update
- `qbo_delete_estimate` - Delete
- `qbo_send_estimate` - Email to customer
- `qbo_list_sales_receipts` - List sales receipts
- `qbo_get_sales_receipt` - Get by ID
- `qbo_create_sales_receipt` - Create
- `qbo_delete_sales_receipt` - Delete

### 5. `src/tools/bills.ts` (9 tools)
- `qbo_list_bills` - List with filters
- `qbo_get_bill` - Get by ID
- `qbo_create_bill` - Create
- `qbo_update_bill` - Update
- `qbo_delete_bill` - Delete
- `qbo_list_bill_payments` - List bill payments
- `qbo_get_bill_payment` - Get by ID
- `qbo_create_bill_payment` - Create with linked bills
- `qbo_delete_bill_payment` - Delete

### 6. `src/tools/vendors.ts` (6 tools)
- `qbo_list_vendors` - List with pagination
- `qbo_get_vendor` - Get by ID
- `qbo_create_vendor` - Create with 1099 support
- `qbo_update_vendor` - Update
- `qbo_search_vendors` - Search by name
- `qbo_query_vendors` - Custom SQL-like queries

### 7. `src/tools/items.ts` (6 tools)
- `qbo_list_items` - List all item types
- `qbo_get_item` - Get by ID
- `qbo_create_item` - Create (inventory/non-inventory/service/bundle)
- `qbo_update_item` - Update
- `qbo_search_items` - Search by name
- `qbo_query_items` - Custom SQL-like queries

### 8. `src/tools/accounts.ts` (5 tools)
- `qbo_list_accounts` - List chart of accounts
- `qbo_get_account` - Get by ID
- `qbo_create_account` - Create with sub-account support
- `qbo_update_account` - Update
- `qbo_query_accounts` - Custom SQL-like queries

### 9. `src/tools/reports.ts` (7 tools)
- `qbo_run_profit_loss` - P&L report
- `qbo_run_balance_sheet` - Balance sheet
- `qbo_run_cash_flow` - Cash flow statement
- `qbo_run_ar_aging` - AR aging summary
- `qbo_run_ap_aging` - AP aging summary
- `qbo_run_trial_balance` - Trial balance
- `qbo_run_general_ledger` - General ledger

### 10. `src/tools/employees.ts` (5 tools)
- `qbo_list_employees` - List employees
- `qbo_get_employee` - Get by ID
- `qbo_create_employee` - Create with billable time support
- `qbo_update_employee` - Update
- `qbo_query_employees` - Custom SQL-like queries

### 11. `src/tools/time-activities.ts` (5 tools)
- `qbo_list_time_activities` - List with filters
- `qbo_get_time_activity` - Get by ID
- `qbo_create_time_activity` - Create with billable status
- `qbo_update_time_activity` - Update
- `qbo_delete_time_activity` - Delete

### 12. `src/tools/taxes.ts` (8 tools)
- `qbo_list_tax_codes` - List tax codes
- `qbo_get_tax_code` - Get by ID
- `qbo_query_tax_codes` - Custom queries
- `qbo_list_tax_rates` - List tax rates
- `qbo_get_tax_rate` - Get by ID
- `qbo_query_tax_rates` - Custom queries
- `qbo_list_tax_agencies` - List tax agencies
- `qbo_get_tax_agency` - Get by ID

### 13. `src/tools/purchases.ts` (9 tools)
- `qbo_list_purchases` - List purchases
- `qbo_get_purchase` - Get by ID
- `qbo_create_purchase` - Create (expense/check/credit card)
- `qbo_update_purchase` - Update
- `qbo_delete_purchase` - Delete
- `qbo_list_purchase_orders` - List POs
- `qbo_get_purchase_order` - Get by ID
- `qbo_create_purchase_order` - Create
- `qbo_delete_purchase_order` - Delete

### 14. `src/tools/journal-entries.ts` (13 tools)
- `qbo_list_journal_entries` - List JEs
- `qbo_get_journal_entry` - Get by ID
- `qbo_create_journal_entry` - Create (balanced debits/credits)
- `qbo_update_journal_entry` - Update
- `qbo_delete_journal_entry` - Delete
- `qbo_list_deposits` - List deposits
- `qbo_get_deposit` - Get by ID
- `qbo_create_deposit` - Create
- `qbo_delete_deposit` - Delete
- `qbo_list_transfers` - List transfers
- `qbo_get_transfer` - Get by ID
- `qbo_create_transfer` - Create account transfer
- `qbo_delete_transfer` - Delete

## QBO Specifics Implemented

✓ **SyncToken** - Required for all updates (optimistic locking)
✓ **SQL-like queries** - Full support for `SELECT * FROM Entity WHERE ...`
✓ **Pagination** - 1-indexed startPosition + maxResults (max 1000)
✓ **Report endpoints** - Special handling via `getReport` method
✓ **Void operations** - Proper handling via delete with operation parameter
✓ **Entity reads** - Standard `/company/{realmId}/{entityType}/{id}` pattern

## Tool Naming Convention
All tools follow the pattern: `qbo_verb_noun`
- Examples: `qbo_list_invoices`, `qbo_create_customer`, `qbo_run_profit_loss`

## TypeScript Compliance
✓ All files compile without errors (`npx tsc --noEmit`)
✓ Proper imports from `../clients/quickbooks.js`
✓ Type-safe handlers with QuickBooks types from `../types/index.js`

## Next Steps
1. Update `src/server.ts` to import and register all tool files
2. Test with actual QuickBooks sandbox credentials
3. Add integration tests
4. Update README with tool documentation
