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
0.1.2основная
0.1.1
0.1.0

Выберите клиент, чтобы установить mbrummerstedt/powerbi-analyst-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"powerbi-analyst-mcp\"],\"env\":{\"POWERBI_CLIENT_ID\":\"your-application-client-id\",\"POWERBI_TENANT_ID\":\"your-directory-tenant-id\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w --env POWERBI_CLIENT_ID=your-application-client-id --env POWERBI_TENANT_ID=your-directory-tenant-id -- uvx powerbi-analyst-mcp

Либо через JSON-конфиг:

claude mcp add-json mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w "{\"command\":\"uvx\",\"args\":[\"powerbi-analyst-mcp\"],\"env\":{\"POWERBI_CLIENT_ID\":\"your-application-client-id\",\"POWERBI_TENANT_ID\":\"your-directory-tenant-id\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w --env POWERBI_CLIENT_ID=your-application-client-id --env POWERBI_TENANT_ID=your-directory-tenant-id -- uvx powerbi-analyst-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w]
command = "uvx"
args = ["powerbi-analyst-mcp"]

[mcp_servers.mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w.env]
POWERBI_CLIENT_ID = "your-application-client-id"
POWERBI_TENANT_ID = "your-directory-tenant-id"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите mbrummerstedt/powerbi-analyst-mcp, а в поле команды запуска — строку ниже:
uvx powerbi-analyst-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w
    command: uvx
    args:
      - "powerbi-analyst-mcp"
    env:
      POWERBI_CLIENT_ID: your-application-client-id
      POWERBI_TENANT_ID: your-directory-tenant-id
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "mbrummerstedt-powerbi-analyst-mcp-c0vsnkrj2w": {
      "command": "uvx",
      "args": [
        "powerbi-analyst-mcp"
      ],
      "env": {
        "POWERBI_CLIENT_ID": "your-application-client-id",
        "POWERBI_TENANT_ID": "your-directory-tenant-id"
      }
    }
  }
}

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

QGIS MCP

QGIS MCP

от jjsantos01

Создаёт, открывает и сохраняет проекты QGIS, добавляет векторные и растровые слои, запускает алгоритмы обработки данных.

Python⭐ 1131
keboola/keboola-mcp-server

keboola/keboola-mcp-server

официальный

от keboola

MCP сервер для подключения AI-агентов к Keboola: он открывает доступ к данным, SQL-запросам и трансформациям без написания кода. Идеален для аналитиков и разработчиков, которые хотят кормить ИИ актуальными данными напрямую.

Python⭐ 85
ergut/mcp-bigquery-server

ergut/mcp-bigquery-server

от ergut

Этот MCP сервер позволяет AI-ассистентам выполнять read-only запросы к BigQuery через обычный чат. Поддерживает защиту PII-полей, автосканирование схем и гибкую настройку. Идеален для безопасного анализа данных без написания SQL.

TypeScript⭐ 148
jovezhong/mcp-timeplus

jovezhong/mcp-timeplus

от jovezhong

MCP сервер для интеграции Timeplus с AI-ассистентами: выполняйте SQL-запросы, управляйте базами, таблицами и Kafka-потоками, настраивайте ETL и подключайтесь к Apache Iceberg. Удобен для аналитики реального времени.

Python⭐ 12
lucashild/mcp-server-bigquery

lucashild/mcp-server-bigquery

от lucashild

MCP сервер для Google BigQuery: LLM просматривает схемы таблиц и выполняет SQL-запросы. Полезен аналитикам и разработчикам для AI-интеграции с данными.

Python⭐ 131
motherduckdb/mcp-server-motherduck

motherduckdb/mcp-server-motherduck

от motherduckdb

MCP сервер для SQL аналитики, соединяющий AI-помощников с DuckDB. Работает с локальными файлами, S3 и MotherDuck. Выполняйте запросы, исследуйте схемы, переключайте соединения. Полезен разработчикам и аналитикам.

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

Лука Никитин