QuickBooks MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_receivables_agingA | Who owes the business money, and how overdue each amount is. Use this for any question about unpaid customer invoices, accounts receivable, overdue accounts, collections, or who is behind on payment. Returns every open invoice with the customer name, due date, days overdue and outstanding balance; per-customer totals ranked worst-first; and totals per aging bucket (current, 1-30, 31-60, 61-90, 90+ days). Args: as_of: Date to age against as YYYY-MM-DD. Defaults to today. min_days_overdue: Only include invoices at least this many days late. 0 (the default) includes invoices that are not yet due. customer: Case-insensitive substring to limit results to one customer. |
| get_payables_agingA | Who the business owes money to, and how overdue each bill is. The accounts-payable mirror of get_receivables_aging: use it for unpaid bills, money owed to suppliers or vendors, and upcoming payment obligations. Same shape of answer, aged into the same buckets. Args: as_of: Date to age against as YYYY-MM-DD. Defaults to today. min_days_overdue: Only include bills at least this many days late. vendor: Case-insensitive substring to limit results to one vendor. |
| get_profit_and_lossA | Income, expenses and net profit over a period. Use for questions about revenue, sales totals, expenses, spending, margins or whether the business is profitable. Defaults to the current fiscal year to date when no dates are given. Args: start_date: Period start, YYYY-MM-DD. end_date: Period end, YYYY-MM-DD. accounting_method: "Accrual" or "Cash". Defaults to the company setting. |
| get_balance_sheetA | Assets, liabilities and equity at a point in time. Use for questions about what the business owns and owes overall, cash position, or financial standing. For "who owes us money" specifically, get_receivables_aging gives a far more useful breakdown than the single receivables line on this report. Args: as_of: Balance sheet date, YYYY-MM-DD. Defaults to today. accounting_method: "Accrual" or "Cash". Defaults to the company setting. |
| find_contactsA | Look up customers or vendors, with contact details and balances. Use to find someone by partial name, to list who the business deals with, or to get an email or phone number. The balance returned is that contact's total outstanding; for invoice-level detail and overdue days use get_receivables_aging. Args: name_contains: Case-insensitive partial name. Omit to list everyone. kind: "customer" or "vendor". include_inactive: Include archived records. Defaults to active only. limit: Maximum records to return (capped at 500). |
| get_company_infoA | Name, address and fiscal year of the connected QuickBooks company. Useful for confirming which company the answers refer to, and for finding the fiscal year start before asking for period reports. |
| run_queryA | Run a read-only QuickBooks query for anything the other tools miss. Only SELECT statements are accepted, and this server can only issue read requests, so no query can modify data. The language is a restricted subset of SQL: no JOIN, GROUP BY, OR, or aggregate functions. Call describe_schema first to check entity and field names, and prefer the purpose-built tools where one fits -- they do arithmetic this cannot. Example: SELECT * FROM Invoice WHERE TxnDate >= '2026-01-01' Args: query: A QuickBooks SELECT statement. |
| describe_schemaA | Which QuickBooks entities and fields can be queried, and the dialect rules. Call this before writing a run_query statement. With no argument it lists every queryable entity and available report; with an entity name it returns that entity's key fields. Costs no API call. Args: entity: Entity name such as "Invoice" or "Customer". Omit for the overview. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CharlesPiccioneBTP/Local-MCP-server-for-QuickBooks-Sandbox'
If you have feedback or need assistance with the MCP directory API, please join our Discord server