Set the MLflow registry URI to Unity Catalog: mlflow.set_registry_uri('databricks-uc') — this is the default in MLflow 3.x
Register a model to a three-level namespace: mlflow.register_model('runs:/<run_id>/model', 'catalog.schema.model_name')
Grant access using Databricks SDK or SQL: GRANT EXECUTE ON FUNCTION catalog.schema.model_name TO principal — EXECUTE covers inference; USE SCHEMA and USE CATALOG grants are also required on parent objects
Set aliases on model versions: MlflowClient().set_registered_model_alias('catalog.schema.model_name', 'champion', version_number)
Attach tags and descriptions for governance: MlflowClient().set_registered_model_tag('catalog.schema.model_name', 'team', 'fraud-detection')
View model lineage and audit history in the Databricks Catalog Explorer UI under the registered model's detail page
Known gotchas
Unity Catalog model names must follow the three-level pattern catalog.schema.model — omitting any level defaults to the legacy workspace registry, not Unity Catalog
Users need USE CATALOG on the catalog and USE SCHEMA on the schema in addition to model-level grants; granting EXECUTE alone is insufficient without the parent-level permissions
Cross-workspace access to Unity Catalog models requires a shared metastore — models in workspace-level registries cannot be shared across workspaces
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp