Skip to main content
Glama

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.


Честное позиционирование

В нише Fabric MCP по состоянию на 2026-08-22 уже тесно. Вот что уже существует и чем отличается этот сервер. Ниже нет утверждения, что остальные плохие.

Что

Форма

Охват

Fabric Core MCP Server (Microsoft, предварительная версия)

удалённая, размещена у Microsoft, com.microsoft/microsoft-fabric в реестре MCP

~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-lakehouse-mcp, microsoft-fabric-mcp на PyPI, а также коммьюнити-серверы: santhoshravimdran7/Fabric-Analytics-MCP, Augustab/microsoft_fabric_mcp, sdebruyn/fabric-dw-mcp-cli

локальные, открытый исходный код

пересекающаяся функция, у каждого свой срез

fabric-mcp на PyPI и npm

не связан

это другой Fabric — промпт-фреймворк danielmiessler/fabric. Этот пакет намеренно не использует это имя.

Где находится msfabric-mcp:

  1. Один сервер для обеих плоскостей. Сервер Microsoft Core MCP охватывает только плоскость управления; вам всё равно нужно что-то ещё для выполнения запроса. Здесь list_items и run_sql живут в одном процессе и с одними учётными данными.

  2. Локальный stdio, без регистрации в предварительной версии. Серверы Microsoft удалены и находятся в предварительной версии. Этот работает на вашей машине с общедоступным REST API, поэтому он работает в любом тенанте, куда вы уже можете войти.

  3. Ограничитель и есть продукт. run_sql — это разрешённый список, а не запрещённый: инструкция выполняется только тогда, когда она однозначно классифицируется как чтение (или как разрешённая запись при включённых записях). Сначала удаляются комментарии, пакеты инструкций отклоняются, а выполнение процедур, OPENROWSET/OPENQUERY, GRANT/REVOKE, BACKUP/RESTORE и SHUTDOWN отключions в любом режиме.

  4. Ограниченный вывод. Каждый результирующий набор ограничен по строкам и по ширине ячеек и сообщает, когда был усечён, поэтому широкий SELECT * не может переполнить контекстное окно.

Если вам нужно только просматривать плоскость управления в тенанте со включённой предварительной версией, используйте сервер Microsoft Core MCP; это официальный продукт Microsoft, и он всегда будет быстрее отслеживать развитие API. А этот используйте, когда хотите SQL и задания в одном сервере, локально, с жёстким read-only по умолчанию.


Related MCP server: Databricks MCP Server

Установка

Для доступа к SQL нужен драйвер. Выберите один:

pip install msfabric-mcp
pip install "msfabric-mcp[sql]"     # pyodbc, plus ODBC Driver 18 for SQL Server
pip install "msfabric-mcp[mssql]"   # mssql-python, no external ODBC manager

Роут-инструментам, работающим с 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 login

2. Сервисный principal. Устанавливаете все три переменные — режим определяется автоматически:

Переменная

Значение

FABRIC_TENANT_ID

идентификатор каталога (тенанта)

FABRIC_CLIENT_ID

идентификатор приложения (клиента)

FABRIC_CLIENT_SECRET

секрет клиента

Сервисному принципалу должна быть назначена роль 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

Переменный

По умолчанию

Значение

FABRIC_WORKSPACE_ID

не задана

рабочая область по умолчанию, чтобы инструментам не приходилось её повторять. Объявлена опционально: каждый инструмент также принимает workspace.

FABRIC_SQL_ENDPOINT

не задана

только хост SQL analytics endpoint, без протокола. Указан на странице параметров warehouse или lakehouse. Опционально: без него SQL-инструменты сообщат, что не настроены, а REST-инструменты продолжат работать.

FABRIC_SQL_DATABASE

не задана

warehouse или lakehouse по умолчанию

FABRIC_SQL_DRIVER

auto

auto, pyo_dbc или mssql_python

Безопасность

Переменная

По умолчанию

Значение

FABRIC_ALLOW_WRITES

0

нет. Пока он отключён, любая операция записи отклоняется с объяснением. Включайте его только для рабочей области, которую вы готовы менять.

FABRIC_MAX_ROWS

200

строк в полученном результном наборе, максимум 5000

FABRIC_MAX_CELL_CHARS

200

символов в ячейке, максимум 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, управляемое удостоверение или менеджера секретов, который внедряет переменную в процесс сервера.


Инструменты

Инструмент

Охват

Что делает

list_workspaces(name_filter?)

REST

рабочие области, видимые для субъекта

list_items(workspace?, item_type?, name_filter?)

REST

элементы в рабочей области, отфильтрованные по типу элемента Fabric

get_item(item_id, workspace?)

REST

метаданные одного элемента

list_lakehouses(workspace?)

REST

lakehouse

list_warehouses(workspace?)

REST

хранилища данных

list_notebooks(workspace?)

REST

блокноты

list_tables(lakehouse?, database?, workspace?)

REST или SQL

таблицы lakehouse через Tables API или INFORMATION_SCHEMA.TABLES через конечную точку SQL

describe_table(table, schema?, database?)

SQL

столбцы, типы, допустимость NULL, порядковый номер, из INFORMATION_SCHEMA.COLUMNS, параметризовано

run_sql(sql, database?)

SQL

одно защищённое выражение

run_notebook(notebook, workspace?, parameters?)

REST

запускает задание RunNotebook, возвращает идентификатор экземпляра задания, не блокирует

get_job_status(item_id, job_instance_id, workspace?)

REST

статус, тайминги, причина сбоя

execute_dax(dataset_id, query_text, workspace?)

Power BI

запрос DAX EVALUATE, необязательный

health()

оба

сводка конфигурации и проверка доступности

Аргументы блокнота и 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.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    263
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    37
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    6
    14
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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