CCXT vs Quickbooks MCP
A side-by-side look at the CCXT and Quickbooks MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose CCXT for finance & fintech work; choose Quickbooks MCP for finance & fintech as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose CCXT when
- You need dedicated capabilities in the Finance & Fintech domain.
- You want tools like
list_exchanges, describe_exchange, describe_method.
Choose Quickbooks MCP when
- You need dedicated capabilities in the Finance & Fintech domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: OAuth 2.0.
- You have the keys it needs:
QBO_CREDENTIAL_MODE, QBO_CLIENT_ID, QBO_CLIENT_SECRET, QBO_CREDENTIAL_FILE, QBO_INLINE_OUTPUT, QBO_SANDBOX, AWS_REGION, QBO_SECRET_NAME. - You want tools like
qbo_authenticate, get_company_info, query.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Finance & Fintech | Finance & Fintech |
| Quality signal | 60/100 · Good | 64/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | Not declared | OAuth 2.0 |
| Pricing | Free | Not declared |
| Required env vars | None listed | QBO_CREDENTIAL_MODEQBO_CLIENT_IDQBO_CLIENT_SECRETQBO_CREDENTIAL_FILEQBO_INLINE_OUTPUTQBO_SANDBOXAWS_REGIONQBO_SECRET_NAME |
| Verified owner | Community listing | Community listing |
| GitHub stars | 44,531 | 14 |
| Directory activity | 3 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 32 | 41 |
| Full listing | View CCXT | View Quickbooks MCP |
Tools & capabilities
CCXT tools 32
list_exchangesList every exchange this server supports (built from ccxt.exchanges at runtime), with name, websocket and prediction-market availability. Filter by a name query or by support for a unified method.describe_exchangeOne exchange's supported unified methods, market types, timeframes, required credential fields, sandbox availability and documentation URLs. Per-method detail lives in describe_method.describe_methodSearch unified method names by keyword, or get one method's signature and parameter documentation. With "exchange" it adds that exchange's own docs (including supported params.* keys and links to the exchange API reference), per-market-type feature support, and searches its implicit (exchange-specific) endpoints too. Full ccxt manual: https://docs.ccxt.com/search_marketsSearch and filter the markets of one exchange (by text, base, quote, settle currency, market type), paginated. Use this to resolve unified symbols — there is deliberately no list-all-markets tool. On prediction exchanges use search_events instead.get_tickers24h price tickers for one or more unified symbols on an exchange (outcome handles on prediction exchanges).get_orderbookCurrent order book (bids and asks) for one unified symbol.get_ohlcvHistorical OHLCV candlestick data for a symbol and timeframe. Rows are [timestampMs, open, high, low, close, volume]. Page back with "since"; "params.until" bounds the end.get_tradesRecent public trades for one unified symbol.search_eventsSearch events on a prediction-market exchange (polymarket, kalshi, limitless, myriad, hyperliquid with prediction=true). A scoping filter is required: query, tags, or params.eventId/params.slug. Returns events with their markets and outcome handles — outcome handles are what you pass as the symbol to get_tickers/get_orderbook/create_order on prediction exchanges.call_read_methodEscape hatch covering every unified read method not served by a dedicated tool (fetchFundingRate, fetchLedger, fetchOpenInterest, fetchLiquidations, fetchEvent, fetchSettlements, …). Only fetch*/load* methods are accepted — writes are structurally rejected. Get the signature first with describe_method. Docs: https://docs.ccxt.com/call_implicit_getCall an exchange-specific implicit REST endpoint over HTTP GET, for data the unified API does not cover. Pass the implicit method name in the "method" argument (e.g. "publicGetTickerPrice"); these are exchange-specific — find them with describe_method {"query": ..., "exchange": ...} (its results list the name to pass here). The response is the raw exchange payload. Consult the exchange API reference (describe_exchange .urls.doc) and the ccxt manual: https://docs.ccxt.com/get_safety_statusWhat this server is currently allowed to do: configured accounts (names only — never credentials), enabled capability tiers, caps, sandbox/live environments, journal location, unresolved order intents, and any configuration problems.- +20 more on the listing page
Quickbooks MCP tools 41
qbo_authenticateAuthenticate with QuickBooks using OAuth (local credential mode only). Step 1: Call with no arguments to get the authorization URL. Step 2: After authorizing in browser, call with authorization_code and realm_id from the callback URL. This tool only works when QBO_CREDENTIAL_MODE is 'local' (the default).get_company_infoGet information about the connected QuickBooks company.queryExecute a QuickBooks query using SQL-like syntax. Supports querying any entity type (Customer, Vendor, Invoice, Bill, Account, Item, Department, etc.). Results are written to a file to preserve context. Defaults to MAXRESULTS 1000 if not specified. Examples: 'SELECT * FROM Customer', 'SELECT * FROM SalesReceipt WHERE TxnDate >= \'2025-11-01\' AND TxnDate <= \'2025-11-30\''list_accountsList all accounts in the chart of accounts. Returns AcctNum (the user-facing account number), Name, AccountType, AccountSubType, and CurrentBalance. Use AcctNum to reference accounts in other queries or operations.get_profit_lossGet a Profit and Loss (Income Statement) report. Can be broken down by department/location.get_balance_sheetGet a Balance Sheet report. Can be broken down by department/location.get_reportRun a QuickBooks report that has no dedicated tool: A/R and A/P aging, customer and vendor balances, transaction lists, general ledger, journal, sales by customer/item/class/department, cash flow, and detail variants. Answers what is outstanding and how old it is, which the entity query tools cannot — a report sees postings that carry no account reference in entity JSON. Profit and Loss, Balance Sheet and Trial Balance have their own tools.get_trial_balanceGet a Trial Balance report. Useful for month-end close and reconciliation. Note: Trial Balance does not support department/location breakdown in QuickBooks Online.query_account_transactionsQuery all transactions affecting a specific account, across all 13 posting transaction types. Returns a consolidated list with date, type, amount (debit/credit), and description. Useful for investigating account balance discrepancies. Note: the A/R side of invoices, credit memos, and payments has no account reference in QBO's data model and cannot appear here — use account_period_summary for A/R totals.account_period_summaryGet a period summary for an account: opening balance, total debits/credits, closing balance, and transaction count. Uses the General Ledger report. Supports department filtering.create_journal_entryCreate a journal entry. Accepts account/department/entity names (will lookup IDs automatically). Validates debits=credits before creating. Lines may carry an entity (vendor, customer, or employee) — QuickBooks requires one on any line posting to Accounts Receivable or Accounts Payable. Returns entry details and a link to view in QuickBooks.get_journal_entryFetch a single journal entry by ID with full details including SyncToken (needed for edits). Returns formatted summary and writes full object to temp file.- +29 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
CCXT
No confirmed install command for CCXT yet — follow the setup steps linked from its listing page rather than a guessed package name.
Quickbooks MCP
{
"mcpServers": {
"quickbooks-mcp": {
"command": "npx",
"args": [
"-y",
"quickbooks-mcp"
],
"env": {
"QBO_CREDENTIAL_MODE": "YOUR_QBO_CREDENTIAL_MODE_HERE",
"QBO_CLIENT_ID": "YOUR_QBO_CLIENT_ID_HERE",
"QBO_CLIENT_SECRET": "YOUR_QBO_CLIENT_SECRET_HERE",
"QBO_CREDENTIAL_FILE": "YOUR_QBO_CREDENTIAL_FILE_HERE",
"QBO_INLINE_OUTPUT": "YOUR_QBO_INLINE_OUTPUT_HERE",
"QBO_SANDBOX": "YOUR_QBO_SANDBOX_HERE",
"AWS_REGION": "YOUR_AWS_REGION_HERE",
"QBO_SECRET_NAME": "YOUR_QBO_SECRET_NAME_HERE"
}
}
}
}
Frequently asked questions
CCXT is categorized under Finance & Fintech and uses an install path we have not confirmed yet. Quickbooks MCP belongs to Finance & Fintech and uses a local stdio subprocess. Pick CCXT for finance & fintech work and Quickbooks MCP for finance & fintech.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. CCXT has no confirmed install command yet — follow its own setup instructions.
CCXT is listed as free. Quickbooks MCP has no declared pricing — check the project's own site. Auth: oauth 2.0. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add ccxt and quickbooks-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, CCXT has a quality signal of 60/100 (Good) with 3 views, 0 installs and 44,531 GitHub stars. Quickbooks MCP has 64/100 (Good) with 2 views, 0 installs and 14 GitHub stars.