qbo-mcp
Provides tools for managing QuickBooks Online entities such as customers, vendors, invoices, bills, payments, items, and generating reports like profit and loss, balance sheet, etc.
Click on "Deploy 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., "@qbo-mcpShow me the profit and loss report for 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.
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 |
| Query chart of accounts with optional WHERE filter |
| Get account by ID | |
| Create a new account | |
| Sparse-update an account | |
Customers |
| Query customers |
| Get customer by ID | |
| Create a new customer | |
| Sparse-update a customer | |
Vendors |
| Query vendors |
| Get vendor by ID | |
| Create a new vendor | |
| Sparse-update a vendor | |
Items |
| Query products/services |
| Get item by ID | |
| Create a new item | |
| Sparse-update an item | |
Invoices |
| Query invoices |
| Get invoice by ID | |
| Create a new invoice | |
| Sparse-update an invoice | |
| Delete/void an invoice | |
Bills |
| Query vendor bills |
| Get bill by ID | |
| Create a new bill | |
| Sparse-update a bill | |
| Delete a bill | |
Payments |
| Query customer payments |
| Get payment by ID | |
| Record a customer payment | |
| Delete a payment | |
Purchases |
| Query purchases/expenses |
| Get purchase by ID | |
| Create a purchase/expense | |
| Delete a purchase | |
Estimates |
| Query estimates/quotes |
| Get estimate by ID | |
| Create a new estimate | |
| Delete an estimate | |
Sales Receipts |
| Query sales receipts |
| Get sales receipt by ID | |
| Create a new sales receipt | |
| Delete a sales receipt | |
Credit Memos |
| Query credit memos |
| Get credit memo by ID | |
| Create a new credit memo | |
Transfers |
| Query account transfers |
| Get transfer by ID | |
| Create a funds transfer | |
Company |
| Get company details |
Reports |
| P&L / Income Statement |
| Balance Sheet | |
| Cash Flow Statement | |
| A/R Aging Summary | |
| A/P Aging Summary | |
| Trial Balance | |
Query |
| Run a custom SQL-style QBO query |
Related MCP server: qbo-mcp
Environment Variables
Variable | Required | Description |
| Yes | Company/Realm ID from your QBO URL |
| For refresh | OAuth 2.0 Client ID from Intuit Developer Portal |
| For refresh | OAuth 2.0 Client Secret |
| Yes* | OAuth 2.0 access token (expires every 60 min) |
| Yes* | OAuth 2.0 refresh token (used for auto-renewal) |
| No |
|
| No |
|
| No | HTTP port (default |
*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
Go to developer.intuit.com and create an app
Under Keys & credentials, copy your
Client IDandClient SecretUse the OAuth 2.0 Playground in the dev portal to generate an
Access TokenandRefresh TokenYour
Realm IDis 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)
Push this repo to GitHub
In Railway: New Project → Deploy from GitHub repo → select this repo
Railway auto-detects the Dockerfile and
railway.tomlGo to Variables and set:
QBO_REALM_IDQBO_ACCESS_TOKENQBO_REFRESH_TOKENQBO_CLIENT_IDQBO_CLIENT_SECRETQBO_ENVIRONMENT→production(when ready)
Go to Settings → Networking → Generate Domain
Connect Claude to
https://your-app.up.railway.app/sse
Option B — Railway CLI
railway login
railway init
railway up
railway domainLocal Development
npm install
cp .env.example .env # fill in your credentials
npm run build
node dist/index.jsThis server cannot be deployed
Maintenance
Related MCP Connectors
QuickBooks Online in Claude and ChatGPT: 221 tools, full ledger, multi-company, Canada + US, FR/EN.
QuickBooks MCP Pack — query customers, invoices, and accounts via QuickBooks Online API.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA secure, local-first MCP server that enables users to query QuickBooks data such as accounts, bills, and customers using natural language within Claude Desktop. It provides a direct interface to the QuickBooks API for streamlined financial data retrieval and management.10-
- AlicenseAqualityDmaintenanceMCP server for QuickBooks Online providing read-only access to customers, vendors, invoices, bills, and chart of accounts. Enables natural language queries to your financial data through Claude or any MCP client.8MIT
- AlicenseNot gradedqualityAmaintenanceA local MCP server that exposes QuickBooks Online data and actions as callable tools for AI assistants, supporting entities like customers, invoices, bills, and financial reports.4MIT
- AlicenseNot gradedqualityBmaintenanceComprehensive MCP server for QuickBooks Online providing full CRUD operations on 29 entities (customers, invoices, bills, etc.) and 11 financial reports, enabling accounting data management via natural language.Apache 2.0