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
SQL MCP Server está en versión preliminar y esta documentación y la implementación del motor está sujeta a cambios durante este período de evaluación.
En este inicio rápido se muestra cómo implementar SQL MCP Server en Azure Container Apps. Una vez implementado, puede conectarse a él desde Visual Studio Code (VS Code), Microsoft Foundry o cualquier otro cliente de Protocolo de contexto de modelo (MCP) como punto de conexión de servidor remoto.
Prerrequisitos
Suscripción de Azure
Necesita una suscripción de Azure activa. Si no tiene una:
https://azure.microsoft.com/free
CLI de Azure
Instale la CLI de Azure para implementar recursos:
Windows
winget install Microsoft.AzureCLI
macOS
brew install azure-cli
.NET 9+
Es posible que ya tenga instalada esta herramienta. Ejecute dotnet --version y confirme que informa de la versión 9 o posterior.
Windows
winget install Microsoft.DotNet.Runtime.9
CLI del Constructor de API de Datos
dotnet new tool-manifest
dotnet tool install microsoft.dataapibuilder --prerelease
Nota:
SQL MCP Server se encuentra actualmente en versión preliminar. El uso de la --prerelease marca garantiza que obtiene la versión más reciente de Data API Builder con todas las características que se usan en este inicio rápido.
PowerShell
Instale PowerShell si aún no está instalado.
dotnet tool install --global PowerShell
Paso 1: Creación e implementación de Azure SQL Database
1. Inicio de sesión en Azure
az login
az account set --subscription "<your-subscription-id>"
2. Establecer variables para la implementación
$RESOURCE_GROUP = "rg-sql-mcp"
$LOCATION = "eastus"
$SQL_SERVER = "sql-mcp-$(Get-Random -Minimum 1000 -Maximum 9999)"
$SQL_DATABASE = "ProductsDB"
$SQL_ADMIN = "sqladmin"
$SQL_PASSWORD = "<YourStrongPassword123!>"
3. Creación de un grupo de recursos
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
4. Creación de Azure SQL Server
az sql server create \
--name $SQL_SERVER \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--admin-user $SQL_ADMIN \
--admin-password $SQL_PASSWORD
5. Configuración del firewall para permitir servicios de Azure
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP \
--server $SQL_SERVER \
--name AllowAzureServices \
--start-ip-address 0.0.0.0 \
--end-ip-address 0.0.0.0
6. Creación de la base de datos
az sql db create \
--resource-group $RESOURCE_GROUP \
--server $SQL_SERVER \
--name $SQL_DATABASE \
--service-objective S0
7. Crear una tabla Products con datos de ejemplo
Primero obtenga la cadena de conexión:
$CONNECTION_STRING = "Server=tcp:$SQL_SERVER.database.windows.net,1433;Database=$SQL_DATABASE;User ID=$SQL_ADMIN;Password=$SQL_PASSWORD;Encrypt=true;TrustServerCertificate=false;Connection Timeout=30;"
Crear un archivo create-products.sql de script SQL:
CREATE TABLE dbo.Products
(
ProductID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
ProductName NVARCHAR(100) NOT NULL,
Category NVARCHAR(50) NOT NULL,
UnitPrice DECIMAL(10,2) NOT NULL,
UnitsInStock INT NOT NULL,
Discontinued BIT NOT NULL DEFAULT 0
);
INSERT INTO dbo.Products (ProductName, Category, UnitPrice, UnitsInStock, Discontinued) VALUES
('Laptop Pro 15', 'Electronics', 1299.99, 45, 0),
('Wireless Mouse', 'Electronics', 29.99, 150, 0),
('Office Chair', 'Furniture', 249.99, 30, 0),
('Standing Desk', 'Furniture', 599.99, 15, 0),
('Coffee Maker', 'Appliances', 89.99, 60, 0),
('Notebook Set', 'Office Supplies', 12.99, 200, 0),
('USB-C Hub', 'Electronics', 49.99, 80, 0),
('Desk Lamp', 'Furniture', 39.99, 100, 0),
('Bluetooth Headphones', 'Electronics', 149.99, 50, 0),
('Water Bottle', 'Office Supplies', 19.99, 120, 0);
Ejecútelo mediante VS Code, SQL Server Management Studio o sqlcmd.
Paso 2: Configurar SQL MCP Server
1. Crea un dab-config.json
Inicialice la configuración:
dab init `
--database-type mssql `
--connection-string "@env('MSSQL_CONNECTION_STRING')" `
--host-mode Production `
--config dab-config.json
2. Agregar la entidad Productos con descripciones
dab add Products `
--source dbo.Products `
--permissions "anonymous:read" `
--description "Product catalog with pricing, category, and inventory information"
3. Proporcionar contexto del agente de IA con descripciones de campo
Agregue descripciones de campos para ayudar a los agentes de inteligencia artificial a comprender el esquema de la base de datos:
dab update Products `
--fields.name ProductID `
--fields.description "Unique product identifier" `
--fields.primary-key true
dab update Products `
--fields.name ProductName `
--fields.description "Name of the product"
dab update Products `
--fields.name Category `
--fields.description "Product category (Electronics, Furniture, Office Supplies, Appliances)"
dab update Products `
--fields.name UnitPrice `
--fields.description "Retail price per unit in USD"
dab update Products `
--fields.name UnitsInStock `
--fields.description "Current inventory count available for purchase"
dab update Products `
--fields.name Discontinued `
--fields.description "True if product is no longer available for sale"
Paso 3: Implementación de SQL MCP Server en Azure Container Apps
1. Creación de un entorno de Container Apps
$CONTAINERAPP_ENV = "sql-mcp-env"
$CONTAINERAPP_NAME = "sql-mcp-server"
az containerapp env create `
--name $CONTAINERAPP_ENV `
--resource-group $RESOURCE_GROUP `
--location $LOCATION
2. Creación de una configuración codificada en base64
$CONFIG_JSON = Get-Content dab-config.json -Raw
$CONFIG_BYTES = [System.Text.Encoding]::UTF8.GetBytes($CONFIG_JSON)
$CONFIG_BASE64 = [Convert]::ToBase64String($CONFIG_BYTES)
3. Implementación del contenedor de SQL MCP Server
az containerapp create `
--name $CONTAINERAPP_NAME `
--resource-group $RESOURCE_GROUP `
--environment $CONTAINERAPP_ENV `
--image mcr.microsoft.com/azure-databases/data-api-builder:latest `
--target-port 5000 `
--ingress external `
--min-replicas 1 `
--max-replicas 3 `
--secrets "mssql-connection-string=$CONNECTION_STRING" "dab-config-base64=$CONFIG_BASE64" `
--env-vars "MSSQL_CONNECTION_STRING=secretref:mssql-connection-string" "DAB_CONFIG_BASE64=secretref:dab-config-base64" `
--cpu 0.5 `
--memory 1.0Gi
El grupo de recursos debe ser similar al ejemplo siguiente:
4. Obtención de la dirección URL del punto de conexión de MCP
$MCP_URL = az containerapp show `
--name $CONTAINERAPP_NAME `
--resource-group $RESOURCE_GROUP `
--query "properties.configuration.ingress.fqdn" `
--output tsv
Write-Host "Your MCP Server URL: https://$MCP_URL/mcp"
Guarde esta dirección URL: la usará para conectarse desde clientes MCP.
5. Probar la implementación
curl "https://$MCP_URL/health"
Debería ver una respuesta adecuada.
Conexión desde clientes MCP
El servidor MCP de SQL ahora está implementado y listo para usarse. A continuación se muestra cómo conectarse desde varios clientes:
Visual Studio Code (VS Code)
Siga la guía Inicio Rápido con VS Code y utilice la URL del servidor MCP implementado en lugar de ejecutarlo localmente.
De la Microsoft Foundry
Para agregar el servidor MCP como una herramienta de MCP personalizada, siga la guía de inicio rápido con Microsoft Foundry .
Otros clientes MCP
Use la dirección URL del servidor MCP del paso 3.4 para conectarse desde cualquier cliente compatible con MCP.
Supervisión y solución de problemas
Visualización de registros de Container Apps
az containerapp logs show \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--follow
Comprobación del estado del punto de conexión de MCP
curl "https://$MCP_URL/health"
Problemas comunes
Error de conexión
- Asegúrese de que la entrada de Container Apps esté establecida en
external - Comprobación de que la cadena de conexión de SQL es correcta
- Comprobación de reglas de firewall en Azure SQL
No se devuelven datos
- Compruebe que la tabla Products se ha creado y rellenado
- Verificar los permisos de entidad en
dab-config.json - Revisión de los registros de Container Apps para ver si hay errores
El rendimiento es lento
- Considere la posibilidad de aumentar la asignación de CPU/memoria
- Compruebe si necesita aumentar el número de réplicas.
- Revisión de las métricas de Application Insights
Procedimientos recomendados de seguridad para producción
- Habilitar autenticación - Configurar la autenticación de Microsoft Entra ID en lugar del acceso anónimo
- Uso de identidades administradas : permitir que Container Apps se autentique en SQL mediante la identidad administrada
- Implementación de CORS : restricción de los dominios que pueden acceder al servidor MCP
- Habilitación de la limitación de velocidad : protección contra el abuso
- Uso de Azure Key Vault : almacenamiento de cadenas de conexión de forma segura
- Supervisión con Application Insights: seguimiento del uso y el rendimiento
- Restringir permisos: conceda solo los niveles de acceso necesarios.
Limpieza de recursos
Cuando haya terminado, elimine el grupo de recursos para quitar todos los recursos:
az group delete --name $RESOURCE_GROUP --yes --no-wait