quickbooksonline_get_tablesLABSCO SUMMARY
Read-only by construction.
Three tools and no write path is the whole design: the model discovers tables, reads columns and runs SELECTs, so a badly framed question produces a wrong answer rather than a changed record. Two things decide whether it fits. The CData JDBC driver is a separate licensed product, with a trial key to start on. And the assistant can query every table the connection can see — the Tables field in the connection profile does not narrow that, so limit the connection or the account it signs in with.
What it is
A read-only MCP server built on CData's JDBC Driver for QuickBooks Online. The driver exposes QuickBooks Online as relational tables; the server puts three tools over it, so a client can discover what tables exist, read a table's columns, and run a SELECT — without anyone writing SQL by hand.
What you get
- The tables the driver exposes for QuickBooks Online, returned as CSV with a header row —
quickbooksonline_get_tables - The columns of one of those tables, also as CSV, so a query can be composed against real field names —
quickbooksonline_get_columns - A SQL SELECT executed against live QuickBooks Online data —
quickbooksonline_run_query - Tool names that carry the prefix you set in the connection profile — the sample uses
Prefix=quickbooksonline— so several CData servers can run side by side without colliding - A
Tablessetting that only picks which tables also get a ready-made description (blank means none); it does not limit what the tools can list or query, so limit the connection or the account it signs in with
Requirements
Java and Maven to build — mvn clean install produces CDataMCP-jar-with-dependencies.jar. The CData JDBC Driver for QuickBooks Online is a separate download and needs licensing: run java -jar cdata.jdbc.quickbooksonline.jar --license and enter a name, an email and either TRIAL or a licence key. Connection settings go in a .prp file carrying Prefix, ServerName (the sample uses CDataQuickBooksOnline), ServerVersion, DriverPath, DriverClass (cdata.jdbc.quickbooksonline.QuickBooksOnlineDriver), the JdbcUrl produced by the driver's connection-string utility, and the optional Tables list. The client then launches java -jar CDataMCP-jar-with-dependencies.jar quickbooks-online.prp. Transport is stdio, so the server has to run on the same machine as the client. If the data source authenticates over OAuth, you approve it in a browser while building the connection string.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Answering bookkeeping questions from the live books
Invoices, customers, payments and ledger entries arrive as tables, so a question about outstanding invoices becomes one SELECT.
Summarising a period without exporting it
Aggregate live rows in a single query instead of downloading a report and totalling it by hand.
Finding out which QuickBooks objects are exposed
List the tables the driver models and read one table's columns to see the fields available.
Letting an assistant read the books, not change them
Read-only by construction, so the accounting data can be queried with no risk of a posting.
3 tools
Listed in project docs. Your client may show a different list.
quickbooksonline_get_columnsquickbooksonline_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names start with the Prefix set in the .prp file; with the sample Prefix=quickbooksonline they are quickbooksonline_get_tables, quickbooksonline_get_columns and quickbooksonline_run_query. All three only read.
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
Clone the repository, then point your client at the binary. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/cdatasoftware/quickbooks-online-mcp-server-by-cdata.git
cd quickbooks-online-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for QuickBooks Online from https://www.cdata.com/drivers/qbonline/download/jdbc
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.quickbooksonline.jar --license, then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.quickbooksonline.jar to open the Connection String utility, click "Test Connection" (browser OAuth if the source needs it), and copy the connection string
Create quickbooks-online.prp with:
Prefix=quickbooksonline
ServerName=CDataQuickBooksOnline
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.quickbooksonline.QuickBooksOnlineDriver
JdbcUrl=<YOUR_JDBC_URL>
Tables=Tables only picks which tables also get a ready-made description for your assistant, and empty means none; the server can still list and query every table your connection string reaches, so to keep data out of reach, limit that connection or the account it signs in with.
Add the mcpServers entry (block below) to claude_desktop_config.json, then fully quit and re-open the client
MCP Clients
Claude Desktop — Windows, macOS, Linux
{
"mcpServers": {
"quickbooks-online": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_QUICKBOOKS_ONLINE>"
]
}
}
}