Skip to main content
Glama
hakeemrabiuDFW

QuickBooks Online MCP Server

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

git clone https://github.com/hakeemrabiuDFW/quickbooks-mcp-server.git
cd quickbooks-mcp-server

2. Install dependencies

npm install

3. Configure environment

cp .env.example .env

Edit .env with your QuickBooks credentials:

QUICKBOOKS_CLIENT_ID=your_client_id
QUICKBOOKS_CLIENT_SECRET=your_client_secret
QUICKBOOKS_REFRESH_TOKEN=your_refresh_token
QUICKBOOKS_COMPANY_ID=your_company_id
QUICKBOOKS_ENVIRONMENT=production

4. Build and run

npm run build
npm start

Getting QuickBooks Credentials

Step 1: Create Developer Account

  1. Go to developer.intuit.com

  2. Sign in or create account

  3. Create a new app (select QuickBooks Online API)

Step 2: Get Client Credentials

  1. In your app dashboard, find Client ID and Client Secret

  2. Add OAuth redirect URI: http://localhost:3000/callback

Step 3: Get Refresh Token

  1. Use the OAuth Playground in Intuit Developer portal

  2. Or use a tool like qbo-oauth-tool

  3. Complete OAuth flow to get refresh token

Step 4: Find Company ID (Realm ID)

  1. Log into QuickBooks Online

  2. 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):

{
  "mcpServers": {
    "quickbooks": {
      "command": "node",
      "args": ["/path/to/quickbooks-mcp-server/dist/index.js"],
      "env": {
        "QUICKBOOKS_CLIENT_ID": "your_client_id",
        "QUICKBOOKS_CLIENT_SECRET": "your_client_secret",
        "QUICKBOOKS_REFRESH_TOKEN": "your_refresh_token",
        "QUICKBOOKS_COMPANY_ID": "your_company_id",
        "QUICKBOOKS_ENVIRONMENT": "production"
      }
    }
  }
}

Available Tools

Tool

Description

qbo_list_customers

List customers with optional filtering

qbo_list_invoices

List invoices by customer, status, or date

qbo_create_invoice

Create a new invoice

qbo_list_accounts

View chart of accounts

qbo_profit_loss_report

Generate P&L report

qbo_list_vendors

List vendor/suppliers

qbo_list_bills

List bills/payables

Example Usage

Once connected to Claude:

"Show me all open invoices"
"Create an invoice for customer ID 123 with a $500 cleaning service charge"
"Get the profit and loss report for Q4 2025"
"List all unpaid bills"

HTTP Transport

To run as HTTP server instead of stdio:

TRANSPORT=http PORT=3000 npm start

Railway Deployment

Deploy to Railway with one click or via CLI:

Option 1: Railway Dashboard

  1. Fork this repository

  2. Go to Railway and create a new project

  3. Select "Deploy from GitHub repo"

  4. Add environment variables in Railway dashboard:

    • QUICKBOOKS_CLIENT_ID

    • QUICKBOOKS_CLIENT_SECRET

    • QUICKBOOKS_REFRESH_TOKEN

    • QUICKBOOKS_COMPANY_ID

    • QUICKBOOKS_ENVIRONMENT=production

  5. Railway will auto-deploy using the included Dockerfile

Option 2: Railway CLI

# Install Railway CLI
npm install -g @railway/cli

# Login and deploy
railway login
railway init
railway up

MCP Endpoint

Once deployed, your MCP endpoint will be:

https://your-app.railway.app/mcp

Health check available at:

https://your-app.railway.app/health

Docker Deployment (Local)

docker build -t quickbooks-mcp .
docker run -p 3000:3000 --env-file .env quickbooks-mcp

License

MIT

Author

Hakeem Rabiu - Martinez Cleaning LLC

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hakeemrabiuDFW/Quickbooks-MCP-Martinez'

If you have feedback or need assistance with the MCP directory API, please join our Discord server