Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
SQL MCP Server находится в предварительной версии, и эта документация, и реализация подсистемы подлежит изменению в течение этого ознакомительного периода.
SQL MCP Server предоставляет разработчикам простой, предсказуемый и безопасный способ переноса агентов ИИ в рабочие процессы данных. Это достигается без предоставления базы данных или использования хрупкого синтаксического анализа естественного языка. Основываясь на абстракции объектов конструктора API данных, RBAC, кэшировании и телеметрии, SQL MCP Server предоставляет производственную среду, которая работает одинаково в REST, GraphQL и MCP. Вы настраиваете его один раз, а движок обрабатывает остальное.
Протокол контекста модели (MCP)
Протокол контекста модели (MCP) — это стандарт, определяющий, как агенты ИИ обнаруживают и вызывают внешние средства. Инструмент — это одна операция, например создание записи или чтение данных. Каждое средство описывает свои входные данные, выходные данные и поведение. MCP предоставляет предсказуемый способ обнаружения и использования возможностей агентов.
СЕРВЕР MCP для SQL
SQL MCP Server — это динамический механизм с открытым исходным кодом корпорации Майкрософт для агентических приложений. Вы настраиваете его с помощью JSON-файла, который определяет следующее:
- Подключение к базе данных
- Какие таблицы, представления или хранимые процедуры следует предоставить
- Разрешения, применяемые к каждому объекту
SQL MCP Server входит в состав построителя API данных (DAB) начиная с версии 1.7. Она предоставляет операции SQL в виде небольшого семейства средств MCP , чтобы агенты могли взаимодействовать с сущностями базы данных с помощью управляемого контракта. Сервер размещается самостоятельно, но для разработчиков он также может выполняться локально через командную строку DAB.
Подсказка
Построитель API данных — это открытый исходный код и бесплатный для использования.
Случаи использования
Ниже приведены некоторые типичные варианты использования ДЛЯ SQL MCP Server:
- Разрешить копилотам или чат-ботам выполнять безопасные операции CRUD
- Создание внутренних автоматизации без написания SQL
- Добавление возможностей агента без предоставления базы данных напрямую
Защита схемы
Построитель данных использует хорошо определенный уровень абстракции сущностей, который перечисляет все таблицы, представления и хранимые процедуры, предоставляемые через API в конфигурации. Этот слой позволяет псевдонимировать имена и столбцы, описывать объекты и параметры, а также ограничивать доступные поля для разных ролей.
Это важно
Построитель API данных (DAB) учитывает роли и предоставляет доступ только к тем сущностям и операциям, к которым текущая роль имеет разрешение.
Так как SQL MCP Server является компонентом построителя API данных, он также использует этот уровень абстракции. Этот подход предотвращает предоставление внутренней схемы внешним потребителям и позволяет определять сложные, а также даже межисточниковые семейства объектов и связей на уровне API.
Решение NL2SQL
SQL MCP Server использует другой подход по сравнению с многими недальновидными серверами баз данных MCP, доступными сегодня. Ключевым примером является то, что мы намеренно не поддерживаем NL2SQL.
Why? Модели не являются детерминированными, и сложные запросы наиболее вероятно могут вызвать тонкие ошибки. Эти сложные запросы часто являются теми, которые пользователи надеются, что ИИ может сгенерировать, но они также те, которые требуют наибольшего внимания при создании недетерминированным способом.
Замечание
Детерминированный означает, что одни и те же входные данные всегда создают одни и те же выходные данные. В вызовах нет случайности или вариации, что делает результаты предсказуемыми, тестируемыми и безопасными для автоматизации.
Вместо этого SQL MCP Server поддерживает модель NL2DAB. Этот подход использует безопасный уровень абстракции сущностей построителя данных и встроенного построителя запросов DAB. Вместе они создают точные, хорошо сформированные Transact-SQL (T-SQL) полностью детерминированным образом. Этот подход устраняет риск, издержки и неприятности, связанные с NL2SQL, сохраняя безопасность и надежность для созданных агентом запросов.
Поддержка DDL
DDL (язык определения данных) — это язык базы данных, используемый для создания и изменения объектов, таких как таблицы и представления. SQL MCP Server основан на DML (языке обработки данных), языке базы данных, используемом для создания, чтения, обновления и удаления данных в существующих таблицах и представлениях. DML также охватывает выполнение хранимых процедур. В результате SQL MCP Server предназначен для работы с данными, а не схемой. Эта конструкция соответствует рабочим вариантам использования MCP, в которых агенты ИИ взаимодействуют с критически важными или бизнес-конфиденциальными системами.
Подсказка
Чтобы изменить схему во время локальной разработки, инженеры могут использовать расширение MSSQL в Visual Studio Code (VS Code), которое обеспечивает полную поддержку DDL.
Поддержка RBAC
SQL MCP Server использует ту же проверенную систему управления доступом на основе ролей (RBAC), используемую в построителе API данных. Каждая сущность в конфигурации определяет, какие роли могут считывать, создавать, обновлять или удалять данные, а также какие поля включены или исключены для этих ролей. Эти правила применяются автоматически к каждому инструменту MCP, обеспечивая согласованность безопасности в REST, GraphQL и MCP без дополнительной настройки.
Это важно
Ограничения на основе ролей применяются на каждом шаге взаимодействия агента.
Поддержка кэширования
SQL MCP Server автоматически кэширует результаты из read_records средства.
Кэширование в построителе API данных включено глобально, и его можно настроить для каждой сущности. Кэширование уровня 1 и уровня 2 помогает уменьшить нагрузку на базу данных, предотвратить набеги запросов и поддерживать сценарии теплого запуска в горизонтально масштабируемых средах.
Поддержка мониторинга
SQL MCP Server выдает журналы и данные телеметрии, позволяющие предприятиям отслеживать и проверять активность с одной панели стекла. Эта возможность включает azure Log Analytics, Application Insights и локальные журналы файлов в контейнере.
Телеметрия
SQL MCP Server полностью инструментирован с помощью диапазонов и действий OpenTelemetry (OTEL). Каждая операция отслеживается, чтобы разработчики могли сопоставлять поведение между распределенными системами. Дополнительные сведения о поддержке Open Telemetry в построителе данных.
Медицинские проверки
SQL MCP Server обеспечивает подробные проверки работоспособности и сущностей в конечных точках REST, GraphQL и MCP. Работоспособность построителя данных позволяет разработчикам определять ожидания производительности, задавать пороговые значения и проверять, работает ли каждая конечная точка должным образом.
Как настроить SQL MCP Server?
MCP настраивается в файле конфигурации DAB. Если у вас уже есть рабочая конфигурация для создания API данных, обновление до версии 1.7 или более поздней автоматически создает рабочий сервер SQL MCP без дополнительных шагов.
Конфигурация
Вы можете включить MCP глобально или на уровне сущности. Эта возможность позволяет выбрать, какие объекты будут отображаться в средствах MCP, а какие останутся недоступными для агентов. MCP соответствует тем же правилам, которые используются для REST и GraphQL, поэтому конфигурация остается единственным источником истины для разрешений, проекций и политик.
При включении MCP SQL MCP Server автоматически создает область инструментов на основе конфигурации. Вы не определяете средства MCP вручную. Встроенная dml-tools система обнаруживает и предоставляет сущности процедурно, что хорошо масштабируется от небольших схем до очень больших баз данных.
Начало работы
Начало работы означает создание dab-config.json для управления двигателем. Эту задачу можно выполнить вручную или с помощью CLI Data API Builder (DAB). Интерфейс командной строки упрощает задачу, позволяя инициализировать файл с помощью одной команды. Значения свойств конфигурации могут использовать литеральные строки, переменные среды или секреты Azure Key Vault.
dab init --database-type mssql --connection-string "<your-connection-string>" --config dab-config.json --host-mode development
Вы можете указать каждую таблицу, представление или хранимую процедуру, которую требуется предоставить SQL MCP Server, добавив их в конфигурацию. Интерфейс командной строки позволяет легко добавлять их, назначать псевдонимы, настраивать их разрешения и сопоставлять столбцы, если вы хотите. Самое главное, с description помощью свойства можно включить семантические сведения, чтобы помочь языковым моделям лучше понять данные.
dab add {entity-name} \ # object alias (Employees)
--source {table-or-view-name} \ # database object (dbo.Employees)
--source.type {table|view|stored-procedure} \ # object type (table)
--permissions "{role:actions}" \ # role and allowed actions (anonymous:*)
--description "{text}" # semantic description (Company employee records)
Параметры среды выполнения
Сервер SQL MCP включен по умолчанию в конфигурации API построителя данных. В большинстве случаев вам не нужно добавлять параметры. Сервер автоматически следует тем же разрешениям и правилам безопасности, что и API и база данных. Настройте MCP только в том случае, если вы хотите сузить или ограничить возможности агентов.
"runtime": {
"mcp": {
"enabled": true, // default: true
"path": "/mcp", // default: /mcp
"dml-tools": {
"describe-entities": true, // default: true
"create-record": true, // default: true
"read-records": true, // default: true
"update-record": true, // default: true
"delete-record": true, // default: true
"execute-entity": true // default: true
}
}
}
Интерфейс командной строки также позволяет задать каждое свойство по отдельности или программно с помощью скриптов.
dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities true
dab configure --runtime.mcp.dml-tools.create-record true
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.update-record true
dab configure --runtime.mcp.dml-tools.delete-record true
dab configure --runtime.mcp.dml-tools.execute-entity true
Почему нужно отключить отдельные инструменты?
Разработчикам может потребоваться ограничить определенные действия, даже если разрешения ролей или сущностей позволяют им. Отключение средства на уровне среды выполнения гарантирует, что он никогда не отображается для агентов. Например, отключение delete_record полностью скрывает возможность удаления независимо от конфигурации в других местах. Этот сценарий является редким, но полезным, если требуются строгие операционные границы.
Параметры сущности
Кроме того, вам не нужно включить MCP для каждой сущности. Сущности участвуют автоматически, если вы не решили ограничить их. Свойство dml-tools существует таким образом, чтобы можно было исключить сущность из MCP или сузить ее возможности, но вам не нужно ничего устанавливать для нормального использования. Настройки по умолчанию обрабатывают все.
"entities": {
"products": {
"mcp": {
"dml-tools": true
}
}
}
Средства DML
SQL MCP Server предоставляет шесть средств языка обработки данных (DML), которые позволяют агентам ИИ выполнять безопасные, типобезопасные операции базы данных: describe_entities, , create_recordread_records, update_recorddelete_recordи execute_entity. Эти средства формируют прогнозируемую поверхность CRUD, которая всегда отражает конфигурацию, разрешения и схему.
Каждое средство учитывает управление доступом на основе ролей (RBAC), разрешения сущностей и политики. Агенты никогда не взаимодействуют напрямую с базой данных. Они работают через безопасный уровень абстракции Data API builder.
Полные сведения о каждом инструменте, параметрах конфигурации и рекомендациях см. в справочнике по средствам DML.