Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica está en versión preliminar pública.
El servidor MCP SQL de Databricks es un servidor MCP gestionado por Azure Databricks que permite a los agentes ejecutar SQL generado por IA sobre tus tablas del Catálogo de Unity para leer y escribir datos, con acceso gobernado por permisos del Catálogo de Unity. Las consultas se ejecutan de forma asíncrona: el agente llama a la herramienta para iniciar una consulta y luego consulta hasta que la respuesta se completa.
Utiliza este servidor para desarrollo e ingeniería de datos: ejecutando una consulta específica que tú o tu agente de programación hayan redactado, inspeccionando esquemas, validando la sintaxis SQL y creando pipelines de datos a partir de herramientas de codificación con IA. Te da un control determinista sobre el SQL exacto que se ejecuta.
| Patrón de URL | Ámbito de OAuth |
|---|---|
https://<workspace-hostname>/api/2.0/mcp/sql |
sql |
Servidores Genie One MCP frente a Databricks SQL MCP
Para casos de uso analíticos, donde un usuario hace una pregunta empresarial en lenguaje natural, utiliza el servidor MCP de Genie One . Genie resuelve términos de negocio a través de Genie Ontology, tu capa semántica gobernada, por lo que produce respuestas más precisas que un agente que escribe SQL directamente sobre tablas en bruto.
Utiliza el servidor SQL MCP de Databricks cuando necesites ejecutar una consulta específica que ya hayas escrito, como validar la sintaxis o crear una pipeline.
Parámetros _meta
_meta los parámetros son valores de configuración que preestableces en el código de tu agente para establecer el comportamiento del servidor MCP de forma determinista, en lugar de dejar que el LLM los genere dinámicamente en el momento de la llamada a la herramienta. El servidor SQL MCP de Databricks soporta el siguiente _meta parámetro:
| Nombre del parámetro | Tipo | Descripción |
|---|---|---|
warehouse_id |
str |
El identificador del almacén de datos SQL que se va a usar para ejecutar consultas. Ejemplo: "a1b2c3d4e5f67890"Si no se especifica, el sistema selecciona automáticamente un almacén en función de los recursos y los permisos. |
Ejemplo: especificar un almacén SQL para las consultas de Databricks SQL
En este ejemplo se muestra cómo usar el warehouse_id_meta parámetro para especificar qué almacenamiento SQL ejecuta consultas desde el servidor MCP de SQL de Databricks mediante el SDK de MCP oficial de Python.
En este escenario, deseas:
- Usar un almacenamiento SQL específico para la ejecución de consultas en lugar de permitir que el sistema seleccione uno automáticamente.
- Comprobación del rendimiento coherente mediante el enrutamiento de consultas a un almacenamiento dedicado
Para ejecutar este ejemplo, configure el entorno de Python para el desarrollo de MCP administrado:
Para encontrar su identificador de SQL Warehouse, consulte Conectar a un SQL Warehouse.
# Import required libraries for MCP client and Databricks authentication
import asyncio
from databricks.sdk import WorkspaceClient
from databricks_mcp.oauth_provider import DatabricksOAuthClientProvider
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.session import ClientSession
from mcp.types import CallToolRequest, CallToolResult
async def run_dbsql_tool_call_with_meta():
# Initialize Databricks workspace client for authentication
workspace_client = WorkspaceClient()
# Construct the MCP server URL for DBSQL
# Replace <workspace-hostname> with your workspace hostname
mcp_server_url = "https://<workspace-hostname>/api/2.0/mcp/sql"
# Establish connection to the MCP server with OAuth authentication
async with streamablehttp_client(
url=mcp_server_url,
auth=DatabricksOAuthClientProvider(workspace_client),
) as (read_stream, write_stream, _):
# Create an MCP session for making tool calls
async with ClientSession(read_stream, write_stream) as session:
# Initialize the session before making requests
await session.initialize()
# Create the tool call request with warehouse_id in _meta
request = CallToolRequest(
method="tools/call",
params={
# Tool name for executing SQL queries
"name": "execute_sql",
# Dynamic arguments - typically provided by your AI agent
"arguments": {
"query": "SELECT * FROM my_catalog.my_schema.my_table LIMIT 10"
},
# Meta parameters - specify which warehouse to use
"_meta": {
"warehouse_id": "a1b2c3d4e5f67890" # Your SQL warehouse ID
}
}
)
# Send the request and get the response
response = await session.send_request(request, CallToolResult)
return response
# Execute the async function and get results
response = asyncio.run(run_dbsql_tool_call_with_meta())
Limitations
- Sin contexto semántico. El servidor ejecuta el SQL que se le asigna. No resuelve términos de negocio, definiciones métricas ni relaciones de tablas, por lo que un agente debe inferirlos solo a partir de esquemas. Para preguntas de analítica hechas en lenguaje natural, usa el servidor MCP de Genie One, que fundamenta las respuestas en Ontología Genie.
- Tamaño del resultado. El servidor trunca grandes conjuntos de resultados en las respuestas de la herramienta para evitar agotar la ventana de contexto del modelo. Devuelve menos filas y columnas, o agrega en SQL para mantener los resultados dentro del límite.
- Ejecución asincrónica. Las consultas no se devuelven de forma sincrónica. El agente inicia una consulta y, a continuación, realiza sondeos hasta que se completa, por lo que debe administrar los estados en curso.