mbrummerstedt/powerbi-analyst-mcp

mbrummerstedt/powerbi-analyst-mcp

от mbrummerstedt
Сервер для анализа Power BI через ИИ: подключает ИИ-клиентов к семантическим моделям, выполняет DAX-запросы, сохраняет большие результаты локально. Локальная обработка. Аналитики получают ответы на естественном языке.

Power BI Analyst MCP

PyPI Python Tests License: MIT

powerbi-analyst-mcp MCP server

Ask Claude to analyse your Power BI data. Get answers — not context-window crashes.

Connect Claude (or any MCP client) to your Power BI semantic models. Explore tables and measures, run DAX queries, and work with real results — even across datasets with tens of thousands of rows. Large query results are automatically saved to a local file and paged to the agent on demand, so your AI session stays fast and focused no matter how much data you pull.

Everything runs on your machine. Your data never passes through a third-party relay.


What becomes possible

The analytics bottleneck has never really been data access — Power BI already gives people access. The bottleneck is translation: the skilled, time-consuming work of turning data into a decision. This server moves that translation to an LLM.

Compound reasoning across your entire model A human analyst runs one query, reads the result, forms a hypothesis, runs another query. This serialises over hours. An agent can run twenty queries in sequence — each informed by the last — synthesise across all of them, and deliver a reasoned conclusion in minutes. Ask "what's driving the margin decline in EMEA?" and Claude will explore measures, drill into markets, check time trends, isolate the outlier, and explain it — without you directing each step.

authenticate

Аутентифицирует в Power BI с помощью OAuth 2.0 device code flow. Вызовите этот инструмент сначала, если вы никогда не входили в систему или если предыдущий вызов вернул "Not authenticated". Инструмент использует двухэтапный поток: - Первый вызов: возвращает URL и одноразовый код, который нужно открыть в браузере. - Второй вызов: завершает аутентификацию после того, как вы вошли в систему. Ваши учетные данные кэшируются локально, так что вам не придется повторять этот шаг до истечения срока действия токена обновления (примерно 90 дней).

Аутентифицирует в Power BI с помощью OAuth 2.0 device code flow. Вызовите этот инструмент сначала, если вы никогда не входили в систему или если предыдущий вызов вернул "Not authenticated". Инструмент использует двухэтапный поток: - Первый вызов: возвращает URL и одноразовый код, который нужно открыть в браузере. - Второй вызов: завершает аутентификацию после того, как вы вошли в систему. Ваши учетные данные кэшируются локально, так что вам не придется повторять этот шаг до истечения срока действия токена обновления (примерно 90 дней).

Параметры

Без параметров.

delete_query_log_entry

Удаляет одну запись из журнала истории запросов. Используйте это, когда запрос дал неверные или вводящие в заблуждение результаты и не должен появляться в будущих поисках по истории. Связанный CSV-файл (если есть) НЕ удаляется. Удаляется только запись в журнале.

Удаляет одну запись из журнала истории запросов. Используйте это, когда запрос дал неверные или вводящие в заблуждение результаты и не должен появляться в будущих поисках по истории. Связанный CSV-файл (если есть) НЕ удаляется. Удаляется только запись в журнале.

Параметры

  • entry_idstringобязательный
execute_dax

Выполняет DAX-запрос к датасету Power BI и возвращает строки результата. Запрос должен начинаться с EVALUATE (стандартный синтаксис DAX-запросов). Результаты возвращаются в виде JSON-массива объектов, где ключами являются имена столбцов. Небольшие результаты (<= 50 строк) возвращаются встроенным JSON. Большие результаты (> 50 строк) автоматически сохраняются в CSV-файл, а возвращается сжатая сводка с путём к файлу, именами столбцов, количеством строк и превью первых 5 строк. Используйте `read_query_result` для постраничного чтения сохранённого CSV или читайте файл напрямую. Каждый успешный вызов записывается в локальный файл истории для аудита и повторного использования между сессиями. Используйте `search_query_history` для поиска предыдущих запросов. Параметр `query_summary` делает поиск по истории гораздо эффективнее — всегда указывайте его, когда можете. Ограничения, накладываемые Power BI API: - Максимум 1 000 000 значений или 100 000 строк на запрос. - Ограничение по скорости: 120 запросов в минуту на пользователя. - Поддерживается только DAX; запросы MDX и DMV не поддерживаются. - Параметр клиента "Dataset Execute Queries REST API" должен быть включён. Советы: - Используйте TOPN или FILTER для ограничения больших наборов результатов. - Используйте SUMMARIZECOLUMNS для агрегированных запросов. - Используйте CALCULATETABLE для выражений с отфильтрованными таблицами. - Используйте max_rows для выборки большой таблицы без переписывания DAX. - Используйте result_name, чтобы задать осмысленное имя для сохранённого CSV.

Выполняет DAX-запрос к датасету Power BI и возвращает строки результата. Запрос должен начинаться с EVALUATE (стандартный синтаксис DAX-запросов). Результаты возвращаются в виде JSON-массива объектов, где ключами являются имена столбцов. Небольшие результаты (<= 50 строк) возвращаются встроенным JSON. Большие результаты (> 50 строк) автоматически сохраняются в CSV-файл, а возвращается сжатая сводка с путём к файлу, именами столбцов, количеством строк и превью первых 5 строк. Используйте `read_query_result` для постраничного чтения сохранённого CSV или читайте файл напрямую. Каждый успешный вызов записывается в локальный файл истории для аудита и повторного использования между сессиями. Используйте `search_query_history` для поиска предыдущих запросов. Параметр `query_summary` делает поиск по истории гораздо эффективнее — всегда указывайте его, когда можете. Ограничения, накладываемые Power BI API: - Максимум 1 000 000 значений или 100 000 строк на запрос. - Ограничение по скорости: 120 запросов в минуту на пользователя. - Поддерживается только DAX; запросы MDX и DMV не поддерживаются. - Параметр клиента "Dataset Execute Queries REST API" должен быть включён. Советы: - Используйте TOPN или FILTER для ограничения больших наборов результатов. - Используйте SUMMARIZECOLUMNS для агрегированных запросов. - Используйте CALCULATETABLE для выражений с отфильтрованными таблицами. - Используйте max_rows для выборки большой таблицы без переписывания DAX. - Используйте result_name, чтобы задать осмысленное имя для сохранённого CSV.

Параметры

  • workspace_idstringобязательный
  • dataset_idstringобязательный
  • dax_querystringобязательный
  • max_rowsany
  • result_nameany
  • query_summaryany
get_dataset_info

Возвращает подробные метаданные для одного датасета Power BI. Включает имя, владельца, расписание обновления, режим хранения, веб-URL и многое другое. Также возвращает последние 5 записей истории обновлений, чтобы вы могли видеть свежесть данных.

Возвращает подробные метаданные для одного датасета Power BI. Включает имя, владельца, расписание обновления, режим хранения, веб-URL и многое другое. Также возвращает последние 5 записей истории обновлений, чтобы вы могли видеть свежесть данных.

Параметры

  • workspace_idstringобязательный
  • dataset_idstringобязательный
list_columns

Перечисляет столбцы (измерения) в наборе данных Power BI. Возвращает имя каждого столбца, родительскую таблицу, описание, тип данных и является ли он ключевым столбцом. Опционально фильтрует по имени таблицы.

Перечисляет столбцы (измерения) в наборе данных Power BI. Возвращает имя каждого столбца, родительскую таблицу, описание, тип данных и является ли он ключевым столбцом. Опционально фильтрует по имени таблицы.

Параметры

  • workspace_idstringобязательный
  • dataset_idstringобязательный
  • table_nameany
list_datasets

Перечисляет все наборы данных (семантические модели) в рабочей области Power BI. Возвращает идентификатор набора данных, имя, кем настроен (configured-by), веб-URL, флаг is-refreshable и целевой режим хранения (Import / DirectQuery / и т.д.). Используйте поле `id` как `dataset_id` в последующих инструментах.

Перечисляет все наборы данных (семантические модели) в рабочей области Power BI. Возвращает идентификатор набора данных, имя, кем настроен (configured-by), веб-URL, флаг is-refreshable и целевой режим хранения (Import / DirectQuery / и т.д.). Используйте поле `id` как `dataset_id` в последующих инструментах.

Параметры

  • workspace_idstringобязательный
list_measures

Перечисляет меры, определенные в наборе данных Power BI. Возвращает имя каждой меры, родительскую таблицу, описание и строку формата. Опционально фильтрует по имени таблицы.

Перечисляет меры, определенные в наборе данных Power BI. Возвращает имя каждой меры, родительскую таблицу, описание и строку формата. Опционально фильтрует по имени таблицы.

Параметры

  • workspace_idstringобязательный
  • dataset_idstringобязательный
  • table_nameany
list_tables

Перечисляет все видимые таблицы в наборе данных Power BI. Скрытые таблицы и внутренние системные таблицы Power BI (имена, начинающиеся с '$') исключаются. Используйте возвращённые имена таблиц в `list_measures`, `list_columns` и DAX-запросах.

Перечисляет все видимые таблицы в наборе данных Power BI. Скрытые таблицы и внутренние системные таблицы Power BI (имена, начинающиеся с '$') исключаются. Используйте возвращённые имена таблиц в `list_measures`, `list_columns` и DAX-запросах.

Параметры

  • workspace_idstringобязательный
  • dataset_idstringобязательный
list_workspaces

Перечисляет все рабочие области Power BI (группы), участником которых является аутентифицированный пользователь. Возвращает идентификатор рабочей области, имя, тип и сведения о ёмкости. Используйте поле `id` как `workspace_id` в последующих инструментах.

Перечисляет все рабочие области Power BI (группы), участником которых является аутентифицированный пользователь. Возвращает идентификатор рабочей области, имя, тип и сведения о ёмкости. Используйте поле `id` как `workspace_id` в последующих инструментах.

Параметры

Без параметров.

logout

Выйдите из Power BI, очистив кэшированные учётные данные. После выхода вызовите `authenticate`, чтобы войти снова.

Выйдите из Power BI, очистив кэшированные учётные данные. После выхода вызовите `authenticate`, чтобы войти снова.

Параметры

Без параметров.

read_query_result

Читает страницу строк из CSV-файла, сохранённого `execute_dax`. Используйте этот инструмент, когда `execute_dax` возвращает путь `savedTo` вместо строк в ответе. Комбинируйте `offset` и `limit`, чтобы пролистывать большие результаты без загрузки всего файла в контекст. Возвращает строки для запрошенного среза вместе с метаданными пагинации: - totalRows: общее количество строк в файле - offset: использованный offset - limit: использованный limit - hasMore: есть ли ещё строки после этой страницы Пример рабочего процесса: 1. Вызовите `execute_dax` — если строк больше 50, вы получите путь savedTo. 2. Вызовите `read_query_result(file_path=savedTo, offset=0, limit=100)`. 3. Если hasMore равно true, вызовите снова с offset=100, затем 200 и т.д.

Читает страницу строк из CSV-файла, сохранённого `execute_dax`. Используйте этот инструмент, когда `execute_dax` возвращает путь `savedTo` вместо строк в ответе. Комбинируйте `offset` и `limit`, чтобы пролистывать большие результаты без загрузки всего файла в контекст. Возвращает строки для запрошенного среза вместе с метаданными пагинации: - totalRows: общее количество строк в файле - offset: использованный offset - limit: использованный limit - hasMore: есть ли ещё строки после этой страницы Пример рабочего процесса: 1. Вызовите `execute_dax` — если строк больше 50, вы получите путь savedTo. 2. Вызовите `read_query_result(file_path=savedTo, offset=0, limit=100)`. 3. Если hasMore равно true, вызовите снова с offset=100, затем 200 и т.д.

Параметры

  • file_pathstringобязательный
  • offsetinteger
  • limitinteger
search_query_history

Ищет в локальном журнале истории запросов ранее выполненные DAX-запросы. Каждый успешный вызов `execute_dax` логируется с DAX-запросом, кратким описанием того, что запрашивал пользователь, формой результата и путём к любому сохранённому CSV-файлу. Используйте этот инструмент, чтобы: - Найти предыдущие запросы для набора данных, чтобы повторно использовать или адаптировать DAX - Найти сохранённые CSV-файлы из предыдущих сессий - Проверить, какие данные были извлечены и когда - Избежать повторного выполнения ресурсоёмких запросов, если данные уже существуют локально Результаты возвращаются от новых к старым. Используйте `keyword` для поиска по намерению (например, "revenue by market"): он ищет по описанию запроса, тексту DAX и имени результата.

Ищет в локальном журнале истории запросов ранее выполненные DAX-запросы. Каждый успешный вызов `execute_dax` логируется с DAX-запросом, кратким описанием того, что запрашивал пользователь, формой результата и путём к любому сохранённому CSV-файлу. Используйте этот инструмент, чтобы: - Найти предыдущие запросы для набора данных, чтобы повторно использовать или адаптировать DAX - Найти сохранённые CSV-файлы из предыдущих сессий - Проверить, какие данные были извлечены и когда - Избежать повторного выполнения ресурсоёмких запросов, если данные уже существуют локально Результаты возвращаются от новых к старым. Используйте `keyword` для поиска по намерению (например, "revenue by market"): он ищет по описанию запроса, тексту DAX и имени результата.

Параметры

  • keywordany
  • dataset_idany
  • since_daysinteger
  • limitinteger

Другие проверенные MCP-сервера

buildkite/buildkite-mcp-server

buildkite/buildkite-mcp-server

официальный

MCP-сервер для интеграции данных Buildkite (пайплайны, сборки, задания, тесты) с AI-инструментами и редакторами. Разработчики могут анализировать CI/CD-процессы через ИИ-ассистентов.

Go53
snyk/studio-mcp

snyk/studio-mcp

официальный

MCP-сервер Snyk интегрирует сканирование безопасности в AI-инструменты. Запускает SCA, SAST, IaC-проверки и возвращает уязвимости. Полезен для DevSecOps-пайплайнов. Управляется через `snyk mcp`.

Go53
last9/last9-mcp-server

last9/last9-mcp-server

официальный

Last9 MCP-сервер подключает AI-агентов (Claude, Cursor, Windsurf) к вашим производственным данным observability — логам, метрикам, трейсам, алертам. Без установки бинарников, через OAuth. Полезен S...

Go59
pydantic/logfire-mcp

pydantic/logfire-mcp

официальный

MCP-сервер для интеграции с Logfire от Pydantic. Текущая версия архивирована — используйте новый удаленный сервер для быстрой итерации инструментов и лучшего опыта. Полезен разработчикам, работающим с логированием и мониторингом Pydantic Logfire.

Python162
mnemox-ai/tradememory-protocol

mnemox-ai/tradememory-protocol

официальный

MCP сервер, запоминающий каждую сделку с SHA-256 защитой. Анализируйте историю решений, выявляйте ошибки и соблюдайте нормы MiFID II и EU AI Act с помощью пре-флайт чеклистов и OWM.

Python1397
Coding-Solo/godot-mcp

Coding-Solo/godot-mcp

MCP-сервер для Godot: запускает редактор, выполняет проекты, захватывает отладку. Управляет сценами и проектами. Полезен разработчикам, использующим AI-агентов — даёт обратную связь от движка, уско...

JavaScript4784
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин