Enables management of QuickBooks Online data including customers, invoices, bills, vendors, accounts, and financial reports like Profit & Loss statements through natural language queries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@QuickBooks Online MCP Servershow me all unpaid invoices from last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
QuickBooks Online MCP Server
A Model Context Protocol (MCP) server for QuickBooks Online integration, enabling AI assistants like Claude to query and manage QuickBooks data through natural language.
Features
Customers: List, search, and view customer details
Invoices: Create and list invoices with filtering
Bills: Track vendor bills and payables
Vendors: Manage supplier information
Accounts: View chart of accounts
Reports: Generate Profit & Loss reports
Prerequisites
Node.js 18+
QuickBooks Online account
Intuit Developer account with OAuth app
Quick Start
1. Clone the repository
2. Install dependencies
3. Configure environment
Edit .env with your QuickBooks credentials:
4. Build and run
Getting QuickBooks Credentials
Step 1: Create Developer Account
Go to developer.intuit.com
Sign in or create account
Create a new app (select QuickBooks Online API)
Step 2: Get Client Credentials
In your app dashboard, find Client ID and Client Secret
Add OAuth redirect URI:
http://localhost:3000/callback
Step 3: Get Refresh Token
Use the OAuth Playground in Intuit Developer portal
Or use a tool like qbo-oauth-tool
Complete OAuth flow to get refresh token
Step 4: Find Company ID (Realm ID)
Log into QuickBooks Online
Company ID is in the URL:
https://qbo.intuit.com/app/...?realmId=COMPANY_ID
Claude Desktop Configuration
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):
Available Tools
Tool | Description |
| List customers with optional filtering |
| List invoices by customer, status, or date |
| Create a new invoice |
| View chart of accounts |
| Generate P&L report |
| List vendor/suppliers |
| List bills/payables |
Example Usage
Once connected to Claude:
HTTP Transport
To run as HTTP server instead of stdio:
Railway Deployment
Deploy to Railway with one click or via CLI:
Option 1: Railway Dashboard
Fork this repository
Go to Railway and create a new project
Select "Deploy from GitHub repo"
Add environment variables in Railway dashboard:
QUICKBOOKS_CLIENT_IDQUICKBOOKS_CLIENT_SECRETQUICKBOOKS_REFRESH_TOKENQUICKBOOKS_COMPANY_IDQUICKBOOKS_ENVIRONMENT=production
Railway will auto-deploy using the included Dockerfile
Option 2: Railway CLI
MCP Endpoint
Once deployed, your MCP endpoint will be:
Health check available at:
Docker Deployment (Local)
License
MIT
Author
Hakeem Rabiu - Martinez Cleaning LLC