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 дней).

Параметры

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

delete_query_log_entry

Удаляет одну запись из журнала истории запросов. Используйте это, когда запрос дал неверные или вводящие в заблуждение результаты и не должен появляться в будущих поисках по истории. Связанный 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.

Параметры
  • dataset_idstringобязательный
  • dax_querystringобязательный
  • max_rowsinteger | null
  • query_summarystring | null
  • result_namestring | null
  • workspace_idstringобязательный
get_dataset_info

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

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

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

Параметры
  • dataset_idstringобязательный
  • table_namestring | null
  • workspace_idstringобязательный
list_datasets

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

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

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

Параметры
  • dataset_idstringобязательный
  • table_namestring | null
  • workspace_idstringобязательный
list_tables

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

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

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

Параметры

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

logout

Выйдите из 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 и т.д.

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

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

Параметры
  • dataset_idstring | null
  • keywordstring | null
  • limitinteger
  • since_daysinteger

Похожие MCP-сервера

gigamori/mcp-run-sql-connectorx

gigamori/mcp-run-sql-connectorx

MCP сервер выполняет SQL через ConnectorX и выводит результат в CSV или Parquet. Данные передаются через файлы, а не в теле сообщения, что эффективно для больших запросов. Поддерживает PostgreSQL, MySQL, SQLite и другие.

Python1
Context7 MCP

Context7 MCP

официальный

MCP сервер доставляет свежую документацию и примеры кода в контекст ИИ. Убирает галлюцинации и устаревшие ответы, предоставляя версионные данные по библиотекам. Полезен разработчикам для точной ген...

TypeScript61850
sifter-ai/sifter

sifter-ai/sifter

Sifter — open-source движок для извлечения структурированных данных из документов (счетов, контрактов). Вместо RAG выделяет точные поля (клиент, дата, сумма) и хранит их как записи — ответы получаю...

Python55
leesgit/claude-session-continuity-mcp

leesgit/claude-session-continuity-mcp

Автоматически сохраняет контекст между сессиями Claude Code — больше не нужно повторять настройки. Использует семантический поиск, захват ошибок и решений, делает работу непрерывной. Для разработчи...

TypeScript6
xing5/mcp-google-sheets

xing5/mcp-google-sheets

MCP сервер для интеграции Google Sheets с AI-ассистентами. Позволяет читать, писать и обновлять таблицы, искать данные, управлять листами и выполнять пакетные операции. Полезен разработчикам и аналитикам для автоматизации работы с электронными таблицами через естественный язык.

Python998
laradji/deadzone

laradji/deadzone

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

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

Лука Никитин