Summary
Let your AI work with your Databricks workspace: run SQL on a warehouse, explore Unity Catalog catalogs, schemas and tables, check clusters, warehouses, jobs and runs, read notebooks, and start or stop compute or trigger jobs after your confirmation. With a personal access token.
Guided setup
Connect Databricks to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Databricks in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Databricks
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Databricks, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Databricks + Microsoft Copilot
Let your AI work with your Databricks workspace: run SQL on a warehouse, explore Unity Catalog catalogs, schemas and tables, check clusters, warehouses, jobs and runs, read notebooks, and start or stop compute or trigger jobs after your confirmation. With a personal access token.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
DATABRICKS_HOST, DATABRICKS_TOKEN
Step 1 — Get credentials
- Open your Databricks workspace and copy its host from the address bar into
DATABRICKS_HOST, withouthttps://, for exampledbc-a1b2c3d4-e5f6.cloud.databricks.com(AWS),adb-1234567890123456.7.azuredatabricks.net(Azure) or1234567890123456.7.gcp.databricks.com(Google Cloud). - Click your user name at the top right, then Settings → Developer → Access tokens → Manage → Generate new token. Give it a comment and a lifetime and copy it into
DATABRICKS_TOKEN: Databricks shows it only once. Your workspace admin must allow personal access tokens. - For least privilege, create the token for a service principal that has only the grants the AI needs: USE CATALOG, USE SCHEMA and SELECT on the data, and CAN USE on one SQL warehouse. The connector acts with the rights of the token's user.
- Install the connector and run
databricks_get_current_userto see who the AI acts as.
Compute costs money, so the AI asks first: Databricks bills compute in DBUs. A query on a stopped SQL warehouse starts it automatically, and a running warehouse or cluster costs money until it stops by itself. Before it runs SQL, the AI checks the warehouse with databricks_list_warehouses; if it is not running, it tells you the query will start it, and how big it is, and waits for your yes. A serverless warehouse starts in seconds.
SQL on a warehouse: databricks_execute_sql runs one statement and returns up to 200 rows by default (at most 10,000). For anything that changes data, tables or permissions (INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, GRANT) the AI shows you the exact statement and waits for an explicit yes; the token's Unity Catalog grants decide what is allowed at all. Long statements keep running in the background: databricks_get_statement follows them and databricks_get_statement_chunk fetches more rows.
Unity Catalog: databricks_list_catalogs, databricks_list_schemas, databricks_list_tables and databricks_get_table show catalogs, schemas, tables, views and their columns, so the AI writes SQL against the right names.
Every other change asks first too: databricks_start_cluster, databricks_terminate_cluster, databricks_start_warehouse, databricks_stop_warehouse, databricks_run_job, databricks_cancel_job_run and databricks_cancel_statement. Terminating a cluster or stopping a warehouse ends the queries and notebooks running on it. This connector deletes nothing.
Jobs: databricks_list_jobs and databricks_get_job show jobs, schedules, parameters and tasks; databricks_run_job starts a run now; databricks_list_job_runs, databricks_get_job_run and databricks_get_run_output show runs, task states, errors and notebook output (kept for 60 days).
Notebooks and files: databricks_list_workspace browses folders and notebooks, databricks_export_notebook returns the source code of a small notebook, databricks_list_volume_files lists a Unity Catalog volume and databricks_list_dbfs lists legacy DBFS paths. The Spark configuration, environment variables and init scripts of clusters are left out because they can contain secrets.
Common errors: 401, or 403 Invalid access token: the token is wrong, expired or revoked, or DATABRICKS_HOST points at another workspace. 403 PERMISSION_DENIED: the user lacks a grant, such as USE CATALOG, SELECT, CAN USE on the warehouse or CAN MANAGE RUN on the job. 404 RESOURCE_DOES_NOT_EXIST: wrong id or name, or Unity Catalog is not enabled for the workspace. 429: too many requests; wait and retry.
The connector does not create, edit or delete clusters, warehouses, jobs, tables or files, does not upload files, and does not cover Delta Live Tables pipelines, MLflow, Model Serving, Genie or Vector Search.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Databrickstools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
databricks_get_current_user | Get the Databricks user or service principal behind the token: user name, display name, id, active flag, groups and entitlements |
databricks_list_clusters | List the workspace's clusters (all-purpose and job clusters) with id, name, state, Spark version, node types, size or autoscale range… |
databricks_get_cluster | Get one cluster's state and configuration: Spark version, node types, workers or autoscale range, auto-termination, access mode, memory and… |
databricks_start_cluster | Start a terminated cluster |
databricks_terminate_cluster | Terminate (stop) a running cluster |
databricks_list_warehouses | List the SQL warehouses with id, name, state (RUNNING, STOPPED, STARTING), size, type, serverless flag, cluster counts, active sessions and… |
databricks_get_warehouse | Get one SQL warehouse: state, size, type, serverless flag, scaling range, active sessions, auto-stop minutes, health and its JDBC/ODBC… |
databricks_start_warehouse | Start a stopped SQL warehouse |
databricks_stop_warehouse | Stop a running SQL warehouse |
databricks_execute_sql | Run one SQL statement on a SQL warehouse and return columns and up to row_limit rows (default 200) |
databricks_get_statement | Get the state and result of a SQL statement started with databricks_execute_sql: status (PENDING, RUNNING, SUCCEEDED, FAILED, CANCELED)… |
databricks_get_statement_chunk | Get a further chunk of rows of a finished SQL statement, by chunk index (next_chunk_index of the previous answer) |
databricks_cancel_statement | Cancel a running SQL statement |
databricks_list_jobs | List the workspace's jobs with id, name, creator, schedule and creation time |
databricks_get_job | Get one job: name, description, run-as user, schedule or trigger, job parameters, concurrency, timeout and its tasks (key, dependencies… |
databricks_run_job | Trigger a run of an existing job now |
databricks_list_job_runs | List job runs, newest first, with run id, job id, state, start and end time, duration and a link to the run page |
databricks_get_job_run | Get one job run: state and result, times, trigger, parameters and each task's run_id, state and run page link |
databricks_get_run_output | Get the output of one task run: notebook exit value, SQL output, error message and trace, and logs |
databricks_cancel_job_run | Cancel a job run (asynchronously) |
databricks_list_catalogs | List the Unity Catalog catalogs the user can see, with name, type, owner and comment |
databricks_list_schemas | List the schemas of a Unity Catalog catalog with full name, owner and comment |
databricks_list_tables | List the tables and views of a Unity Catalog schema with full name, type (MANAGED, EXTERNAL, VIEW, MATERIALIZED_VIEW), format, owner and… |
databricks_get_table | Get a Unity Catalog table or view by full name: columns with types, nullability, comments and partitioning, table type, format, owner… |
databricks_list_workspace | List the contents of a workspace folder: notebooks (with language), files, folders, repos and libraries, with path, object id and… |
databricks_export_notebook | Get the source code of one notebook or workspace file as text (Python, SQL, Scala or R source) |
databricks_list_volume_files | List the files and folders in a Unity Catalog volume directory, with name, size and modification time |
databricks_list_dbfs | List a legacy DBFS directory (path, size, folder flag, modification time) |
Example prompts
- "Which SQL warehouses do we have, and which ones are running right now?"
- "Show me the tables in main.sales and the columns of the orders table."
- "What was our revenue by country last month? Use the serverless warehouse, and tell me first if it has to start."
- "Did last night's nightly_etl job succeed? If a task failed, show me its error."
- "Run the weekly_report job now, after you tell me what it does and which cluster it uses."
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?