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
- Sign in to AI Gateway and select MCP Servers from the left navigation.
- Select New MCP Server.
- Search for the application you want to connect, then select it from the catalog.
Configure the server
- Enter a Name for your server — something descriptive that identifies both the application and its purpose.
- Enter a Description so your team knows what the server is for.
- Set the Timeout value. 30 seconds works for most APIs; increase to 60 seconds for APIs that return large payloads.
- Toggle Production mode on if this server will be used in a live workflow.
- 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
- Set any Rate limits appropriate for your use case and the API's own limits.
- Enable Logging if you want AI Gateway to record requests and responses for auditing.
- 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.
| Value | Setting |
|---|---|
| Auth endpoint | https://appcenter.intuit.com/connect/oauth2 |
| Token endpoint | https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer |
| Scopes | com.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
| Tool | Description |
|---|---|
| Query entities | Retrieve entities using a SQL-like query syntax across any entity type |
| Change data capture | Get all entities of specified types changed since a given timestamp for incremental sync |
| Batch operation | Execute up to 30 create, update, delete, or query operations in a single request |
Customers and Contacts
| Tool | Description |
|---|---|
| Create or update customer | Create a new customer or update an existing customer record |
| Read customer | Retrieve customer details by ID |
| Create or update vendor | Create a new vendor or update an existing vendor record |
| Read vendor | Retrieve vendor details by ID |
| Create or update employee | Create a new employee or update an existing employee record |
| Read employee | Retrieve employee details by ID |
Invoicing and Sales
| Tool | Description |
|---|---|
| Create or update invoice | Create a new invoice or update an existing invoice |
| Read invoice | Retrieve invoice details by ID |
| Delete invoice | Void an invoice |
| Send invoice | Send an invoice to the customer via email |
| Get invoice PDF | Download an invoice as a PDF document |
| Create or update estimate | Create a new estimate or update an existing estimate |
| Read estimate | Retrieve estimate details by ID |
| Send estimate | Send an estimate to the customer via email |
| Get estimate PDF | Download an estimate as a PDF document |
| Create or update credit memo | Create a new credit memo or update an existing one |
| Read credit memo | Retrieve credit memo details by ID |
| Delete credit memo | Delete a credit memo |
| Create or update sales receipt | Create a new sales receipt or update an existing one |
| Read sales receipt | Retrieve sales receipt details by ID |
| Delete sales receipt | Delete a sales receipt |
| Send sales receipt | Send a sales receipt to the customer via email |
| Get sales receipt PDF | Download a sales receipt as a PDF document |
| Create or update refund receipt | Create a new refund receipt or update an existing one |
| Read refund receipt | Retrieve refund receipt details by ID |
| Delete refund receipt | Delete a refund receipt |
| Create or update payment | Record a customer payment against open invoices |
| Read payment | Retrieve payment details by ID |
| Delete payment | Void a customer payment |
Bills and Expenses
| Tool | Description |
|---|---|
| Create or update bill | Record a new vendor bill or update an existing one |
| Read bill | Retrieve bill details by ID |
| Delete bill | Delete a bill |
| Create or update bill payment | Record a payment against a vendor bill |
| Read bill payment | Retrieve bill payment details by ID |
| Delete bill payment | Delete a bill payment |
| Create or update purchase | Record a purchase transaction (check, cash, or credit card) |
| Read purchase | Retrieve purchase details by ID |
| Delete purchase | Delete a purchase |
| Create or update purchase order | Create a new purchase order or update an existing one |
| Read purchase order | Retrieve purchase order details by ID |
| Delete purchase order | Delete a purchase order |
| Create or update vendor credit | Record a credit from a vendor |
| Read vendor credit | Retrieve vendor credit details by ID |
| Delete vendor credit | Delete a vendor credit |
Banking
| Tool | Description |
|---|---|
| Create or update account | Add or modify an entry in the chart of accounts |
| Read account | Retrieve account details by ID |
| Create or update deposit | Record a bank deposit |
| Read deposit | Retrieve deposit details by ID |
| Delete deposit | Delete a deposit |
| Create or update transfer | Record a transfer between bank accounts |
| Read transfer | Retrieve transfer details by ID |
| Delete transfer | Delete a transfer |
| Create or update journal entry | Post a manual journal entry to the general ledger |
| Read journal entry | Retrieve journal entry details by ID |
| Delete journal entry | Delete a journal entry |
Items and Inventory
| Tool | Description |
|---|---|
| Create or update item | Create or update a product or service item with pricing and inventory details |
| Read item | Retrieve item details by ID |
Organization
| Tool | Description |
|---|---|
| Create or update class | Create or update a class for transaction categorization |
| Read class | Retrieve class details by ID |
| Create or update department | Create or update a department or location |
| Read department | Retrieve department details by ID |
| Read company info | Retrieve company name, address, fiscal year, and configuration |
| Read preferences | Retrieve company-wide preferences and feature settings |
| Update preferences | Modify company-wide preferences |
Tax
| Tool | Description |
|---|---|
| Create tax agency | Register a new tax agency |
| Read tax agency | Retrieve tax agency details by ID |
| Read tax code | Retrieve a tax code and its associated rates |
| Read tax rate | Retrieve a specific tax rate by ID |
| Create tax service | Create a custom tax code with associated tax rates |
Time Tracking
| Tool | Description |
|---|---|
| Create or update time activity | Record or update billable or non-billable time for an employee or vendor |
| Read time activity | Retrieve time activity details by ID |
| Delete time activity | Delete a time activity record |
Attachments and Other Entities
| Tool | Description |
|---|---|
| Create or update term | Define or modify payment terms (e.g., Net 30) |
| Read term | Retrieve payment term details by ID |
| Create or update payment method | Create or update a payment method (e.g., credit card, check) |
| Read payment method | Retrieve payment method details by ID |
| Create or update company currency | Add or update a foreign currency for multi-currency transactions |
| Read company currency | Retrieve company currency details by ID |
| Read exchange rate | Get the current exchange rate for a specific currency |
| Read budget | Retrieve budget details by ID |
| Create or update attachable | Create or update file attachment metadata |
| Read attachable | Retrieve attachable metadata by ID |
| Delete attachable | Delete an attachable record |
| Upload attachment | Upload a file and attach it to a transaction or entity |
Reports
| Tool | Description |
|---|---|
| Balance Sheet | Generate a Balance Sheet report for a given date range |
| Profit and Loss | Generate a Profit & Loss (income statement) report |
| Cash Flow | Generate a Statement of Cash Flows report |
| Trial Balance | Generate a Trial Balance report |
| General Ledger | Generate a General Ledger detail report |
| Aged Payables | Generate an Aged Payables (accounts payable aging) report |
| Aged Receivables | Generate an Aged Receivables (accounts receivable aging) report |
| Customer Balance | Generate a Customer Balance Summary report |
| Vendor Balance | Generate a Vendor Balance Summary report |
| Transaction List | Generate 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.
Cequence AI Gateway