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

  1. Download databricks_tools.zip.
  2. 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.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. 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.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

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