Databricks MCP server
Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Databricks, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.
Overview
This tool pack gives an agent direct access to a Databricks lakehouse, covering reading, writing, and deleting data in Unity Catalog tables, running SQL on configured compute or a named warehouse, exporting data to files, running notebooks as jobs, and querying Vector Search indexes and Genie spaces. All table-based tools share a consistent catalog, database, and table addressing model.
For setup instructions, see SnapLogic MCP Server quickstart.
Example Prompts
- Delete rows from temp_records where created_date is before 2024-01-01
- Clear out the staging table in default where status = 'processed'
- Remove the test rows I added to hive_metastore.default.customers
- Purge expired sessions from the sessions table
- Run SHOW TABLES IN default
- Describe the schema of the customers table
- Execute this SQL for me: SELECT COUNT(*) FROM default.orders
- Create a view called active_customers over the customers table
- What databases exist in this workspace?
- Export the customers table to /exports/customers_2026
Tools
| Tool Name | Functions |
|---|---|
| DatabricksDeleteRows | Delete rows from a Unity Catalog table matching a SQL condition. |
| DatabricksDeleteRowsChild | Databricks Delete Rows Child |
| DatabricksExecuteSQL | Run a single SQL statement on the account's configured Databricks compute. |
| DatabricksExportData | Unload a table or SQL query result to a JSON file at a target path. |
| DatabricksGenieAsk | Ask a Databricks Genie space a natural-language analytical question. |
| DatabricksInsertRows | Insert a record into a Unity Catalog table from a field map. |
| DatabricksInsertRowsChild | Databricks Insert Rows Child |
| DatabricksQuery | Read rows from a Unity Catalog table with an optional WHERE filter and row limit. |
| DatabricksRunNotebook | Run a Databricks notebook as a job on a named cluster and wait for the result. |
| DatabricksSQLQuery | Run arbitrary SQL against a named SQL warehouse via the Statement Execution API. |
| DatabricksVectorSearch | Semantic similarity search over a Databricks Vector Search index. |
Set up the MCP Server tools
- Download databricks_tools.zip.
- In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded databricks_tools.zip. Designer unpacks each pipeline into the project.
- Attach the required account to the connectivity snaps (see Connection Setup).
- Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.
Configure account
Attach a Databricks account (personal access token or OAuth M2M) to the Databricks snaps in Designer after import.
These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.
See the SnapLogic account documentation for this connector: Configuring Databricks Accounts.
DatabricksDeleteRows
Deletes rows from a Unity Catalog table matching a SQL condition you supply. Use it to clean up temporary, test, or expired data, and confirm the condition with the user before running it.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | Table to delete rows from. |
| database_name | string | — | Database (schema) containing the table. Omit to use the account default. |
| catalog_name | string | — | Unity Catalog catalog containing the schema. Omit to use the account default. |
| delete_condition* | string | — | SQL condition selecting the rows to delete, e.g. created_date < '2024-01-01'. |
* Required parameter.
Try asking:
- Delete rows from temp_records where created_date is before 2024-01-01
- Clear out the staging table in default where status = 'processed'
- Remove the test rows I added to hive_metastore.default.customers
- Purge expired sessions from the sessions table
DatabricksDeleteRowsChild
Lets the LLM databricks delete rows child, exposed as an MCP tool callable via Pipeline Execute.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name | string | temp_records |
— |
| database_name | string | default |
— |
| catalog_name | string | hive_metastore |
— |
| delete_condition | string | created_date < '2024-01-01' |
— |
DatabricksExecuteSQL
Runs a single SQL statement using the compute configured on the account and returns the result, with no warehouse id required. Use it for DDL commands, catalog queries, or quick SELECTs when the user has not named a specific warehouse.
| Parameter | Type | Default | Description |
|---|---|---|---|
| sql_statement* | string | — | SQL statement to execute on the configured compute. |
* Required parameter.
Try asking:
- Run SHOW TABLES IN default
- Describe the schema of the customers table
- Execute this SQL for me: SELECT COUNT(*) FROM default.orders
- Create a view called active_customers over the customers table
- What databases exist in this workspace?
DatabricksExportData
Exports a Databricks table or SQL query result to a file at a specified path. Use it when the user wants data extracted from the lakehouse as a file to share or hand off to another system.
| Parameter | Type | Default | Description |
|---|---|---|---|
| target_path* | string | — | Destination path for the exported file. An existing file is overwritten. |
| table_name | string | — | Table to export. Ignored when sql_query is supplied. |
| database_name | string | — | Database (schema) containing the table. |
| catalog_name | string | — | Unity Catalog catalog containing the schema. |
| sql_query | string | — | SQL query to export the result of, instead of a whole table. |
| file_format | string | — | Declared on the tool, but the export is currently written as JSON regardless. |
* Required parameter.
Try asking:
- Export the customers table to /exports/customers_2026
- Dump the result of SELECT * FROM sales WHERE year = 2026 to /exports/sales_2026
- Write out default.orders as a file I can pick up later
- Export everything in hive_metastore.default.transactions to /exports/tx
DatabricksGenieAsk
Sends a plain-English business question to a Databricks Genie space and returns Genie's answer. Use it when the user asks an analytical question and the relevant tables are not known, letting Genie handle the schema mapping.
| Parameter | Type | Default | Description |
|---|---|---|---|
| space_id* | string | — | Id of the Genie space to ask. |
| question* | string | — | The natural-language question. |
* Required parameter.
Try asking:
- Ask Genie space 01ef1234abcd5678 what total sales were last quarter
- Which region grew fastest year over year? Ask Genie
- Put this to the sales Genie space: who are our top 10 customers by revenue
- Ask Genie how many active subscriptions we had at the end of last month
DatabricksInsertRows
Inserts a row into a Unity Catalog table using a field map keyed by column name. Use it when the user wants to add data, such as logging an entry, seeding a lookup table, or appending a record from the conversation.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | Table to insert into. |
| database_name | string | — | Database (schema) containing the table. Omit to use the account default. |
| catalog_name | string | — | Unity Catalog catalog containing the schema. Omit to use the account default. |
| record* | object | — | The row to insert, as a field map keyed by column name. |
* Required parameter.
Try asking:
- Add a customer row to default.customers: name Acme Corp, email [email protected], balance 5000
- Insert a new record into the products table in the main catalog
- Log an entry in hive_metastore.default.audit_events for this run
- Append a row to the leads table with the details I just gave you
DatabricksInsertRowsChild
Lets the LLM databricks insert rows child, exposed as an MCP tool callable via Pipeline Execute.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name | string | customers |
— |
| database_name | string | default |
— |
| catalog_name | string | hive_metastore |
— |
DatabricksQuery
Reads rows from a single Unity Catalog table, with an optional WHERE condition and row limit to narrow results. Use it when the user wants to inspect records in a known table without writing SQL; for joins or aggregates, use DatabricksSQLQuery instead.
| Parameter | Type | Default | Description |
|---|---|---|---|
| table_name* | string | — | Table to read from. |
| database_name | string | — | Database (schema) containing the table. Omit to use the account default. |
| catalog_name | string | — | Unity Catalog catalog containing the schema. Omit to use the account default. |
| where_clause | string | — | SQL WHERE condition applied to the read, e.g. balance > 1000. Omit to return all rows. |
| limit_rows | string | — | Maximum number of rows to return. Omit for no limit. |
* Required parameter.
Try asking:
- Show me customers in hive_metastore.default with a balance over 1000
- Pull the first 50 rows of the orders table in the sales schema
- List everything in the products table under the main catalog
- Get rows from default.customers where region = 'EMEA', limit it to 20
- What's in the transactions table? Just show me a handful of rows
DatabricksRunNotebook
Runs a Databricks notebook as a job on a named cluster and waits for it to finish, returning the outcome. Use it when the user wants to trigger a notebook execution, such as an ETL load or scheduled transformation.
| Parameter | Type | Default | Description |
|---|---|---|---|
| task_name* | string | — | Name given to the job task. |
| notebook_path* | string | — | Workspace path of the notebook to run. |
| cluster* | string | — | Cluster the notebook runs on. |
| interval | string | — | Seconds between completion polls (default 10). |
* Required parameter.
Try asking:
- Run the daily ETL notebook at /Users/[email protected]/etl/daily_load on the shared cluster
- Kick off the etl_daily job and pass date = 2026-05-01
- Execute the customer refresh notebook and tell me if it succeeded
- Trigger the nightly load notebook on shared-compute-cluster and poll every 30 seconds
DatabricksSQLQuery
Runs arbitrary SQL against a named Databricks SQL warehouse and returns the results, suited for interactive and exploratory queries. Use it for joins, aggregates, window functions, or catalog introspection that DatabricksQuery cannot express.
| Parameter | Type | Default | Description |
|---|---|---|---|
| sql_statement* | string | — | SQL statement to execute. |
| warehouse_id* | string | — | Id of the Databricks SQL warehouse that runs the statement. |
* Required parameter.
Try asking:
- Run this on warehouse abc123: SELECT region, SUM(amount) FROM sales GROUP BY region
- List the tables in the default schema using information_schema
- Join orders and customers and give me the top 10 accounts by revenue
- Count how many rows are in default.transactions
- Show me the column names and types for the customers table
DatabricksVectorSearch
Runs a semantic similarity search against a Databricks Vector Search index and returns matching records. Use it when the user's question is about meaning rather than exact values, such as finding similar support tickets or relevant documents.
| Parameter | Type | Default | Description |
|---|---|---|---|
| index_name* | string | — | Fully-qualified Vector Search index, e.g. catalog.schema.index. |
| query_text* | string | — | Natural-language text to search for. |
| columns | string | — | Comma-separated list of columns to return. |
| num_results | string | — | Number of matches to return (default 10). |
| filters_json | string | — | Filter expression scoping the search. |
* Required parameter.
Try asking:
- Search the my_catalog.my_schema.my_index index for customer complaints about billing
- Find the 5 most similar support tickets to 'login fails after password reset'
- Look up documents about refund policy in the knowledge index, return just the title and url columns
- Search the product index for 'waterproof hiking boots' and give me 20 results