qbo-mcp

qbo-mcp

An MCP server for QuickBooks Online that enables managing customers, vendors, invoices, bills, payments, items, and more, along with financial reports, directly from Claude.

Category
Visit Server

README

qbo-mcp

A Model Context Protocol (MCP) server for the QuickBooks Online Accounting API. Manage customers, vendors, invoices, bills, payments, items, reports, and more — all from Claude.

Supports both stdio (Claude Desktop) and HTTP/SSE (Railway / remote clients).


Tools (48 total)

Category Tool Description
Accounts list_accounts Query chart of accounts with optional WHERE filter
get_account Get account by ID
create_account Create a new account
update_account Sparse-update an account
Customers list_customers Query customers
get_customer Get customer by ID
create_customer Create a new customer
update_customer Sparse-update a customer
Vendors list_vendors Query vendors
get_vendor Get vendor by ID
create_vendor Create a new vendor
update_vendor Sparse-update a vendor
Items list_items Query products/services
get_item Get item by ID
create_item Create a new item
update_item Sparse-update an item
Invoices list_invoices Query invoices
get_invoice Get invoice by ID
create_invoice Create a new invoice
update_invoice Sparse-update an invoice
delete_invoice Delete/void an invoice
Bills list_bills Query vendor bills
get_bill Get bill by ID
create_bill Create a new bill
update_bill Sparse-update a bill
delete_bill Delete a bill
Payments list_payments Query customer payments
get_payment Get payment by ID
create_payment Record a customer payment
delete_payment Delete a payment
Purchases list_purchases Query purchases/expenses
get_purchase Get purchase by ID
create_purchase Create a purchase/expense
delete_purchase Delete a purchase
Estimates list_estimates Query estimates/quotes
get_estimate Get estimate by ID
create_estimate Create a new estimate
delete_estimate Delete an estimate
Sales Receipts list_sales_receipts Query sales receipts
get_sales_receipt Get sales receipt by ID
create_sales_receipt Create a new sales receipt
delete_sales_receipt Delete a sales receipt
Credit Memos list_credit_memos Query credit memos
get_credit_memo Get credit memo by ID
create_credit_memo Create a new credit memo
Transfers list_transfers Query account transfers
get_transfer Get transfer by ID
create_transfer Create a funds transfer
Company get_company_info Get company details
Reports get_profit_and_loss_report P&L / Income Statement
get_balance_sheet_report Balance Sheet
get_cash_flow_report Cash Flow Statement
get_accounts_receivable_aging_report A/R Aging Summary
get_accounts_payable_aging_report A/P Aging Summary
get_trial_balance_report Trial Balance
Query query_qbo Run a custom SQL-style QBO query

Environment Variables

Variable Required Description
QBO_REALM_ID Yes Company/Realm ID from your QBO URL
QBO_CLIENT_ID For refresh OAuth 2.0 Client ID from Intuit Developer Portal
QBO_CLIENT_SECRET For refresh OAuth 2.0 Client Secret
QBO_ACCESS_TOKEN Yes* OAuth 2.0 access token (expires every 60 min)
QBO_REFRESH_TOKEN Yes* OAuth 2.0 refresh token (used for auto-renewal)
QBO_ENVIRONMENT No sandbox (default) or production
TRANSPORT No http (default) or stdio
PORT No HTTP port (default 3000)

*Either QBO_ACCESS_TOKEN or QBO_REFRESH_TOKEN is required. For production, provide the refresh token plus client credentials for automatic token renewal.

Getting credentials

  1. Go to developer.intuit.com and create an app
  2. Under Keys & credentials, copy your Client ID and Client Secret
  3. Use the OAuth 2.0 Playground in the dev portal to generate an Access Token and Refresh Token
  4. Your Realm ID is in the QBO URL: qbo.intuit.com/app/homepage?...realmId=XXXXXXXXXX

Claude Desktop Configuration

Remote (Railway)

{
  "mcpServers": {
    "quickbooks": {
      "url": "https://your-app.up.railway.app/sse"
    }
  }
}

Local (stdio)

{
  "mcpServers": {
    "quickbooks": {
      "command": "node",
      "args": ["/absolute/path/to/qbo-mcp/dist/index.js"],
      "env": {
        "TRANSPORT": "stdio",
        "QBO_REALM_ID": "your-realm-id",
        "QBO_ACCESS_TOKEN": "your-access-token",
        "QBO_REFRESH_TOKEN": "your-refresh-token",
        "QBO_CLIENT_ID": "your-client-id",
        "QBO_CLIENT_SECRET": "your-client-secret",
        "QBO_ENVIRONMENT": "sandbox"
      }
    }
  }
}

Deploy to Railway

Option A — GitHub deployer (recommended)

  1. Push this repo to GitHub
  2. In Railway: New Project → Deploy from GitHub repo → select this repo
  3. Railway auto-detects the Dockerfile and railway.toml
  4. Go to Variables and set:
    • QBO_REALM_ID
    • QBO_ACCESS_TOKEN
    • QBO_REFRESH_TOKEN
    • QBO_CLIENT_ID
    • QBO_CLIENT_SECRET
    • QBO_ENVIRONMENTproduction (when ready)
  5. Go to Settings → Networking → Generate Domain
  6. Connect Claude to https://your-app.up.railway.app/sse

Option B — Railway CLI

railway login
railway init
railway up
railway domain

Local Development

npm install
cp .env.example .env   # fill in your credentials
npm run build
node dist/index.js

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured