quickbooks-mcp-server

quickbooks-mcp-server

Connect Claude Desktop and Claude Code to QuickBooks Online for natural-language accounting. Ask questions about invoices, expenses, reports, and more using plain English.

Category
访问服务器

README

QuickBooks MCP Server

<!-- mcp-name: io.github.NyxToolsDev/quickbooks-mcp-server -->

Connect Claude Desktop and Claude Code to QuickBooks Online for natural-language accounting. Ask questions about invoices, expenses, reports, and more using plain English.

License: MIT Python 3.10+


What is this?

An MCP (Model Context Protocol) server that gives Claude direct access to your QuickBooks Online data. Instead of logging into QuickBooks and clicking through reports, just ask Claude:

"Show me all overdue invoices sorted by amount" "What's our P&L this quarter?" "Create an invoice for Acme Corp for $2,500"

The server handles OAuth authentication, API calls, rate limiting, and data formatting.


Quick Start

1. Install

pip install quickbooks-mcp

Or install from source:

git clone https://github.com/nyxtools/quickbooks-mcp-server.git
cd quickbooks-mcp-server
pip install -e .

2. Create a QuickBooks Developer App

  1. Go to developer.intuit.com
  2. Create an app and select QuickBooks Online and Payments
  3. Under Keys & OAuth, note your Client ID and Client Secret
  4. Add http://localhost:8080/callback as a Redirect URI

3. Set Environment Variables

export QBO_CLIENT_ID='your_client_id'
export QBO_CLIENT_SECRET='your_client_secret'

4. Run OAuth Setup

python scripts/setup_oauth.py

This opens your browser, authorizes with QuickBooks, and stores tokens locally (encrypted). Note the Realm ID it prints at the end.

export QBO_REALM_ID='your_realm_id'

5. Configure Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "quickbooks": {
      "command": "quickbooks-mcp",
      "env": {
        "QBO_CLIENT_ID": "your_client_id",
        "QBO_CLIENT_SECRET": "your_client_secret",
        "QBO_REALM_ID": "your_realm_id"
      }
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

6. Start Using It

Restart Claude Desktop and try:

"What are my current bank account balances?"


All 19 Tools

Free Tier (9 tools)

Tool Description
list_invoices List and filter invoices by status, date, customer
get_invoice_details Full invoice details with line items and payment history
get_overdue_invoices All overdue invoices sorted by days past due
list_expenses List expenses with date, vendor, amount, and category filters
get_top_expenses Top expenses grouped by category or vendor for any period
get_account_balances Current balances for Bank, Credit Card, or all accounts
get_account_transactions Recent transactions for any account with date filters
search_customers Search customers by name or email with contact info
get_customer_summary Customer financial summary: invoiced, paid, outstanding

Premium Tier (10 tools) -- $29/month

Tool Description
get_profit_and_loss P&L report for any period with income/expense breakdown
get_balance_sheet Balance sheet as of any date (assets, liabilities, equity)
get_cash_flow Cash flow statement (operating, investing, financing)
get_accounts_receivable_aging AR aging by customer (current/30/60/90+ days)
get_accounts_payable_aging AP aging by vendor (current/30/60/90+ days)
create_invoice Create invoices with line items, due dates, and memos
record_payment Record payments against invoices with method and reference
create_expense Record expenses with vendor, amount, category, and date
get_financial_health Key ratios: current ratio, DSO, burn rate, runway
compare_periods Side-by-side period comparison with % changes

Get a premium license at nyxtools.dev/quickbooks-mcp

Set it in your environment:

export LICENSE_KEY='your_license_key'

Usage Examples

Invoices

"Show me all invoices from January" "Which invoices are overdue? Show me the worst ones first" "Get the details for invoice #1042" "Show me open invoices for Acme Corp"

Expenses

"What did we spend this month?" "Show me our top 10 expense categories this quarter" "How much have we spent at Amazon this year?"

Accounts

"What are our bank balances?" "Show me the last 20 transactions in checking" "What's the balance on our company credit card?"

Customers

"Find the customer John Smith" "Give me a financial summary for customer 456" "Search for customers with outstanding balances"

Reports (Premium)

"Show me the P&L for this quarter" "Pull up the balance sheet" "How's our cash flow this month?" "Show me the AR aging report" "Who are our slowest-paying customers?"

Write Operations (Premium)

"Create an invoice for customer 123: Website Design $2,500, Hosting $150/month, due net-30" "Record a $1,000 check payment on invoice #1042" "Record a $250 expense to Office Depot for supplies, paid by credit card on March 15"

Analytics (Premium)

"How healthy are our finances? Show me key ratios" "Compare this month to last month" "How did this quarter compare to the same quarter last year?"


Configuration

All configuration is via environment variables:

Variable Required Default Description
QBO_CLIENT_ID Yes QuickBooks OAuth2 Client ID
QBO_CLIENT_SECRET Yes QuickBooks OAuth2 Client Secret
QBO_REALM_ID Yes QuickBooks Company/Realm ID
QBO_REDIRECT_URI No http://localhost:8080/callback OAuth redirect URI
LICENSE_KEY No Premium license key
QBO_SANDBOX No false Use sandbox environment
TOKEN_STORE_PATH No ~/.quickbooks-mcp/tokens.json Token storage location
LOG_LEVEL No INFO Logging level

Security

  • Tokens encrypted at rest using machine-specific keys (Fernet + PBKDF2)
  • Tokens auto-refresh -- access tokens last 60 min, refresh tokens 100 days
  • No credentials stored in code -- all secrets via environment variables
  • Rate limiting built in to respect QuickBooks API throttles
  • Input sanitization on all query parameters to prevent injection

Development

# Clone and install with dev dependencies
git clone https://github.com/nyxtools/quickbooks-mcp-server.git
cd quickbooks-mcp-server
pip install -e ".[dev]"

# Run tests
pytest

# Run with coverage
pytest --cov=quickbooks_mcp

# Lint
ruff check src/ tests/

# Type check
mypy src/

Project Structure

quickbooks-mcp-server/
  src/quickbooks_mcp/
    auth/          # OAuth2 flow and encrypted token storage
    client/        # QBO REST API client with rate limiting
    tools/         # MCP tool implementations (19 tools)
    utils/         # Money (Decimal), formatting, license validation
    server.py      # MCP server setup and tool registration
    config.py      # Environment-based configuration
  scripts/
    setup_oauth.py # Interactive OAuth setup
  examples/        # Config examples and usage guide
  tests/           # Pytest test suite

Troubleshooting

"No QuickBooks tokens found"

Run the OAuth setup:

python scripts/setup_oauth.py

"Token refresh failed"

Your refresh token may have expired. Re-run OAuth setup.

"QuickBooks API error (HTTP 403)"

Verify your app has com.intuit.quickbooks.accounting scope.

"Rate limited by QuickBooks"

The server handles rate limiting automatically. If you see this error, wait 60 seconds.

"This is a premium feature"

Some tools require a license key. Get one here or set LICENSE_KEY in your environment.

Sandbox Mode

For testing without affecting real data:

export QBO_SANDBOX=true

Use your Development keys (not Production) from the Intuit developer dashboard.


License

MIT License. See LICENSE for details.

Copyright (c) 2026 NyxTools

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选