powerbi-mcp
powerbi-mcp
Внутренняя служба Node.js для доступа к Power BI MCP. Она предназначена для работы параллельно с приложением Next.js, обычно под управлением PM2, и вызывается только с серверного уровня Next.js.
Этот проект не является копией репозитория Google Ads MCP. Он следует той же идее специализированного бэкенда MCP, но адаптирован для Power BI/Fabric, прямых вызовов JSON-RPC и итерации агента/инструментов, уже проверенной в POC бота PBI.
Что он делает
Вызывает эндпоинт Fabric Power BI MCP с токеном носителя (bearer token) пользователя.
Перечисляет и выполняет инструменты MCP через JSON-RPC.
Обнаруживает рабочие области Power BI и семантические модели для улучшения промптов моделей.
Запускает цикл агента, совместимый с OpenAI, который может вызывать инструменты Power BI MCP.
Предоставляет внутренние HTTP-эндпоинты для бэкенда Next.js.
Поставляется с конфигурацией процесса PM2 под названием
powerbi-mcp.
Эндпоинты
GET /healthPOST /internal/mcp/toolsPOST /internal/mcp/callPOST /internal/powerbi/catalogPOST /internal/chatPOST /internal/chat/json
Маршруты для совместимости с браузером/прокси также доступны по адресу /api/*:
GET /api/auth/statusGET /api/auth/loginGET /api/auth/callbackGET /api/auth/logoutPOST /api/mcp/toolsPOST /api/mcp/callPOST /api/powerbi/catalogPOST /api/chatPOST /api/chat/json
Все внутренние маршруты принимают токен доступа Power BI пользователя в одной из следующих форм:
Authorization: Bearer <power-bi-access-token>x-powerbi-access-token: <power-bi-access-token>Поле JSON-тела
accessToken
Если настроен INTERNAL_API_KEY, также отправьте:
x-internal-api-key: <your-internal-key>Установка
cd powerbi-mcp
npm install
cp .env.example .env
npm run checkЗаполните .env настройками вашего шлюза, совместимого с LiteLLM/OpenAI.
Для маршрута браузера установите URI перенаправления Azure на обратный вызов прокси Next.js, например:
http://localhost:3000/api/powerbi-mcp/auth/callbackЗапуск локально
npm run devURL службы по умолчанию — http://127.0.0.1:3101.
Запуск с PM2
pm2 start ecosystem.config.js
pm2 statusОжидаемое имя процесса:
powerbi-mcpВстраиваемый маршрут Next.js
Храните файлы маршрутов Next.js вне этого репозитория бэкенда. В этой рабочей области они находятся в соседней папке:
../powerbi-analyst-next-dropin/appСкопируйте эти файлы в реальную директорию ads-next/app:
app/Power_BI_Analyst/page.tsxapp/api/powerbi-mcp/[...path]/route.ts
Затем перейдите по адресу:
/Power_BI_AnalystПрокси Next.js вызывает этот бэкенд по адресу:
http://127.0.0.1:3101/api/*Пример сервера Next.js
Вызывайте это только из серверного маршрута, серверного действия или обработчика API. Не раскрывайте токен доступа Power BI коду на стороне браузера за пределами вашего обычного потока аутентификации.
const response = await fetch("http://127.0.0.1:3101/internal/chat/json", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-internal-api-key": process.env.POWERBI_MCP_INTERNAL_API_KEY,
"Authorization": `Bearer ${powerBiAccessToken}`
},
body: JSON.stringify({
message: "Show total sales this month vs last month",
history: []
})
});
const data = await response.json();Для потоковых ответов UI вызывайте /internal/chat или /api/chat; он возвращает события, отправляемые сервером (server-sent events):
data: {"token":"..."}
data: [DONE]Примечания
Эта служба поддерживает как пересылку токенов через
/internal/*, так и поток сеанса браузера через/api/auth/*.Привязывайтесь к
127.0.0.1в рабочей среде, если только вы намеренно не помещаете это за границу частной сети.Установите
INTERNAL_API_KEYперед развертыванием, чтобы службу могли использовать только доверенные внутренние вызывающие стороны.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/ketangupta1-ai/powerbi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server