# Databricks — how to use (mcp.ai)

Your Databricks Lakehouse in natural language: run SQL on your SQL warehouses, track long-running queries, and explore Unity Catalog (catalogs, schemas, tables and columns), via the official workspace REST API. Connect with your workspace URL and a Personal Access Token (PAT).

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_databricks?ms=1785595140000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `databricks_cancel_statement`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/databricks`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/databricks/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/databricks/cancel/statement` — Cancela um ou mais statements em execução por id. Aceita lista (`statement_ids`).
  - body: { statement_ids: string[], account?: string }
- `POST https://api.mcp.ai/api/databricks/current/user` — Identifica o usuário do PAT no workspace (whoami via SCIM Me). Útil pra confirmar qual conta/host está conectado e validar o token.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/databricks/get/statement` — Status + resultado de um ou mais statements por id (polling de queries longas que voltaram PENDING/RUNNING do run_sql). Aceita lista (`statement_ids`).
  - body: { statement_ids: string[], account?: string }
- `POST https://api.mcp.ai/api/databricks/get/table` — Detalha uma ou mais tabelas (colunas, tipos) por nome completo `catalog.schema.table`. Aceita lista (`full_names`).
  - body: { full_names: string[], account?: string }
- `POST https://api.mcp.ai/api/databricks/get/warehouse` — Detalha um ou mais SQL warehouses por id. Aceita lista (`ids`).
  - body: { ids: string[], account?: string }
- `POST https://api.mcp.ai/api/databricks/list/accounts` — Lista os workspaces Databricks conectados a este install — host, label.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/databricks/list/catalogs` — Lista os catálogos do Unity Catalog visíveis ao PAT (name, comment, owner).
  - body: { account?: string }
- `POST https://api.mcp.ai/api/databricks/list/schemas` — Lista os schemas (databases) de um catálogo Unity. Informe `catalog_name`.
  - body: { catalog_name: string, account?: string }
- `POST https://api.mcp.ai/api/databricks/list/tables` — Lista as tabelas de um schema Unity (name, table_type, data_source_format). Informe `catalog_name` e `schema_name`.
  - body: { catalog_name: string, schema_name: string, account?: string }
- `POST https://api.mcp.ai/api/databricks/list/warehouses` — Lista os SQL warehouses do workspace (id, name, state, cluster_size, warehouse_type). Use o `id` em databricks_run_sql (ou deixe o run_sql escolher um RUNNING automaticamente).
  - body: { account?: string }
- `POST https://api.mcp.ai/api/databricks/run/sql` — Executa uma instrução SQL num SQL warehouse (Statement Execution API). Retorna colunas + linhas quando termina dentro do wait_timeout; senão devolve statement_id + state pra polling via databricks_get
  - body: { statement: string, warehouse_id?: string, catalog?: string, schema?: string, parameters?: object[], row_limit?: integer, wait_timeout?: string, on_wait_timeout?: string, account?: string, warehouse_ids?: string[] }

## Example prompts
- "List my Databricks SQL warehouses"
- "Run: SELECT count(*) FROM samples.tpch.lineitem"
- "What catalogs and tables exist in Unity Catalog?"

## More
- Page: https://mcp.ai/databricks
- Agent spec (llms.txt): https://mcp.ai/databricks/llms.txt
- Postman collection: https://mcp.ai/databricks/postman.json
