The point of the describe_uc_* tools is to make the documentation you already put into Unity Catalog usable by the model, so its SQL is informed rather than guessed. Lineage goes past table-to-table — it surfaces the notebooks that produce a table, letting the agent read the actual transformation logic. Grant the token narrowly, because execute_sql_query runs whatever it is given.
A server that exposes Databricks Unity Catalog metadata and SQL execution, so an agent can navigate catalogs, read table structure and lineage, and query — returning descriptive output as Markdown.
- list_uc_catalogs lists catalogs with names, descriptions and types
- describe_uc_catalog lists a catalog's schemas; describe_uc_schema lists a schema's tables, with include_columns for column detail
- describe_uc_table gives a table's structure, and with include_lineage adds upstream and downstream tables plus the notebooks and jobs that read or write it
- execute_sql_query runs a SQL statement via the Databricks SDK and returns formatted results
- Lineage returns notebook paths, so the agent can go read the transformation code behind a table
Python 3.10+, and three environment variables — DATABRICKS_HOST, DATABRICKS_TOKEN and DATABRICKS_SQL_WAREHOUSE_ID (the warehouse ID is used for lineage and SQL execution). Install with pip or uv against requirements.txt. The token's identity needs USE CATALOG, USE SCHEMA and SELECT on what it touches, plus CAN_USE on the warehouse; a service principal with narrow permissions is the recommended setup.
One command plus a key — uvx databricks, then supply credentials
