Skip to main content

QuickBooks Online Accounting MCP server

QuickBooks Online is Intuit's cloud-based accounting platform for small and mid-size businesses, covering invoicing, expense tracking, payroll, tax preparation, and financial reporting. An AI agent with this MCP server can create and send invoices, record payments and expenses, manage customers and vendors, run financial reports like Profit & Loss and Balance Sheet, track inventory, and synchronize data incrementally—giving finance teams, bookkeepers, and business owners a conversational interface to their accounting data without navigating the QuickBooks UI.

Setting up an MCP server

This article covers the standard steps for creating an MCP server in AI Gateway and connecting it to an AI client. The steps are the same for every integration — application-specific details (API credentials, OAuth endpoints, and scopes) are covered in the individual application pages.

Before you begin

You'll need:

  • Access to AI Gateway with permission to create MCP servers
  • API credentials for the application you're connecting (see the relevant application page for what to collect)

Create an MCP server

Find the API in the catalog

  1. Sign in to AI Gateway and select MCP Servers from the left navigation.
  2. Select New MCP Server.
  3. Search for the application you want to connect, then select it from the catalog.

Configure the server

  1. Enter a Name for your server — something descriptive that identifies both the application and its purpose.
  2. Enter a Description so your team knows what the server is for.
  3. Set the Timeout value. 30 seconds works for most APIs; increase to 60 seconds for APIs that return large payloads.
  4. Toggle Production mode on if this server will be used in a live workflow.
  5. Select Next.

Configure authentication

Enter the authentication details for the application. This varies by service — see the Authentication section of the relevant application page for the specific credentials, OAuth URLs, and scopes to use.

Configure security

  1. Set any Rate limits appropriate for your use case and the API's own limits.
  2. Enable Logging if you want AI Gateway to record requests and responses for auditing.
  3. Select Next.

Deploy

Review the summary, then select Deploy. AI Gateway provisions the server and provides a server URL you'll use when configuring your AI client.


Connect to an AI client

Once your server is deployed, you'll need to add it to the AI client your team uses. Select your client for setup instructions:

Tips

  • You can create multiple MCP servers for the same application — for example, a read-only server for reporting agents and a read-write server for automation workflows.
  • If you're unsure which OAuth scopes to request, start with the minimum read-only set and add write scopes only when needed. Most application pages include scope recommendations.
  • You can edit a server's name, description, timeout, and security settings after deployment without redeploying.

Authentication

QuickBooks uses OAuth 2.0 Authorization Code flow. Register your application on the Intuit Developer Portal and obtain a Client ID and Client Secret. During the OAuth consent flow, the user selects a QuickBooks company; the resulting realmId (company ID) is required in every API call as a path parameter. All API requests should include the query parameter minorversion=75 to access the latest entity fields and behaviors.

ValueSetting
Auth endpointhttps://appcenter.intuit.com/connect/oauth2
Token endpointhttps://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
Scopescom.intuit.quickbooks.accounting

Available tools

The tools below cover the full QuickBooks Online Accounting API: querying and batch operations, customer and vendor management, invoicing and sales, bills and expenses, banking, inventory, organization settings, tax, time tracking, attachments, and financial reports.

Query and Batch

ToolDescription
Query entitiesRetrieve entities using a SQL-like query syntax across any entity type
Change data captureGet all entities of specified types changed since a given timestamp for incremental sync
Batch operationExecute up to 30 create, update, delete, or query operations in a single request

Customers and Contacts

ToolDescription
Create or update customerCreate a new customer or update an existing customer record
Read customerRetrieve customer details by ID
Create or update vendorCreate a new vendor or update an existing vendor record
Read vendorRetrieve vendor details by ID
Create or update employeeCreate a new employee or update an existing employee record
Read employeeRetrieve employee details by ID

Invoicing and Sales

ToolDescription
Create or update invoiceCreate a new invoice or update an existing invoice
Read invoiceRetrieve invoice details by ID
Delete invoiceVoid an invoice
Send invoiceSend an invoice to the customer via email
Get invoice PDFDownload an invoice as a PDF document
Create or update estimateCreate a new estimate or update an existing estimate
Read estimateRetrieve estimate details by ID
Send estimateSend an estimate to the customer via email
Get estimate PDFDownload an estimate as a PDF document
Create or update credit memoCreate a new credit memo or update an existing one
Read credit memoRetrieve credit memo details by ID
Delete credit memoDelete a credit memo
Create or update sales receiptCreate a new sales receipt or update an existing one
Read sales receiptRetrieve sales receipt details by ID
Delete sales receiptDelete a sales receipt
Send sales receiptSend a sales receipt to the customer via email
Get sales receipt PDFDownload a sales receipt as a PDF document
Create or update refund receiptCreate a new refund receipt or update an existing one
Read refund receiptRetrieve refund receipt details by ID
Delete refund receiptDelete a refund receipt
Create or update paymentRecord a customer payment against open invoices
Read paymentRetrieve payment details by ID
Delete paymentVoid a customer payment

Bills and Expenses

ToolDescription
Create or update billRecord a new vendor bill or update an existing one
Read billRetrieve bill details by ID
Delete billDelete a bill
Create or update bill paymentRecord a payment against a vendor bill
Read bill paymentRetrieve bill payment details by ID
Delete bill paymentDelete a bill payment
Create or update purchaseRecord a purchase transaction (check, cash, or credit card)
Read purchaseRetrieve purchase details by ID
Delete purchaseDelete a purchase
Create or update purchase orderCreate a new purchase order or update an existing one
Read purchase orderRetrieve purchase order details by ID
Delete purchase orderDelete a purchase order
Create or update vendor creditRecord a credit from a vendor
Read vendor creditRetrieve vendor credit details by ID
Delete vendor creditDelete a vendor credit

Banking

ToolDescription
Create or update accountAdd or modify an entry in the chart of accounts
Read accountRetrieve account details by ID
Create or update depositRecord a bank deposit
Read depositRetrieve deposit details by ID
Delete depositDelete a deposit
Create or update transferRecord a transfer between bank accounts
Read transferRetrieve transfer details by ID
Delete transferDelete a transfer
Create or update journal entryPost a manual journal entry to the general ledger
Read journal entryRetrieve journal entry details by ID
Delete journal entryDelete a journal entry

Items and Inventory

ToolDescription
Create or update itemCreate or update a product or service item with pricing and inventory details
Read itemRetrieve item details by ID

Organization

ToolDescription
Create or update classCreate or update a class for transaction categorization
Read classRetrieve class details by ID
Create or update departmentCreate or update a department or location
Read departmentRetrieve department details by ID
Read company infoRetrieve company name, address, fiscal year, and configuration
Read preferencesRetrieve company-wide preferences and feature settings
Update preferencesModify company-wide preferences

Tax

ToolDescription
Create tax agencyRegister a new tax agency
Read tax agencyRetrieve tax agency details by ID
Read tax codeRetrieve a tax code and its associated rates
Read tax rateRetrieve a specific tax rate by ID
Create tax serviceCreate a custom tax code with associated tax rates

Time Tracking

ToolDescription
Create or update time activityRecord or update billable or non-billable time for an employee or vendor
Read time activityRetrieve time activity details by ID
Delete time activityDelete a time activity record

Attachments and Other Entities

ToolDescription
Create or update termDefine or modify payment terms (e.g., Net 30)
Read termRetrieve payment term details by ID
Create or update payment methodCreate or update a payment method (e.g., credit card, check)
Read payment methodRetrieve payment method details by ID
Create or update company currencyAdd or update a foreign currency for multi-currency transactions
Read company currencyRetrieve company currency details by ID
Read exchange rateGet the current exchange rate for a specific currency
Read budgetRetrieve budget details by ID
Create or update attachableCreate or update file attachment metadata
Read attachableRetrieve attachable metadata by ID
Delete attachableDelete an attachable record
Upload attachmentUpload a file and attach it to a transaction or entity

Reports

ToolDescription
Balance SheetGenerate a Balance Sheet report for a given date range
Profit and LossGenerate a Profit & Loss (income statement) report
Cash FlowGenerate a Statement of Cash Flows report
Trial BalanceGenerate a Trial Balance report
General LedgerGenerate a General Ledger detail report
Aged PayablesGenerate an Aged Payables (accounts payable aging) report
Aged ReceivablesGenerate an Aged Receivables (accounts receivable aging) report
Customer BalanceGenerate a Customer Balance Summary report
Vendor BalanceGenerate a Vendor Balance Summary report
Transaction ListGenerate a Transaction List detail report

Tips

Use the query endpoint first — before reading entities by ID, use the SQL-like query syntax (e.g., SELECT * FROM Invoice WHERE CustomerRef = '123') to search and filter across any entity type. This is the fastest way to find records without knowing their IDs.

Reduce API calls with batch operations — the batch endpoint lets you send up to 30 create, update, delete, or query operations in a single request. Use this when processing bulk data to stay well within QuickBooks rate limits.

Sync incrementally with change data capture — instead of re-fetching all records, use the CDC endpoint with a timestamp to retrieve only entities that changed since your last sync. This is significantly more efficient for ongoing data synchronization.

Always check the SyncToken before updating — QuickBooks uses optimistic locking via the SyncToken field. Read the entity first to get its current SyncToken, then include it in your update request to avoid overwriting concurrent changes.

Set minorversion to 75 on every request — the minorversion query parameter controls which fields and behaviors are available. Version 75 is the latest and includes all current entity fields; omitting it defaults to an older version that may lack fields your workflow depends on.