Set up the QuickBooks MCP server
The MintMCP QuickBooks MCP server gives AI agents access to QuickBooks Online accounting data, including invoices, customers, vendors, accounts, and transactions. This guide covers creating an Intuit developer app, completing the production key questionnaire, and connecting it to MintMCP.
Prerequisites
- A MintMCP admin account
- An Intuit Developer account — sign up at developer.intuit.com
- A QuickBooks Online account (to retrieve your Realm ID)
Create a QuickBooks app
- Go to developer.intuit.com/app/developer/homepage.
- Click Add a workspace if you don't have one yet, and create one.
- Click Add an App.
- Enter the app name:
MintMCP. - Under Select your scopes, check
com.intuit.quickbooks.accounting. - Click Create app (or Next), then click Open app on the confirmation screen.
Fill out the app details
-
In your app dashboard, click Get production keys to begin the production key setup flow.
-
Under Add your app's end-user license agreement and privacy policy, enter:
Field Value End-user license agreement URL https://www.mintmcp.com/termsPrivacy policy URL https://www.mintmcp.com/privacy -
Under Add your app's host domain, launch URL, disconnect URL, and connect/reconnect URL, enter:
Field Value Host domain app.mintmcp.comLaunch URL https://app.mintmcp.comDisconnect URL https://app.mintmcp.comConnect/Reconnect URL https://app.mintmcp.com -
Under Category for App, select Accounting.
-
Under Country, select USA.
Fill out the compliance document
- Under Regulated industry, select None of the above.
- Click Save.
Complete the questionnaire
Intuit requires a questionnaire to approve production key access. Use the answers below.
Section 1 — Compliance
| Question | Answer |
|---|---|
| Has your company ever received complaints, lawsuits, or investigative requests from regulatory authorities? | No |
| Have you worked with legal counsel to understand regulatory requirements? | No |
| Have you reviewed and confirmed compliance with Intuit's security requirements? | Yes |
| Is your app designed to enhance the QuickBooks experience or facilitate a business process? | Yes |
| Are you or your representatives subject to sanctions or restrictions? | No |
| Does your application involve generative AI functionality? | Yes |
Section 2 — App details
| Question | Answer |
|---|---|
| Which of the following is true about your app? | You built your app from scratch and wrote the code that lets it interact with Intuit APIs |
| What platform(s) does your app utilize? | Web SaaS |
| How does your app interact with Intuit product data? | It reads data from Intuit products |
| Are you building a private app or a public one? | We're building a private app |
| Which types of QuickBooks Online users can use your app? | Any user of the QuickBooks Online company |
| Does your app integrate with platforms other than Intuit? | Yes |
Section 3 — OAuth and authentication
| Question | Answer |
|---|---|
| Have you tested connecting, disconnecting, and reconnecting your app? | Yes |
| How often does your app refresh access tokens? | Only when access_token expires |
| Does your app retry failed auth requests? | Yes |
| If your app encounters an auth error, do you ask customers to reconnect? | Yes |
| Did you use the Intuit discovery document to get the latest OAuth endpoints? | Yes |
| Can your app handle errors due to expired access tokens? | Yes |
| Can your app handle errors due to expired refresh tokens? | Yes |
| Can your app handle invalid grant errors? | Yes |
| Can your app handle CSRF errors? | Yes |
| Does your app rely on the OAuth playground to get tokens? | Yes |
Section 4 — API usage
| Question | Answer |
|---|---|
| Which broad API categories does your app use? | Accounting API |
| How often does your app call APIs per customer? | Daily |
Section 5 — Error handling
| Question | Answer |
|---|---|
| Have you tested if your app can handle API errors, including syntax and validation errors? | Yes |
| Does your app capture the intuit_tid field from response headers? | No |
| Does your app store error information in logs for troubleshooting? | Yes |
| Do you provide a way for customers to contact you for support from within the app? | Yes |
Section 6 — Security
| Question | Answer |
|---|---|
| Has your company ever had a security breach requiring notification? | No |
| Do you have a security team that regularly assesses vulnerabilities? | Yes |
| Are the client ID and secret stored securely (not hardcoded or in browser logs)? | Yes |
| Does your app use multi-factor authentication? | Yes |
| Does your app use CAPTCHA for authentication? | No |
| Does your app use WebSocket? | No |
| Do you allow Intuit data to be used by or shown to anyone other than the customer? | No |
- Click Submit.
Get production keys
-
Wait approximately 2 minutes for Intuit to approve the questionnaire submission.
-
Go to your app dashboard and click Get production keys.
-
In your app settings, go to Settings > Redirect URIs and add:
https://app.mintmcp.com/oauth/callback -
Go back to Keys & OAuth (or Keys and Credentials) and click Show credentials.
-
Copy the Client ID and Client Secret — you'll need both in the next step.
Get your Realm ID
The Realm ID is your QuickBooks Online company ID. Each company you connect to MintMCP needs its own Realm ID.
- Sign in to QuickBooks Online.
- Click the Settings gear icon in the top-right corner.
- Under Your Company, click Account and settings (or Additional info in some versions).
- Your Company ID is shown in the company information section — this is your Realm ID.
Add QuickBooks to MintMCP
- Go to app.mintmcp.com/vmcps?tab=manage-store.
- Scroll to find QuickBooks in the list and click to install it.
- When prompted, enter:
- Client ID: paste the Client ID from your Intuit app's Keys & OAuth page
- Client Secret: paste the Client Secret from your Intuit app's Keys & OAuth page
- Realm ID: paste your QuickBooks Online Company ID
- Click Save (or Install).
Security considerations
- The Client Secret grants access to your QuickBooks data — store it securely and do not share it.
- The Realm ID identifies a specific QuickBooks Online company; only users within that company can access its data through the server.
- Revoking the Intuit app or rotating credentials immediately disconnects the MintMCP QuickBooks server for all users.
- QuickBooks access tokens expire and are refreshed automatically; no manual token management is required.
Next steps
- Tool customization — Control which QuickBooks tools are exposed to users
- MCP gateway administration — Manage access and permissions