wavefinancial_get_tablesLABSCO SUMMARY
Read your books with SQL, and only read them.
Invoices, customers and transactions come through the CData JDBC Driver as relational tables, which makes ad-hoc questions about the books answerable without exporting to a spreadsheet first. Read-only matters more than usual here: the server has no tool that can write to your accounting data.
What it is
A Java MCP server that puts CData's JDBC Driver for Wave Financial behind three read-only tools: list the tables, list a table's columns, and run a SQL SELECT. The driver is what does the work — it exposes Wave Financial as relational SQL models — and the server hands those models to your client so you can ask questions in plain language instead of writing SQL yourself.
What you get
get_tablesreturns the tables available in the data source, as CSV with a header rowget_columnsreturns the columns of one table, in the same CSV shaperun_queryexecutes a SQL SELECT and returns the rows- Every tool name starts with the
Prefixin your.prpfile (wavefinancial_in the sample), so several CData servers can run side by side without colliding - Ask in plain language — which invoices are still unpaid, say — and the client picks the tools and writes the SQL
Requirements
Build the server with mvn clean install, which produces CDataMCP-jar-with-dependencies.jar. Separately download the CData JDBC Driver for Wave Financial and license it: run java -jar cdata.jdbc.wavefinancial.jar --license and enter your name, email and either TRIAL or a licence key. Then write a .prp file naming DriverClass=cdata.jdbc.wavefinancial.WaveFinancialDriver plus the JdbcUrl you build in the driver's connection-string utility, and point your client at java -jar with the jar and that file. Transport is stdio, so the server has to run on the same machine as the client.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Asking what is still unpaid
Query the invoice tables by status and date rather than filtering the web UI.
Reconciling a period
Pull the transactions for a date range as CSV and work from that.
Seeing what Wave actually exposes
List tables and columns before you commit to a reporting approach.
3 tools
Listed in project docs. Your client may show a different list.
wavefinancial_get_columnswavefinancial_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. With Prefix=wavefinancial the tools appear as wavefinancial_get_tables, wavefinancial_get_columns and wavefinancial_run_query. All three only read (wavefinancial_run_query runs SQL SELECT queries), even though the README's usage section says they can write, update and delete.
Where it runs
The documented client runs 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/wave-financial-mcp-server-by-cdata.git
cd wave-financial-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for Wave Financial from https://www.cdata.com/drivers/wavefinancial/download/jdbc
License the driver: in the driver's lib folder run java -jar cdata.jdbc.wavefinancial.jar --license and enter your name, email, and "TRIAL" (or your license key)
Run java -jar cdata.jdbc.wavefinancial.jar to open the Connection String utility, configure and test the connection, then copy the connection string
Create wave-financial.prp with:
Prefix=wavefinancial
ServerName=CDataWaveFinancial
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.wavefinancial.WaveFinancialDriver
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 below to claude_desktop_config.json and restart the client
(optional, to run standalone) java -jar <YOUR_PATH_TO_CDATA_MCP_JAR_WITH> <YOUR_PATH_TO_WAVE_FINANCIAL>
MCP Clients
Claude Desktop — Linux, macOS
{
"mcpServers": {
"wave-financial": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_WAVE_FINANCIAL>"
]
}
}
}