msfabric-mcp
msfabric-mcp
Сервер Model Context Protocol для Microsoft Fabric через stdio на Python.
Он даёт агенту одно соединение, которое охватывает обе половины Fabric:
плоскость управления — через публичный REST API по адресу
api.fabric.microsoft.com/v1(рабочие области, элементы, lakehouse, warehouse, блокноты, планировщик заданий), иплоскость данных — через SQL analytics endpoint хранилища или lakehouse, за механизмом защиты read-only на основе разрешённого списка.
Плюс опциональный DAX по семантическим моделям Power BI.
По умолчанию доступ только на чтение. Операции записи отклоняются, если
оператор не задал FABRIC_ALLOW_WRITES, и даже в этом случае у UPDATE
и DELETE обязательно должен быть WHERE.
Пакет:
msfabric-mcpна PyPIРепозиторий: https://github.com/NawafSheikh/fabric-mcp
Имя в реестре MCP:
io.github.nawafsheikh/msfabric-mcpЛицензия: MIT
Честное позиционирование
В нише Fabric MCP по состоянию на 2026-08-22 уже тесно. Вот что уже существует и чем отличается этот сервер. Ниже нет утверждения, что остальные плохие.
Что | Форма | Охват |
Fabric Core MCP Server (Microsoft, предварительная версия) | удалённая, размещена у Microsoft, | ~30 инструментов плоскости управления: рабочие области, элементы, папки, ёмкости, поиск по каталогу OneLake, определения элементов, длительные операции. Без выполнения T-SQL, без запуска заданий блокнотов, без DAX. (документация) |
Power BI remote MCP server (Microsoft, предварительная версия) | удалённая | метаданные отчётов и семантических моделей, а также генерация DAX через Copilot (расходует ёмкость Copilot). (документация) |
microsoft/fabric-rti-mcp | локальная, открытый исходный код | Real-Time Intelligence: Eventhouse и Azure Data Explorer, KQL. Другая рабочая нагрузка по сравнению с T-SQL для lakehouse и warehouse. (репозиторий) |
| локальные, открытый исходный код | пересекающаяся функция, у каждого свой срез |
| не связан | это другой Fabric — промпт-фреймворк |
Где находится msfabric-mcp:
Один сервер для обеих плоскостей. Сервер Microsoft Core MCP охватывает только плоскость управления; вам всё равно нужно что-то ещё для выполнения запроса. Здесь
list_itemsиrun_sqlживут в одном процессе и с одними учётными данными.Локальный stdio, без регистрации в предварительной версии. Серверы Microsoft удалены и находятся в предварительной версии. Этот работает на вашей машине с общедоступным REST API, поэтому он работает в любом тенанте, куда вы уже можете войти.
Ограничитель и есть продукт.
run_sql— это разрешённый список, а не запрещённый: инструкция выполняется только тогда, когда она однозначно классифицируется как чтение (или как разрешённая запись при включённых записях). Сначала удаляются комментарии, пакеты инструкций отклоняются, а выполнение процедур,OPENROWSET/OPENQUERY,GRANT/REVOKE,BACKUP/RESTOREиSHUTDOWNотключions в любом режиме.Ограниченный вывод. Каждый результирующий набор ограничен по строкам и по ширине ячеек и сообщает, когда был усечён, поэтому широкий
SELECT *не может переполнить контекстное окно.
Если вам нужно только просматривать плоскость управления в тенанте со включённой предварительной версией, используйте сервер Microsoft Core MCP; это официальный продукт Microsoft, и он всегда будет быстрее отслеживать развитие API. А этот используйте, когда хотите SQL и задания в одном сервере, локально, с жёстким read-only по умолчанию.
Related MCP server: Microsoft Fabric MCP Server
Установка
Для доступа к SQL нужен драйвер. Выберите один:
pip install msfabric-mcppip install "msfabric-mcp[sql]" # pyodbc, plus ODBC Driver 18 for SQL Server
pip install "msfabric-mcp[mssql]" # mssql-python, no external ODBC managerpyodbc требует отдельно установленный ODBC Driver 18 for SQL Server (17-я версия тоже подойдёт). Токен Entra передаётся через атрибут подключения
SQL_COPT_SS_ACCESS_TOKEN(1256).mssql-python — собственный драйвер Microsoft, требует Python 3.10+, устанавливает свой connect-слой вместе с wheel и поддерживает Fabric Data Warehouse и SQL analytics endpoint для Lakehouse.
Роут-инструментам, работающим с REST API, не нужен ни один из драйверов. Вы можете запустить сервер вообще без настройки SQL и всё равно просматривать рабочие области, элементы и задания.
Требуется Python 3.11 или новее.
Конфигурация
Всё берётся из переменных окружения. Ничего о номере тенанта, рабочей области,
warehouse или хосте в пакет не зашито. Смотрите .env.example.
Аутентификация
Три режима, все построены на azure-identity.
1. DefaultAzureCredential (по умолчанию). Ничего задавать не нужно.
Цепочка учётных данных подхватывает сессию az login, вход в VS Code,
управляемое удостоверение или стандартный сервисный principal из переменных
окружения AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_CLIENT_SECRET.
az login2. Сервисный principal. Устанавливаете все три переменные — режим определяется автоматически:
Переменная | Значение |
| идентификатор каталога (тенанта) |
| идентификатор приложения (клиента) |
| секрет клиента |
Сервисному принципалу должна быть назначена роль Admin, Member или Contributor в рабочей области, а параметр тенанта Service principals can call Fabric public APIs должен быть включён.
3. Код устройства — для машины без монитора или SSH-сессии:
FABRIC_AUTH_MODE=device_code
FABRIC_CLIENT_ID=<a public client app registration>Токены кэшируются в памяти по областям и обновляются за две минуты до их истечения. Они никогда не записываются на диск, не попадают в журналы и не появляются в сообщениях об ошибках, которые возвращает сервер.
Область и SQL
Переменный | По умолчанию | Значение |
| не задана | рабочая область по умолчанию, чтобы инструментам не приходилось её повторять. Объявлена опционально: каждый инструмент также принимает |
| не задана | только хост SQL analytics endpoint, без протокола. Указан на странице параметров warehouse или lakehouse. Опционально: без него SQL-инструменты сообщат, что не настроены, а REST-инструменты продолжат работать. |
| не задана | warehouse или lakehouse по умолчанию |
|
|
|
Безопасность
Переменная | По умолчанию | Значение |
|
| нет. Пока он отключён, любая операция записи отклоняется с объяснением. Включайте его только для рабочей области, которую вы готовы менять. |
|
| строк в полученном результном наборе, максимум 5000 |
|
| символов в ячейке, максимум 4000 |
Никакие секреты никогда не отправляются на печать. health сообщает налажены ли
Идентификатор тенанта, идентификатор клиента и секрет, но никогда их значения,
а сообщения об ошибках содержат класс исключения и короткую деталь сервиса
с удалённой строкой запроса.
Конфигурация клиента
Claude Desktop, Claude Code или любой stdio MCP-клиент:
{
"mcpServers": {
"fabric": {
"command": "msfabric-mcp",
"env": {
"FABRIC_WORKSPACE_ID": "00000000-0000-0000-0000-000000000000",
"FABRIC_SQL_ENDPOINT": "your-endpoint.datawarehouse.fabric.microsoft.com",
"FABRIC_SQL_DATABASE": "your_warehouse"
}
}
}
}Не кладите FABRIC_CLIENT_SECRET в конфигурационный файл, лежащий в репозитории.
Используйте az login, управляемое удостоверение или менеджера секретов, который
внедряет переменную в процесс сервера.
Инструменты
Инструмент | Охват | Что делает |
| REST | рабочие области, видимые для субъекта |
| REST | элементы в рабочей области, отфильтрованные по типу элемента Fabric |
| REST | метаданные одного элемента |
| REST | lakehouse |
| REST | хранилища данных |
| REST | блокноты |
| REST или SQL | таблицы lakehouse через Tables API или |
| SQL | столбцы, типы, допустимость NULL, порядковый номер, из |
| SQL | одно защищённое выражение |
| REST | запускает задание |
| REST | статус, тайминги, причина сбоя |
| Power BI | запрос DAX |
| оба | сводка конфигурации и проверка доступности |
Аргументы блокнота и lakehouse принимают либо отображаемое имя, либо идентификатор;
имя разрешается через list_items на лету.
Защита SQL
run_sql принимает одно выражение за вызов, комментарии удаляются до принятия
решения. Затем:
Начинается с
SELECTилиWITHи не содержитSELECT ... INTOилиFOR UPDATE: классифицируется как чтение, всегда разрешено.Начинается с
INSERT,UPDATE,DELETE,MERGE,CREATE,ALTER,DROP,TRUNCATEили являетсяSELECT ... INTO: классифицируется как запись. Отклоняется, если не установленFABRIC_ALLOW_WRITES.UPDATEиDELETEдополнительно требуют предложенияWHERE, даже если запись включена.Всё остальное: отклоняется, поскольку не соответствует ни одной форме.
EXEC/EXECUTE,sp_*,xp_*,OPENROWSET,OPENDATASOURCE,OPENQUERY,BULK INSERT,GRANT,REVOKE,DENY,BACKUP,RESTORE,SHUTDOWN,RECONFIGURE: отклоняется в любом режиме.Несколько выражений, разделённых
;: отклоняется, чтобы каждое можно было оценивать отдельно.
Имена схемы и таблицы, передаваемые в describe_table, проверяются как обычные
идентификаторы, а сам поиск параметризован, поэтому имя не может содержать SQL.
Это защита от ошибок агента, а не замена разрешений. Предоставьте субъекту минимально необходимый доступ; роль рабочей области и собственные разрешения объекта остаются реальной границей.
Примечания по execute_dax
Используется конечная точка JSON executeQueries
вместо более новой стрелочной executeDaxQueries, поскольку
executeQueries работает в Pro, PPU и Premium/Fabric емкостях и не требует
библиотеки Arrow. Его документированный предел — 100 000 строк и 1 000 000 значений на
запрос; поверх этого применяется FABRIC_MAX_ROWS. Настройка клиента Dataset
Execute Queries REST API должна быть включена, а вызывающему требуется разрешение
Build на семантической модели. Принимаются только запросы EVALUATE и DEFINE.
Что это затрагивает
Исходящий HTTPS к
api.fabric.microsoft.com,api.powerbi.comи Microsoft Entra для токенов.Исходящий TDS на порт 1433 к вашей конечной точке SQL, только когда вызывается SQL-инструмент и установлен
FABRIC_SQL_ENDPOINT.Encrypt=yes,TrustServerCertificate=no.Никаких записей в локальную файловую систему. Никакой телеметрии. Никаких сторонних сервисов.
Разработка
git clone https://github.com/NawafSheikh/fabric-mcp
cd fabric-mcp
pip install -e ".[dev]"
pytest
python -m buildВесь набор тестов выполняется без сети, без клиента Fabric и без драйвера ODBC:
REST-вызовы проходят через httpx.MockTransport, а SQL-уровень
использует инжектируемую фабрику соединений, которую тесты заполняют поддельным
DB-соединением.
Участие
Принимаются вопросы и pull request'ы на https://github.com/NawafSheikh/fabric-mcp/issues.
Источники
Проверено 2026-08-22.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only finance and operations controls for AI agents with evidence and safe next actions.
Governed app access for AI agents: 1,000+ apps & 12,000+ tools via Code Mode MCP.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
- PriorifyOAuthapp.priorify
Agent-complete, permission-scoped product operations for Priorify workspaces.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to interact with Microsoft Fabric by exposing tools for managing workspaces, notebooks, SQL queries, pipelines, and Livy Spark sessions. It provides a comprehensive set of operations for data engineering and analytics tasks using standard Azure authentication.374MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Microsoft Fabric and Power BI services through the Model Context Protocol. Users can manage workspaces, execute DAX queries, refresh datasets, and create Fabric notebooks using natural language.612 npm2MIT
- AlicenseBqualityAmaintenanceEnables AI agents to interact with Microsoft Fabric Real-Time Intelligence services, allowing for seamless data querying, analysis, and streaming capabilities.395,601 PyPI131MIT
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to Microsoft Fabric data-pipeline run history and DAX queries against semantic models, with optional write mode for pipeline execution and dataset refresh.8 npm1MIT