LABSCO SUMMARY
The connection is yours end to end — your app, your refresh token, no broker in between.
You supply the client ID, secret, refresh token and company ID, and QUICKBOOKS_ENV decides whether you are pointed at sandbox or production, which is worth setting deliberately the first time. Expect the tools to take 10-20 seconds to appear on first launch while it pulls the current QuickBooks API documentation.
What it is
A local-first MCP server for QuickBooks. It authenticates with your own QuickBooks app and answers questions about the company file from inside a chat client.
What you get
- Query accounts, bills and customers in natural language
- Filter by date — for example bills created after 2024-01-01
- Point at sandbox or production with QUICKBOOKS_ENV
- Tools rebuilt from the current QuickBooks API documentation at every launch
Requirements
Python 3.10 or higher, uv, and four QuickBooks credentials: QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN and QUICKBOOKS_COMPANY_ID. Your client runs main_quickbooks_mcp.py through uv from the project directory.
Setup effort
Build from source — git clone https://github.com/nikhilgy/quickbooks-mcp-server.git
USE CASES
01
Getting the numbers without opening QuickBooks
Ask for all accounts and read the balances in the conversation.
02
Pulling bills for a period
Ask for bills created after a date rather than building the report by hand.
03
Trying it against sandbox first
Set QUICKBOOKS_ENV to sandbox until you trust what it is doing.
BEFORE YOU INSTALL
What to know first
Requires
- QUICKBOOKS_CLIENT_ID in your environment
- QUICKBOOKS_CLIENT_SECRET in your environment
- QUICKBOOKS_REFRESH_TOKEN in your environment
- QUICKBOOKS_COMPANY_ID in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
TERMINAL
git clone https://github.com/nikhilgy/quickbooks-mcp-server.git
cd quickbooks-mcp-serverStep 1. Install uv:
TERMINAL
curl -LsSf https://astral.sh/uv/install.sh | shCopy the template and add your credentials to it
TERMINAL
cp env_template.txt .envMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"QuickBooks": {
"command": "uv",
"args": [
"--directory",
"<YOUR_ABSOLUTE_PATH_TO_QUICKBOOKS_MCP>",
"run",
"main_quickbooks_mcp.py"
]
}
}
}The configuration on this page does not set QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN and QUICKBOOKS_COMPANY_ID; the project's instructions put them in a .env file. Check which folder the server reads that file from before you rely on it.