Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
SQL MCP Server находится в предварительной версии, и эта документация, и реализация подсистемы подлежит изменению в течение этого ознакомительного периода.
В этом кратком руководстве показано, как развернуть SQL MCP Server в приложениях контейнеров Azure. После развертывания вы можете подключиться к нему из Visual Studio Code (VS Code), Microsoft Foundry или любого другого клиента протокола контекста модели (MCP) в качестве удаленной конечной точки сервера.
Предпосылки
Подписка Azure
Вам нужна активная подписка Azure. Если у вас нет одного:
https://azure.microsoft.com/free
Azure CLI (Интерфейс командной строки для Azure)
Установите Azure CLI для развертывания ресурсов:
Виндоус
winget install Microsoft.AzureCLI
macOS
brew install azure-cli
.NET 9+
Возможно, у вас уже установлено это средство. Запустите dotnet --version и убедитесь, что он сообщает версию 9 или более позднюю.
Виндоус
winget install Microsoft.DotNet.Runtime.9
CLI конструктора API для данных
dotnet new tool-manifest
dotnet tool install microsoft.dataapibuilder --prerelease
Замечание
SQL MCP Server в настоящее время находится в предварительном выпуске. Использование флага --prerelease гарантирует, что вы получите последнюю версию конструктора API данных со всеми функциями, используемыми в этом кратком руководстве.
PowerShell
Установите PowerShell , если он еще не установлен.
dotnet tool install --global PowerShell
Шаг 1. Создание и развертывание базы данных SQL Azure
1. Вход в Azure
az login
az account set --subscription "<your-subscription-id>"
2. Задайте переменные для развертывания
$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. Создание группы ресурсов
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
4. Создание 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. Настройка брандмауэра для разрешения служб 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. Создание базы данных
az sql db create \
--resource-group $RESOURCE_GROUP \
--server $SQL_SERVER \
--name $SQL_DATABASE \
--service-objective S0
7. Создание таблицы Products с примерами данных
Сначала получите строку подключения:
$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;"
Создание файла скрипта SQLcreate-products.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);
Выполните его с помощью VS Code, SQL Server Management Studio или sqlcmd.
Шаг 2. Настройка SQL MCP Server
1. Создайте dab-config.json
Инициализация конфигурации:
dab init `
--database-type mssql `
--connection-string "@env('MSSQL_CONNECTION_STRING')" `
--host-mode Production `
--config dab-config.json
2. Добавление сущности Продукты с описаниями
dab add Products `
--source dbo.Products `
--permissions "anonymous:read" `
--description "Product catalog with pricing, category, and inventory information"
3. Укажите контекст агента ИИ с описанием полей
Добавьте описания полей, чтобы помочь агентам ИИ понять схему базы данных:
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"
Шаг 3. Развертывание СЕРВЕРА SQL MCP в приложениях контейнеров Azure
1. Создание среды для контейнерных приложений
$CONTAINERAPP_ENV = "sql-mcp-env"
$CONTAINERAPP_NAME = "sql-mcp-server"
az containerapp env create `
--name $CONTAINERAPP_ENV `
--resource-group $RESOURCE_GROUP `
--location $LOCATION
2. Создание конфигурации в кодировке 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. Развертывание контейнера 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
Ваши группы ресурсов должны, например, быть следующими:
4. Получение URL-адреса конечной точки 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"
Сохраните этот URL-адрес— вы используете его для подключения от клиентов MCP.
5. Протестируйте развертывание
curl "https://$MCP_URL/health"
Вы должны увидеть здоровый ответ.
Подключение из клиентов MCP
Сервер SQL MCP теперь развернут и готов к использованию. Вот как подключиться с помощью различных клиентов:
Visual Studio Code (VS Code)
Следуйте краткому руководству по VS Code и используйте URL-адрес развернутого сервера MCP вместо запуска локально.
Из Microsoft Foundry
Чтобы добавить сервер MCP как пользовательский инструмент MCP, следуйте руководству по быстрому началу работы с Microsoft Foundry.
Другие клиенты MCP
Используйте URL-адрес сервера MCP из шага 3.4 для подключения от любого клиента, совместимого с MCP.
Мониторинг и устранение неполадок
Просмотр журналов контейнерных приложений
az containerapp logs show \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--follow
Проверка работоспособности конечной точки MCP
curl "https://$MCP_URL/health"
Общие проблемы
Ошибка подключения
- Убедитесь, что для входящего трафика для контейнерных приложений задано значение
external - Проверка правильности строки подключения SQL
- Проверка правил брандмауэра в SQL Azure
Данные не возвращаются
- Проверка создания и заполнения таблицы Products
- Проверьте разрешения сущности в
dab-config.json - Просмотр журналов контейнерных приложений на наличие ошибок
Производительность замедляется
- Рассмотрите возможность увеличения выделения ЦП и памяти
- Проверьте, нужно ли масштабировать реплики
- Просмотр метрик Application Insights
Рекомендации по обеспечению безопасности для рабочей среды
- Включите проверку подлинности — настройте проверку подлинности Microsoft Entra ID вместо анонимного доступа
- Использование управляемых удостоверений . Разрешить приложениям-контейнерам проходить проверку подлинности в SQL с помощью управляемого удостоверения
- Реализовать CORS – Ограничить, каким доменам разрешен доступ к вашему MCP серверу.
- Включение ограничения скорости — защита от злоупотреблений
- Безопасное использование Azure Key Vault — хранение строк подключения
- Мониторинг с помощью Application Insights — отслеживание использования и производительности
- Ограничение разрешений. Предоставление необходимых уровней доступа
Очистите ресурсы
После завершения удалите группу ресурсов, чтобы удалить все ресурсы:
az group delete --name $RESOURCE_GROUP --yes --no-wait