databricks_get_tablesLABSCO SUMMARY
Read-only, and local by construction.
This build is explicitly the read-only one — the vendor points elsewhere for write, update and delete or for a fully remote managed setup. Combined with stdio-only transport, that means the data never leaves the machine running the client, and no tool here can modify a table. The setup is longer than most: a Maven build, a licensed driver install and a hand-written connection file before anything runs.
What it is
A local, read-only server that wraps the CData JDBC Driver for Databricks. The driver exposes Databricks as relational SQL models; this server puts three tools in front of that, so a model can discover the schema and then query it without anyone writing SQL by hand.
What you get
- The tables available in the data source, returned as CSV with a header row —
databricks_get_tables - The columns on a named table, in the same CSV shape —
databricks_get_columns - A SQL SELECT executed against the source —
databricks_run_query - 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 - A configurable tool prefix, so several CData servers can run side by side without name collisions
Requirements
Java and Maven: clone the repository and run mvn clean install, which produces CDataMCP-jar-with-dependencies.jar. Separately install and license the CData JDBC Driver for Databricks — run java -jar cdata.jdbc.databricks.jar --license and enter TRIAL or your key. Build the connection string with the driver's utility, then write a .prp file carrying Prefix, ServerName, ServerVersion, DriverPath, DriverClass and JdbcUrl. Your client launches java with the jar and the .prp path. It speaks stdio only, so the client must run on the same machine as the server.
Setup effort
Build from source — git clone https://github.com/cdatasoftware/databricks-mcp-server-by-cdata.git
USE CASES
Answering a data question without writing SQL
Let the model discover the tables and columns it needs, then compose and run the SELECT itself.
Exploring an unfamiliar schema
List the tables, then read the columns on the ones that look relevant before querying anything.
Limiting what an assistant can see
Name the permitted tables in the connection file so the exposed surface is a deliberate subset rather than the whole source.
3 tools
Listed in project docs. Your client may show a different list.
databricks_get_columnsdatabricks_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. The tool names carry a prefix from your config, such as databricks_get_tables. All three only read, and run_query is documented for SELECT queries, even though the README's usage section says the tools can write, update and delete.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cdatasoftware/databricks-mcp-server-by-cdata.git
cd databricks-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for Databricks from https://www.cdata.com/drivers/databricks/download/jdbc
License the driver: in the driver's lib folder (Windows C:\Program Files\CData\CData JDBC Driver for Databricks\, Mac/Linux /Applications/CData JDBC Driver for Databricks/) run java -jar cdata.jdbc.databricks.jar --license, then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.databricks.jar to open the Connection String utility, configure the connection and click "Test Connection" (if the source uses OAuth, you authenticate in your browser), then copy the connection string
Create databricks.prp with:
Prefix=databricks
ServerName=CDataDatabricks
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.databricks.DatabricksDriver
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 to claude_desktop_config.json (point the args at your built CDataMCP-jar-with-dependencies.jar and your databricks.prp), then fully quit and re-open Claude Desktop
MCP Clients
Claude Desktop
{
"mcpServers": {
"databricks": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_DATABRICKS>"
]
}
}
}