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: Databricks 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to access enterprise data from Unity Catalog (vector search, functions, Genie spaces) and perform developer actions in Databricks like managing notebooks and running jobs.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Databricks workspaces programmatically, providing comprehensive tools for cluster management, notebook operations, job orchestration, Unity Catalog data governance, user management, permissions control, and FinOps cost analytics.263MIT
- AlicenseBqualityDmaintenanceEnables 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.6142MIT
Related MCP Connectors
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Debug, build, and manage Power Automate cloud flows with AI agents
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NawafSheikh/fabric-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server