> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Databricks Workspace connector

Connect to Databricks Workspace APIs using a Service Principal with OAuth 2.0 client credentials to manage clusters, jobs, notebooks, SQL, and more.

**Authentication:** Service Principal (OAuth 2.0)
**Categories:** Analytics, Automation, Databases
1. ### Install the SDK

   
     ### Node.js

```bash frame="terminal"
npm install @scalekit-sdk/node
```

     ### Python

```bash frame="terminal"
pip install scalekit
```

   

   Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

```sh showLineNumbers=false title=".env"
SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
SCALEKIT_CLIENT_ID=<your-client-id>
SCALEKIT_CLIENT_SECRET=<your-client-secret>
```

## What you can do

Connect this agent connector to let your agent:

- **List workspace, secrets, repos** — List the contents (notebooks, folders, libraries) of a Databricks workspace directory
- **Import workspace** — Import a notebook into the Databricks workspace from base64-encoded content
- **Get workspace, permissions, sql statement result chunk** — Get metadata about a Databricks workspace object (notebook, folder, or file), including its object type, language, and object ID
- **Export workspace** — Export a Databricks notebook or directory
- **Delete workspace, secret, repo** — Permanently delete a notebook or directory from the Databricks workspace
- **Create secret scope, repo, job** — Create a new secret scope in the Databricks workspace, backed by Databricks or an Azure Key Vault

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `databricksworkspace_cluster_create`

Create and start a new Databricks compute cluster. Specify either a fixed number of workers or an autoscaling range.

Parameters:

- `cluster_name` (`string`, required): Display name for the new cluster
- `node_type_id` (`string`, required): The instance type for driver and worker nodes
- `spark_version` (`string`, required): The Databricks Runtime version to use for the cluster
- `autotermination_minutes` (`integer`, optional): Automatically terminate the cluster after this many minutes of inactivity. Set to 0 to disable.
- `max_workers` (`integer`, optional): Maximum number of workers when autoscaling. Provide with min_workers instead of num_workers.
- `min_workers` (`integer`, optional): Minimum number of workers when autoscaling. Provide with max_workers instead of num_workers.
- `num_workers` (`integer`, optional): Fixed number of worker nodes. Omit and use min_workers/max_workers instead to enable autoscaling.

### `databricksworkspace_cluster_edit`

Edit the configuration of an existing Databricks cluster. The cluster must be running or terminated; this replaces its full configuration, so include every field you want to keep, not just the ones you're changing.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to edit.
- `cluster_name` (`string`, required): Display name for the cluster
- `node_type_id` (`string`, required): The instance type for driver and worker nodes
- `spark_version` (`string`, required): The Databricks Runtime version to use for the cluster
- `autotermination_minutes` (`integer`, optional): Automatically terminate the cluster after this many minutes of inactivity. Set to 0 to disable.
- `max_workers` (`integer`, optional): Maximum number of workers when autoscaling. Provide with min_workers instead of num_workers.
- `min_workers` (`integer`, optional): Minimum number of workers when autoscaling. Provide with max_workers instead of num_workers.
- `num_workers` (`integer`, optional): Fixed number of worker nodes. Omit and use min_workers/max_workers instead to enable autoscaling.

### `databricksworkspace_cluster_get`

Get details of a specific Databricks cluster by cluster ID.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster.

### `databricksworkspace_cluster_permanent_delete`

Permanently delete a Databricks cluster by cluster ID. Unlike terminating a cluster, this removes it entirely and it can no longer be started or listed. This action is irreversible.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to permanently delete.

### `databricksworkspace_cluster_resize`

Resize a running Databricks cluster by setting a fixed worker count or an autoscaling range.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to resize.
- `max_workers` (`integer`, optional): Maximum number of workers when autoscaling. Provide with min_workers instead of num_workers.
- `min_workers` (`integer`, optional): Minimum number of workers when autoscaling. Provide with max_workers instead of num_workers.
- `num_workers` (`integer`, optional): Fixed number of worker nodes. Omit and use min_workers/max_workers instead to enable autoscaling.

### `databricksworkspace_cluster_restart`

Restart a running Databricks cluster by cluster ID. Useful for clearing cached state or applying updated init scripts.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to restart.

### `databricksworkspace_cluster_start`

Start a terminated Databricks cluster by cluster ID.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to start.

### `databricksworkspace_cluster_terminate`

Terminate a Databricks cluster by cluster ID. The cluster will be deleted and all its associated resources released.

Parameters:

- `cluster_id` (`string`, required): The unique identifier of the cluster to terminate.

### `databricksworkspace_clusters_list`

List all clusters in the Databricks workspace.

### `databricksworkspace_dbfs_delete`

Permanently delete a file or directory from the Databricks File System (DBFS). This action is irreversible.

Parameters:

- `path` (`string`, required): The DBFS path of the file or directory to delete.
- `recursive` (`boolean`, optional): Whether to recursively delete a directory and its contents

### `databricksworkspace_dbfs_list`

List the contents of a directory on the Databricks File System (DBFS).

Parameters:

- `path` (`string`, required): The DBFS path to list.

### `databricksworkspace_dbfs_put`

Write a small file (up to 2 MB) to the Databricks File System (DBFS) in a single call, creating any needed parent directories. For larger files, use the streaming create/add-block/close APIs instead.

Parameters:

- `contents_base64` (`string`, required): Base64-encoded file contents to write. Maximum 2 MB after encoding.
- `path` (`string`, required): The DBFS path to write the file to.
- `overwrite` (`boolean`, optional): Whether to overwrite an existing file at the destination path

### `databricksworkspace_dbfs_read`

Read up to 1 MB of a file's contents from the Databricks File System (DBFS). The response returns the content base64-encoded. Use offset and length to page through larger files.

Parameters:

- `path` (`string`, required): The DBFS path of the file to read.
- `length` (`integer`, optional): Number of bytes to read, starting at offset. Maximum is 1,048,576 (1 MB).
- `offset` (`integer`, optional): Byte offset to start reading from.

### `databricksworkspace_information_schema_columns`

List columns for a table using INFORMATION_SCHEMA.COLUMNS. Returns column name, data type, nullability, numeric precision/scale, max char length, and comment.

Parameters:

- `catalog` (`string`, required): The catalog containing the table.
- `schema` (`string`, required): The schema containing the table.
- `table` (`string`, required): The table to list columns for.
- `warehouse_id` (`string`, required): The ID of the SQL warehouse to run the query on.

### `databricksworkspace_information_schema_schemata`

List all schemas within a catalog using INFORMATION_SCHEMA.SCHEMATA. Used for schema discovery during setup.

Parameters:

- `catalog` (`string`, required): The catalog to list schemas from.
- `warehouse_id` (`string`, required): The ID of the SQL warehouse to run the query on.

### `databricksworkspace_information_schema_table_constraints`

List PRIMARY KEY and FOREIGN KEY constraints for tables in a schema using INFORMATION_SCHEMA.TABLE_CONSTRAINTS. Used to auto-detect join keys.

Parameters:

- `catalog` (`string`, required): The catalog containing the schema.
- `schema` (`string`, required): The schema to list constraints from.
- `warehouse_id` (`string`, required): The ID of the SQL warehouse to run the query on.

### `databricksworkspace_information_schema_tables`

List tables and views in a schema using INFORMATION_SCHEMA.TABLES. Returns table name, type (MANAGED, EXTERNAL, VIEW, etc.), and comment for schema discovery.

Parameters:

- `catalog` (`string`, required): The catalog to query INFORMATION_SCHEMA from.
- `schema` (`string`, required): The schema to list tables from.
- `warehouse_id` (`string`, required): The ID of the SQL warehouse to run the query on.

### `databricksworkspace_job_create`

Create a new Databricks job definition made up of one or more tasks.

Parameters:

- `name` (`string`, required): Display name for the new job
- `tasks` (`array`, required): Array of task definitions that make up the job. Each task needs a unique task_key plus one task type (notebook_task, spark_jar_task, python_wheel_task, sql_task, etc.) and either existing_cluster_id or new_cluster.
- `job_clusters` (`array`, optional): Shared cluster definitions that tasks can reference by job_cluster_key instead of using existing_cluster_id or new_cluster per task
- `max_concurrent_runs` (`integer`, optional): Maximum number of concurrent runs allowed for this job
- `tags` (`object`, optional): Key-value tags attached to the job
- `timeout_seconds` (`integer`, optional): Timeout applied to each run of this job

### `databricksworkspace_job_delete`

Delete a Databricks job by job ID. Active runs are not stopped; the job is removed once its runs finish.

Parameters:

- `job_id` (`integer`, required): The unique identifier of the job to delete.

### `databricksworkspace_job_get`

Get details of a specific Databricks job by job ID.

Parameters:

- `job_id` (`integer`, required): The unique identifier of the job.

### `databricksworkspace_job_run_get`

Retrieve the metadata and status of a single Databricks job run, including its state, start/end times, and task results. Complements databricksworkspace_job_runs_list, which only lists summaries.

Parameters:

- `run_id` (`string`, required): The ID of the job run to retrieve.

### `databricksworkspace_job_run_now`

Trigger an immediate run of a Databricks job by job ID.

Parameters:

- `job_id` (`integer`, required): The unique identifier of the job to run.

### `databricksworkspace_job_runs_list`

List all job runs in the Databricks workspace, optionally filtered by job ID.

Parameters:

- `job_id` (`integer`, optional): Filter runs by a specific job ID. If omitted, returns runs for all jobs.
- `limit` (`integer`, optional): The number of runs to return. Defaults to 20. Maximum is 1000.
- `offset` (`integer`, optional): The offset of the first run to return.

### `databricksworkspace_jobs_list`

List all jobs in the Databricks workspace.

Parameters:

- `limit` (`integer`, optional): The number of jobs to return. Defaults to 20. Maximum is 100.
- `offset` (`integer`, optional): The offset of the first job to return.

### `databricksworkspace_permissions_get`

Retrieve the access control list (permissions) for a Databricks object such as a cluster, job, notebook, or SQL warehouse.

Parameters:

- `request_object_id` (`string`, required): The ID of the object to retrieve permissions for.
- `request_object_type` (`string`, required): The type of object to retrieve permissions for

### `databricksworkspace_permissions_update`

Update the access control list (permissions) for a Databricks object such as a cluster, job, notebook, or SQL warehouse. Existing grants not included in the access control list are preserved unless explicitly overridden.

Parameters:

- `access_control_list` (`array`, required): JSON array of access control entries to apply. Each entry has one grantee key (user_name, group_name, or service_principal_name) and a permission_level.
- `request_object_id` (`string`, required): The ID of the object to update permissions for.
- `request_object_type` (`string`, required): The type of object to update permissions for

### `databricksworkspace_repo_create`

Clone a Git repository into the Databricks workspace.

Parameters:

- `provider` (`string`, required): The Git provider hosting the repository
- `url` (`string`, required): The HTTPS clone URL of the Git repository
- `path` (`string`, optional): Desired workspace path for the cloned repo. If omitted, Databricks places it under /Repos/{user}/{repo name}.

### `databricksworkspace_repo_delete`

Permanently remove a Git repo from the Databricks workspace. This unlinks the repo and deletes its workspace files; it does not affect the remote Git repository. This action is irreversible.

Parameters:

- `repo_id` (`string`, required): The ID of the repo to delete.

### `databricksworkspace_repo_update`

Check out a different branch or tag in a Databricks repo, or pull the latest changes for the currently checked-out branch.

Parameters:

- `repo_id` (`string`, required): The ID of the repo to update.
- `branch` (`string`, optional): Name of the branch to check out. Provide either branch or tag, not both.
- `tag` (`string`, optional): Name of the tag to check out. Provide either branch or tag, not both.

### `databricksworkspace_repos_list`

List Git repositories linked into the Databricks workspace, optionally filtered by path prefix.

Parameters:

- `next_page_token` (`string`, optional): Token for the next page of results
- `path_prefix` (`string`, optional): Filter repos to only those whose workspace path starts with this prefix

### `databricksworkspace_scim_me_get`

Retrieve information about the currently authenticated service principal in the Databricks workspace.

### `databricksworkspace_scim_users_list`

List all users in the Databricks workspace using the SCIM v2 API.

Parameters:

- `count` (`integer`, optional): Maximum number of results to return per page.
- `filter` (`string`, optional): SCIM filter expression to narrow results (e.g. userName eq "user@example.com").
- `startIndex` (`integer`, optional): 1-based index of the first result to return. Used for pagination.

### `databricksworkspace_secret_delete`

Delete a secret key from a Databricks secret scope. This action is irreversible.

Parameters:

- `key` (`string`, required): The key name of the secret to delete.
- `scope` (`string`, required): The name of the secret scope containing the key.

### `databricksworkspace_secret_put`

Create or overwrite a secret in a Databricks secret scope. Provide exactly one of string_value or bytes_value (base64-encoded).

Parameters:

- `key` (`string`, required): The key name under which to store the secret.
- `scope` (`string`, required): The name of the secret scope to write the secret into.
- `bytes_value` (`string`, optional): Base64-encoded bytes value to store. Use instead of string_value.
- `string_value` (`string`, optional): The UTF-8 string value to store. Use instead of bytes_value.

### `databricksworkspace_secret_scope_create`

Create a new secret scope in the Databricks workspace, backed by Databricks or an Azure Key Vault.

Parameters:

- `scope` (`string`, required): Name of the new secret scope.
- `backend_azure_keyvault` (`object`, optional): Azure Key Vault connection details. Required when scope_backend_type is AZURE_KEYVAULT.
- `initial_manage_principal` (`string`, optional): The initial principal granted MANAGE permission on this scope. Only 'users' is supported for Databricks-backed scopes.
- `scope_backend_type` (`string`, optional): The backend used to store the scope's secrets

### `databricksworkspace_secrets_list`

List the secret keys stored within a Databricks secret scope. Only key names and metadata are returned, never secret values.

Parameters:

- `scope` (`string`, required): The name of the secret scope to list keys from.

### `databricksworkspace_secrets_scopes_list`

List all secret scopes available in the Databricks workspace.

### `databricksworkspace_sql_statement_cancel`

Cancel a running SQL statement by its statement ID.

Parameters:

- `statement_id` (`string`, required): The ID of the SQL statement to cancel.

### `databricksworkspace_sql_statement_execute`

Execute a SQL statement on a Databricks SQL warehouse and return the results.

Parameters:

- `statement` (`string`, required): The SQL statement to execute.
- `warehouse_id` (`string`, required): The ID of the SQL warehouse to execute the statement on.
- `catalog` (`string`, optional): The catalog to use for the statement execution.
- `schema` (`string`, optional): The schema to use for the statement execution.

### `databricksworkspace_sql_statement_get`

Get the status and results of a previously executed SQL statement by its statement ID.

Parameters:

- `statement_id` (`string`, required): The ID of the SQL statement to retrieve.

### `databricksworkspace_sql_statement_result_chunk_get`

Fetch a specific result chunk for a paginated SQL statement result. Use when a statement result has multiple chunks (large result sets).

Parameters:

- `chunk_index` (`integer`, required): The index of the result chunk to fetch (0-based).
- `statement_id` (`string`, required): The ID of the SQL statement.

### `databricksworkspace_sql_warehouse_get`

Get details of a specific Databricks SQL warehouse by its ID.

Parameters:

- `warehouse_id` (`string`, required): The ID of the SQL warehouse to retrieve.

### `databricksworkspace_sql_warehouse_start`

Start a stopped Databricks SQL warehouse by its ID.

Parameters:

- `warehouse_id` (`string`, required): The ID of the SQL warehouse to start.

### `databricksworkspace_sql_warehouse_stop`

Stop a running Databricks SQL warehouse by its ID.

Parameters:

- `warehouse_id` (`string`, required): The ID of the SQL warehouse to stop.

### `databricksworkspace_sql_warehouses_list`

List all SQL warehouses available in the Databricks workspace.

### `databricksworkspace_unity_catalog_catalogs_list`

List all Unity Catalogs accessible to the service principal in the Databricks workspace.

### `databricksworkspace_unity_catalog_schemas_list`

List all schemas within a Unity Catalog in the Databricks workspace.

Parameters:

- `catalog_name` (`string`, required): The name of the catalog to list schemas from.

### `databricksworkspace_unity_catalog_tables_list`

List all tables and views within a schema in a Unity Catalog in the Databricks workspace.

Parameters:

- `catalog_name` (`string`, required): The name of the catalog containing the schema.
- `schema_name` (`string`, required): The name of the schema to list tables from.

### `databricksworkspace_workspace_delete`

Permanently delete a notebook or directory from the Databricks workspace. This action is irreversible.

Parameters:

- `path` (`string`, required): The absolute workspace path of the object to delete.
- `recursive` (`boolean`, optional): Whether to recursively delete a directory and its contents

### `databricksworkspace_workspace_export`

Export a Databricks notebook or directory. Directories can only be exported as DBC archives. The response contains the content base64-encoded.

Parameters:

- `path` (`string`, required): The absolute workspace path of the notebook or directory to export.
- `format` (`string`, optional): Export format for the object

### `databricksworkspace_workspace_get_status`

Get metadata about a Databricks workspace object (notebook, folder, or file), including its object type, language, and object ID.

Parameters:

- `path` (`string`, required): The absolute workspace path of the object.

### `databricksworkspace_workspace_import`

Import a notebook into the Databricks workspace from base64-encoded content. Can also be used to create a notebook from source text.

Parameters:

- `content_base64` (`string`, required): Base64-encoded content of the notebook to import.
- `path` (`string`, required): The absolute workspace path to import the notebook to.
- `format` (`string`, optional): Format of the content being imported
- `language` (`string`, optional): Programming language of the notebook, required when format is SOURCE
- `overwrite` (`boolean`, optional): Whether to overwrite an existing object at the destination path

### `databricksworkspace_workspace_list`

List the contents (notebooks, folders, libraries) of a Databricks workspace directory.

Parameters:

- `path` (`string`, required): The absolute workspace path to list.


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
