Databricks

6 reviewed Dtwo policies for Databricks MCP servers — egress + ingress controls for governing what AI agents can do with Databricks.

On this page
  1. Available policies
  2. Tool naming on the DTwo gateway
  3. Identity claims
  4. Contributing
  5. Ingress policies (4)
  6. Egress policies (2)

Reusable DTwo policies for Databricks MCP servers — the official Databricks managed servers that the Claude Databricks connector uses (Genie, Databricks SQL, AI Search, UC Functions), plus the deprecated databrickslabs/mcp labs server and the community stdio servers (JustTryAI/databricks-mcp-server, RafaelCartenet/mcp-databricks-server). The MCP surface is small but potent: a handful of fixed snake_case verbs (genie_ask, execute_sql, execute_sql_read_only, poll_sql_result, genie_poll_response) plus dynamic {CATALOG}__{SCHEMA}__{NAME} tools for AI Search indexes and UC functions, and — on the community servers — cluster/job control (create_cluster, terminate_cluster, run_job, export_notebook). Its risk profile is dominated by the SQL string inside one argument: the managed execute_sql is explicitly read and write, so INSERT/UPDATE/DELETE/DROP/GRANT are irreversible data-plane and permission changes, the lakehouse routinely holds PII/PHI/cardholder tables that egress in the async poll responses (not the submit call), community PAT auth bypasses per-user Unity Catalog identity entirely, and system.ai proxy services can turn Databricks into a gateway to other SaaS apps. Policies here therefore pair tool-name matching with query-text and response-text inspection.

Available policies

Policy Direction Purpose Framework bundles
default-deny-unknown-tools ingress Pin an audited allowlist of exact Databricks tool names and deny every other Databricks tool (drift-deny + system.ai proxy fence); all non-Databricks servers pass through. soc2, gdpr-ccpa
guard-warehouse-sql ingress Deny any execute_sql* statement that writes, changes schema, changes permissions, or bulk-exports (INSERT/UPDATE/DELETE/MERGE/DROP/TRUNCATE/ALTER/CREATE/GRANT/REVOKE/VACUUM/REORG); fail closed on a missing SQL argument. soc2, pci-dss, gdpr-ccpa, sox
fence-sensitive-schemas ingress Deny SQL and UC-describe calls whose target catalog, schema, or table matches a flagged sensitive namespace, unless the caller is in the data-privacy group. soc2, hipaa, pci-dss, gdpr-ccpa
role-gate-compute-ops ingress Gate cluster and job control (create_cluster, start_cluster, terminate_cluster, run_job, export_notebook) behind a platform-engineering group; read-only inventory tools pass through. soc2, sox
mask-pan-egress egress Mask payment-card numbers (PANs) in SQL/Genie poll responses and AI Search results before the agent sees them (transform-only). pci-dss, gdpr-ccpa
redact-pii-egress egress Redact email, SSN, and phone PII from Databricks tool response payloads to fixed tokens (transform-only). hipaa, gdpr-ccpa

Tool naming on the DTwo gateway

DTwo prefixes tool names with the MCP server name configured on the gateway. A Databricks SQL server registered as databricks-sql will surface tools like databricks-sql-execute_sql, while one registered as dbx will surface dbx-execute_sql. These policies match on the suffix / stem (execute_sql, execute_sql_read_only, poll_sql_result, etc.) so they stay portable across naming conventions and across the three different servers that each expose an execute_sql-ish tool with different auth semantics — but you should always confirm the exact tool name your gateway sends using the dump-input debug technique before deploying. The single-space Genie invoke tool name and the genie_ask question parameter name are unverified in Databricks docs (see each policy's Known limitations); the dynamic {CATALOG}__{SCHEMA}__{NAME} AI Search / UC-function tools have no stable canonical name and need per-deployment enumeration or the allowlist pin.

Identity claims

The identity-gated policies (fence-sensitive-schemas, role-gate-compute-ops) read input.subject.claims.groups with placeholder group names (e.g. data-privacy, and the platform-engineering group used by role-gate-compute-ops). Replace these with your own IdP group names at import time. Missing claims fail closed for grants (no group → not exempt). The remaining policies are single-purpose and require no IdP claims.

Contributing

To add a Databricks policy:

  1. Create apps/databricks/<policy-slug>/ with policy.md and a tests.yaml test file.
  2. Add a row to the table above.
  3. Declare apps: ["databricks"] in the policy frontmatter, plus any industry / bundle slugs that apply.
  4. If the policy fits a framework or thematic bundle, link to it from the matching landing page under bundles/.
  5. Run pnpm manifest from the repo root.

See CONTRIBUTING.md for the full process.

Ingress policies (4)

Egress policies (2)

Updated

to navigate to open