qbo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QBO_ENV | No | QBO environment: sandbox or production (default production) | |
| QBO_PROFILE | No | Profile name for multi-company setup | default |
| QBO_READONLY | No | Set to '1' to enable read-only mode | |
| QBO_CLIENT_ID | Yes | Intuit OAuth client ID | |
| QBO_TOKENS_PATH | No | Path to tokens.json file | |
| QBO_REDIRECT_URI | Yes | OAuth redirect URI, e.g., https://<you>.github.io/qbo-mcp/ | |
| QBO_CLIENT_SECRET | Yes | Intuit OAuth client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_transactionsA | Search QBO transactions by metadata, returning Id + key fields per match. txn_type: one of Bill, Invoice, JournalEntry, Purchase, Deposit, CreditMemo, VendorCredit. Provide at least one filter. date_start/date_end define a TxnDate range (YYYY-MM-DD). customer is for Invoice/CreditMemo; vendor is for Bill/Purchase/VendorCredit. |
| get_transactionC | Fetch the full QBO entity for a transaction. Use to inspect Line[].Id and current values. |
| lookup_refB | Resolve a list-entity name to its QBO Id. entity_type: Account, Class, Department, Customer, Vendor. |
| queryA | Run a read-only QBO SQL query (e.g. SELECT * FROM Class). Returns raw entity rows. |
| update_transactionA | Apply one or more field changes to a single transaction. Each change is {"line_id": "", "field": "account|class|location|customer|vendor|memo", "new_value": "..."}. Omit line_id (or pass null) for header-level fields. dry_run=True (default) resolves refs and reports the plan without writing; pass dry_run=False to commit the sparse update. |
| apply_csvB | Apply a CSV of changes (columns: txn_type,txn_id,line_id,field,new_value) in batch. Mirrors |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: batch updates vs single updates, searching vs full fetch vs SQL query, and name resolution. No two tools overlap in functionality.
Most tools follow a verb_noun pattern (apply_csv, find_transactions, get_transaction, update_transaction), but 'lookup_ref' uses a verb+noun and 'query' is a single noun, breaking the pattern slightly. Overall consistent snake_case.
6 tools is well-scoped for a QuickBooks Online MCP, covering search, retrieval, updates (single and batch), reference resolution, and raw queries without being excessive.
The tool set lacks a create transaction tool, which is a notable gap for typical CRUD operations. While read and update are covered, agents cannot create new transactions, limiting the server's usefulness.