Skip to main content
Glama

powerbi-mcp

Power BI MCPアクセス用の内部Node.jsサービスです。通常はPM2の下でNext.jsアプリと並行して実行されるように設計されており、Next.jsサーバー層からのみ呼び出されます。

このプロジェクトはGoogle Ads MCPリポジトリを複製するものではありません。焦点を絞ったMCPバックエンドという同じ考え方に従っていますが、Power BI/Fabric、直接的なJSON-RPC呼び出し、およびPBIボットPOCですでに実証済みのエージェント/ツール反復処理に合わせて調整されています。

機能

  • ユーザーのベアラートークンを使用してFabric Power BI MCPエンドポイントを呼び出します。

  • JSON-RPCを通じてMCPツールを一覧表示および実行します。

  • より優れたモデルプロンプトのために、Power BIワークスペースとセマンティックモデルを検出します。

  • Power BI MCPツールを呼び出すことができる、OpenAI互換のエージェントループを実行します。

  • Next.jsバックエンド用の内部HTTPエンドポイントを公開します。

  • powerbi-mcpという名前のPM2プロセス設定が付属しています。

エンドポイント

  • GET /health

  • POST /internal/mcp/tools

  • POST /internal/mcp/call

  • POST /internal/powerbi/catalog

  • POST /internal/chat

  • POST /internal/chat/json

ブラウザ/プロキシ互換ルートも/api/*の下で利用可能です:

  • GET /api/auth/status

  • GET /api/auth/login

  • GET /api/auth/callback

  • GET /api/auth/logout

  • POST /api/mcp/tools

  • POST /api/mcp/call

  • POST /api/powerbi/catalog

  • POST /api/chat

  • POST /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

LiteLLM/OpenAI互換ゲートウェイの設定で.envを埋めてください。 ブラウザルートについては、AzureリダイレクトURIをNext.jsプロキシコールバックに設定してください。例:

http://localhost:3000/api/powerbi-mcp/auth/callback

ローカルでの実行

npm run dev

デフォルトのサービスURLは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.tsx

  • app/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を呼び出してください。サーバー送信イベントが返されます:

data: {"token":"..."}
data: [DONE]

注意事項

  • このサービスは、/internal/*を通じたトークン転送と、/api/auth/*を通じたブラウザセッションフローの両方をサポートしています。

  • 意図的にプライベートネットワーク境界の背後に配置する場合を除き、本番環境では127.0.0.1にバインドしてください。

  • 信頼できる内部呼び出し元のみがサービスを使用できるように、デプロイ前にINTERNAL_API_KEYを設定してください。

A
license - permissive license
-
quality - not tested
C
maintenance

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