This is a Model Context Protocol (MCP) server implementation for QuickBooks Online integration.
- Install dependencies:
 
npm install- Create a 
.envfile in the root directory with the following variables: 
QUICKBOOKS_CLIENT_ID=your_client_id
QUICKBOOKS_CLIENT_SECRET=your_client_secret
QUICKBOOKS_ENVIRONMENT=sandbox- Get your Client ID and Client Secret:
- Go to the Intuit Developer Portal
 - Create a new app or select an existing one
 - Get the Client ID and Client Secret from the app's keys section
 - Add 
http://localhost:8000/callbackto the app's Redirect URIs 
 
There are two ways to authenticate with QuickBooks Online:
If you already have a refresh token and realm ID, you can add them directly to your .env file:
QUICKBOOKS_REFRESH_TOKEN=your_refresh_token
QUICKBOOKS_REALM_ID=your_realm_idIf you don't have a refresh token, you can use the built-in OAuth flow:
This will:
- Start a temporary local server
 - Open your default browser automatically
 - Redirect you to QuickBooks for authentication
 - Save the tokens to your 
.envfile once authenticated - Close automatically when complete
 
After authentication is set up, you can use the MCP server to interact with QuickBooks Online. The server provides various tools for managing customers, estimates, bills, and more.
Added tools for Create, Delete, Get, Search, Update for the following entities:
- Account
 - Bill Payment
 - Bill
 - Customer
 - Employee
 - Estimate
 - Invoice
 - Item
 - Journal Entry
 - Purchase
 - Vendor
 
If you see an error message like "QuickBooks not connected", make sure to:
- Check that your 
.envfile contains all required variables - Verify that your tokens are valid and not expired