Connect QuickBooks Online to ChatGPT, Claude, Gemini, and other LLMs
Description
Section titled “Description”QuickBooks Online is Intuit's cloud accounting software. It stores invoices, customers, vendors, transactions, and financial reports such as profit and loss and A/R aging. To analyze that data in ChatGPT, Claude, Gemini, or another LLM, use scheduled Coupler.io imports.
Also searched as QBO, QuickBooks, Intuit QuickBooks.
How to connect
Section titled “How to connect”Connect QuickBooks Online to your AI tool with Coupler.io. Pick the tool you use to see how to install it.
Coupler.io imports QuickBooks Online entities or reports on a schedule and exposes the result to Claude through its own MCP server, so Claude queries a stored dataset rather than calling Intuit directly.
Works with
Pick the AI tool you use. The install steps below change to match it.
- Each AI tool sees only the datasets from data flows that have that tool as a destination. To use the same data in several tools, add each one as a destination on the data flow.
- Every AI tool destination replaces the data on each run; append mode is not supported.
How to install
Works in Claude web, Claude desktop, Claude mobile, Cowork, Claude Code.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Claude as the destination in the data flow's destination step.
- Give the data flow a clear name, because Claude refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Claude web, desktop, and Cowork
- Install the Coupler.io connector from Claude's connector directory and click Connect.
- In the Connectors menu, click Connect again and sign in to Coupler.io.
- Open a new chat. Claude asks permission to use the Coupler.io tools the first time; allow them.
In Claude Code
- Start a new Claude Code session.
- Paste the connection command shown in the Claude destination step of your data flow.
- Restart the session.
- Run
/mcp, select Coupler.io, and click Authorize in the browser window that opens.
Check it worked
Ask Claude to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count Claude reports with the run in Coupler.io, because the preview alone does not confirm what Claude received.
Good to know
- On individual Claude Free and Pro plans the official connector may connect but fail to load its tools. The documented workaround is a custom connector: in Coupler.io, open AI integrations, click Custom connector, and copy the URL. Remove the official connector in Claude, then go to Connectors, Add, Add custom connector, give it a name with plain letters and spaces only (for example Coupler Custom), paste the URL, and connect.
- Local use with Claude desktop is also available through a Desktop Extension.
Coupler.io guide for ClaudeCoupler.io in the Claude connectors directory
Connects through the Coupler.io ChatGPT app.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose ChatGPT as the destination in the data flow's destination step.
- Give the data flow a clear name, because ChatGPT refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In ChatGPT
- Open the Coupler.io app in ChatGPT, from the link in your Coupler.io account or the apps section of ChatGPT settings.
- Install the app and authorize it with your Coupler.io account.
- Start a new chat to pick up fresh data after a run, or ask ChatGPT to fetch it again in an ongoing conversation.
Check it worked
Ask ChatGPT to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count ChatGPT reports with the run in Coupler.io, because the preview alone does not confirm what ChatGPT received.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Gemini CLI as the destination in the data flow's destination step.
- Give the data flow a clear name, because Gemini CLI refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Gemini CLI
- In the Gemini CLI destination step, generate the command that adds the Coupler.io MCP server, then run it in your terminal. It looks like
gemini mcp add coupler --transport=http --scope=user https://mcp.coupler.io/mcp/.... - Start Gemini CLI and run
/mcp auth couplerto sign in to Coupler.io.
Check it worked
Ask Gemini CLI to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count Gemini CLI reports with the run in Coupler.io, because the preview alone does not confirm what Gemini CLI received.
Added as a custom MCP data store with OAuth credentials from Coupler.io.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Gemini Enterprise as the destination in the data flow's destination step.
- Give the data flow a clear name, because Gemini Enterprise refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Gemini Enterprise
- In the Gemini Enterprise destination step, create OAuth credentials and copy the Client ID and Client Secret. The secret is shown only once; if you lose it, regenerate it.
- In Gemini Enterprise, go to Data stores, Create data store, and choose Custom MCP server.
- Paste the MCP Server URL, Authorization URL, Token URL, and the scope
mcpfrom the destination step, together with the Client ID and Client Secret.
Check it worked
Ask Gemini Enterprise to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count Gemini Enterprise reports with the run in Coupler.io, because the preview alone does not confirm what Gemini Enterprise received.
Coupler.io guide for Gemini EnterpriseGoogle Cloud documentation
Added to a Copilot Studio agent as an MCP tool.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Microsoft Copilot Studio as the destination in the data flow's destination step.
- Give the data flow a clear name, because your Copilot Studio agent refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Microsoft Copilot Studio
- Open your agent in Copilot Studio and confirm generative orchestration is on.
- Go to Tools, Add a tool, New tool, Model Context Protocol, and paste the Coupler.io MCP server URL shown in the destination step.
- For authentication, choose OAuth 2.0 and Dynamic discovery, then click Create. No client ID or secret is needed.
- The first time someone uses the tool, they see a consent card in chat and sign in to Coupler.io once.
Check it worked
Ask your Copilot Studio agent to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count your Copilot Studio agent reports with the run in Coupler.io, because the preview alone does not confirm what your Copilot Studio agent received.
Coupler.io guide for Microsoft Copilot StudioMicrosoft documentation
Perplexity currently uses the local Coupler.io MCP server, which runs in Docker.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Perplexity as the destination in the data flow's destination step.
- Give the data flow a clear name, because Perplexity refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Perplexity
- In Perplexity, go to Settings, Connectors, click Add new connector, and choose the simpler settings.
- Name the connection coupler-io and enter the command
docker run --pull=always -e COUPLER_ACCESS_TOKEN --rm -i ghcr.io/railsware/coupler-io-mcp-server. - Add an environment variable called
COUPLER_ACCESS_TOKEN, then generate a Coupler.io personal access token and paste it as the value. - Save the configuration and accept the security warning about Docker.
Check it worked
Ask Perplexity to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count Perplexity reports with the run in Coupler.io, because the preview alone does not confirm what Perplexity received.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Cursor as the destination in the data flow's destination step.
- Give the data flow a clear name, because Cursor refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Cursor
- Open the Coupler.io entry in Cursor's MCP directory and click Add to Cursor.
- In Cursor, find the new Coupler.io integration, click Needs authentication, then sign in with your Coupler.io account and grant access.
- Open the AI pane and ask about your dataset.
Check it worked
Ask Cursor to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count Cursor reports with the run in Coupler.io, because the preview alone does not confirm what Cursor received.
Coupler.io guide for CursorCoupler.io in the Cursor MCP directory
Connects to the Coupler.io MCP server through mcporter.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose OpenClaw as the destination in the data flow's destination step.
- Give the data flow a clear name, because OpenClaw refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In OpenClaw
- Install the coupler-io skill from ClawHub. It holds the commands that connect the Coupler.io MCP server to OpenClaw with mcporter.
Check it worked
Ask OpenClaw to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count OpenClaw reports with the run in Coupler.io, because the preview alone does not confirm what OpenClaw received.
Connects any MCP-compatible client with a personal access token.
In Coupler.io
- In Coupler.io, create a data flow and add QuickBooks as the source, choosing either an entity or a pre-built report.
- Choose Custom MCP as the destination in the data flow's destination step.
- Give the data flow a clear name, because your MCP client refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In your MCP client
- In the Custom MCP destination step, click Generate token and copy it together with the MCP server URL.
- Add the token and URL to your MCP client's JSON config, following the example config shown there.
Check it worked
Ask your MCP client to list the datasets it can see; the QuickBooks data flow should appear under the name you gave it. Then compare the row count your MCP client reports with the run in Coupler.io, because the preview alone does not confirm what your MCP client received.
Good to know
- Treat the personal access token as a secret and do not share it.
- Behind a corporate firewall, allow outbound connections to the Coupler.io MCP endpoint.
What Coupler.io gives you from QuickBooks Online
- Entities: Invoice, Customer, Bill, Payment, Vendor, Employee, Estimate, Purchase, PurchaseOrder, SalesReceipt, CreditMemo, Deposit, Transfer, JournalEntry, Account, Item, Budget, TimeActivity
- Further entities: Attachable, BillPayment, Class, CompanyInfo, Department, ExchangeRate, JournalCode, PaymentMethod, Preferences, RefundReceipt, TaxAgency, TaxCode, TaxRate, Term, VendorCredit
- Summary reports: Profit and Loss Summary, Balance Sheet, Cash Flow, Trial Balance, Expenses by Vendor, Sales by Customer, Sales by Product, Sales by Class Summary, Sales by Department, Tax Summary, Inventory Valuation Summary
- Detail reports: Profit and Loss Detail, General Ledger Detail, Transaction List, Transaction List by Customer, Transaction List by Vendor, Transaction List with Splits, Journal Report
- Aging and balance reports: AP Aging Detail and Summary, AR Aging Detail and Summary, Customer Balance and Detail, Vendor Balance and Detail, Customer Income, Account List Detail
What you can do
- Ask questions about imported QuickBooks entities and pre-built reports, such as invoices, bills, customers, profit and loss, balance sheet, and A/R and A/P aging.
- Keep the data current with a refresh schedule once a first manual run has succeeded.
- Combine QuickBooks with other sources in one data flow, using Join or Append, before Claude sees the result.
- Run SQL against a dataset on Coupler.io's side, so a large dataset does not have to fit into Claude's context.
An example question you can ask
Which vendors did we spend the most with last quarter, and how does that compare with the quarter before?
How the data reaches the AI tool
Coupler.io reads the QuickBooks Online API, stores the result as a dataset, and serves it to Claude over its MCP server. Queries run on Coupler.io's side, so a large dataset does not have to fit into the model's context. Claude sees only datasets from data flows that have Claude as their destination.
- Historical data
Not documented (no retention or backfill window is stated; the documented constraint is the size of a single report rather than how far back it can reach)
- Refresh
- A successful manual run is required before a schedule can be set
- Scheduled refresh is described as hourly, daily, or a custom interval
- The platform supports intervals from every 15 minutes to monthly, depending on plan
- Combining several sources
- One data flow can take several sources and combine them with Join or Append before the data reaches Claude
- Within Claude, a SQL dataset can be built from datasets in the same data flow, because one query reads one dataset
- Prerequisites
- A QuickBooks Online account on Simple Start, Essentials, Plus, or Advanced
- Admin or Accountant access to the company file
- Classes, Locations, and Budgets require the Plus or Advanced tier
- A Coupler.io account
Limits to expect
- The QuickBooks Reports API truncates any report above 400,000 cells (rows times columns); this is Intuit's limit and cannot be raised
- QuickBooks Desktop, including Desktop Enterprise and Desktop Pro, is not supported
- The QuickBooks query language supports AND but not OR, and reports can be grouped by only one dimension at a time
- Custom reports built in the QuickBooks interface are not available through the API
- Entity exports return only active records by default
- Row counts in Claude can differ from the Coupler.io preview when an identifier repeats, so the count should be checked in Claude
Related skills
Section titled “Related skills”A skill gives the AI tool instructions for a task. It connects no data, so connect QuickBooks Online first.
Finance analytics
- How is revenue trending
- Gross margin
View skill
Related connectors
Section titled “Related connectors”No related connectors listed yet. Browse all connectors.
Questions
Section titled “Questions”Does this work with QuickBooks Desktop?
No. Coupler.io connects to the QuickBooks Online API only, and the documentation states that Desktop, including Desktop Enterprise and Desktop Pro, is not supported. Moving to QuickBooks Online would be a prerequisite.
Can Claude create or send an invoice, or only read my books?
Only read them. Coupler.io is read-only against QuickBooks: Claude queries an imported dataset, and nothing in its documentation describes writing back to your books.
Which Claude apps can read the data once it is connected?
Coupler.io's documentation names Claude web, Claude desktop, mobile, Cowork, and Claude Code, and says a single web connector covers them; Claude Code is connected with the /mcp command instead. The connector only needs to be installed once.
Can Claude change my accounting data?
Queries against the imported data are documented as read-only, so the model cannot edit, delete, or overwrite imported rows. The same connection does expose tools that can change your Coupler.io workspace, such as creating a data flow or triggering a run, and the documentation says the model is instructed to confirm before making a change you did not ask for.
Why can my reports get cut off?
The QuickBooks Reports API truncates a report once it exceeds 400,000 cells, counting rows times columns. This is Intuit's limit, and the documentation says there is no way to raise it, so a long date range on a wide report has to be split up.
The connector shows as connected but Claude cannot see my data. Why?
On individual Claude Free and Pro plans there is a documented defect where the official connector connects but its tools never load, so Claude cannot query the datasets. Coupler.io documents a custom connector URL as a workaround and reports that it works on all plans.
Sources and corrections
Section titled “Sources and corrections”Researched on 2026-10-04. One route is covered, researched on 4 October 2026: the Coupler.io data platform. Its documentation was read in full, covering the data available, prerequisites, access, and limits.
Something here wrong or out of date? Open a correction issue and it will be re-checked against the source.