Databricks Field Guide

Databricks Genie One MCP: Beta URL ends 30 November

Reviewed by TechFabric engineers. How we write this guide →

The string /api/2.0/mcp/genie is about to become a landmine in agent configs. Databricks' what's coming page puts end of life for the bare Genie One MCP Beta endpoint on 30 November 2026 (it had been 31 October), after which those requests fail, and the Genie One MCP page (29 October 2026) sends that bare path to generally available system.ai.genie_one_mcp. The same prefix, with a space id after it, is still how you reach a curated Genie Agent. We'd rather miss a bare Beta URL than rewrite a Genie Agent onto Genie One.

Loud miss, silent rewrite #

A bare Beta client that we forget dies on 30 November where everyone can see it. A Genie Agent client that we "fix" keeps answering, only the answer is now Genie One across the workspace, and the curated agent is gone from the path. That is the worse failure: the chat still returns a chart, nobody opens an incident, and the next person to debug it has no space id left to find. The built-in MCP page already keeps the longer Genie Agent URL as its own Public Preview server, with scope genie and calls that bypass Unity Gateway. The glossary treats the two names as different products for the same reason. So before we open Unity Gateway, we'd classify every config that matches the prefix:

def genie_mcp_client(path):
    """path is the MCP server URL's path, as the client config holds it."""
    parts = path.strip("/").split("/")
    if parts[:4] != ["api", "2.0", "mcp", "genie"]:
        return "not this retirement"
    if len(parts) == 4:
        return "move: bare Genie One Beta"
    return "leave: Genie Agent, space id still in the path"

assert "leave" in genie_mcp_client("api/2.0/mcp/genie/abc123")
assert "move" in genie_mcp_client("api/2.0/mcp/genie")
assert genie_mcp_client("api/2.0/mcp/sql") == "not this retirement"

That classifier is our check. It is not a Databricks API. We'd run it over coding-agent MCP files, job secrets and notebook widgets the same way, and every leave row stays off the cutover list. The toolkit's Genie readiness check reads a space's description, its warehouse's auto-stop and its column comments, and never sees this path, which is why the classifier has to live next to the clients.

Cut over the move rows together #

For a move row the Genie One page wants the Unity Gateway MCP URL with system.ai.genie_one_mcp and the workspace id in o, the OAuth scope ai-gateway, and EXECUTE on that MCP for the identity that will call (Share an MCP). We'd change those three in one sitting, and we'd confirm the grant on the job's principal, not on the person who tested in the browser, because a default EXECUTE on system.ai can make the editor succeed while the overnight principal still fails. On-behalf-of auth is what that page recommends for interactive callers; a service principal is allowed for automation. After 30 November we'd leave the classifier in CI, so a config copied from an old repository is caught as a move row in review instead of failing overnight. New agents we'd point at system.ai.genie_one_mcp from the start.

yes

no

URL matches mcp/genie

Space id after genie

Leave it: Genie Agent

Move to system.ai.genie_one_mcp

Keeps the curated agent

Fails loudly if missed after 30 Nov

Loud miss versus silent rewrite

Next

Databricks real-time mode for Lakeflow pipelines reaches GA