QuickBooks Runtime Skill
SkillCommerce & financeOperate the user's QuickBooks Online company through the QuickBooks MCP. Use when the user asks to look up or create customers and invoices, send or void an invoice, review payments/bills/accounts/vendors, or run a financial report.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the QuickBooks Runtime Skill skill
What this skill tells your AI
The instructions your AI receives, as published by manor-os/manor-ai in packages/core/ai/skills/mcp_quickbooks/SKILL.md and read by ahel’s review.
Use this skill to operate the user's connected QuickBooks Online company through the QuickBooks MCP (mcp__quickbooks__*). Every call requires a realm_id (the company identifier).
When To Use
Use QuickBooks when the user asks about their accounting data — customers, invoices, payments, items, accounts, vendors, bills — or wants to create/send an invoice or run a financial report.
Connection
Authenticates via Intuit OAuth. Every tool needs realm_id (the connected company). On an auth error, stop and ask the user to reconnect. get_company_info confirms the company (name, fiscal year, currency).
Core Tools
Read / query:
get_company_info(reqrealm_id).query_customers/get_customer,query_invoices/get_invoice,query_payments/get_payment.query_items,query_accounts,query_vendors,query_bills.run_report(reqrealm_id,report_name— e.g.ProfitAndLoss,BalanceSheet).custom_query(reqrealm_id,sql— raw QBO SQL).
Write (high-impact — see Guardrails):
create_customer(reqrealm_id,display_name).create_invoice(reqrealm_id,customer_id).send_invoice(reqrealm_id,invoice_id) — emails the invoice to the customer.void_invoice(reqrealm_id,invoice_id,sync_token) — voids an invoice that has not been paid.
Common Recipes
Create and send an invoice
query_customers→ thecustomer_id(orcreate_customer). 2.query_itemsfor the line-item references. 3. Show the full invoice (customer, line items, amounts) and get explicit approval. 4.create_invoice, thensend_invoiceonly after the user confirms sending.
Run a P&L
- Confirm the period. 2.
run_reportwithreport_name: ProfitAndLossand the date range; summarize.
Guardrails
- This is the company's financial system of record. Treat every write as high-impact. Confirm exact details before
create_customer/create_invoice/void_invoice. send_invoiceemails a real customer and creates a payable obligation — never send without explicit approval of recipient + amounts. Creating an invoice and sending it are two deliberate steps.custom_queryruns raw SQL — keep it read-only (SELECT); do not use it to mutate data.- Amounts/currency: confirm against
get_company_infocurrency; double-check totals before creating an invoice.
Edge Cases & Errors
realm_idis mandatory on every call — resolve the connected company first; don't guess it.- QBO SQL (
custom_query) is a SQL-like dialect, not full SQL — prefer the typedquery_*tools when they cover the need. - Report names are fixed identifiers (
ProfitAndLoss,BalanceSheet, …) — use a valid one. - Auth errors → stop and ask the user to reconnect.
Signals
- GitHub stars
- 171
- Forks
- 52
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
mcp-quickbooks- Source
- github.com/manor-os/manor-ai