インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、Microsoft Power BI をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
概要
Microsoft の職場アカウントでサインインする Power BI REST API:ワークスペース、セマンティックモデル、レポート、ダッシュボード、データフロー、ゲートウェイ、アプリ、モデルへの DAX クエリ、データソース、パラメーター、更新履歴とスケジュール、更新の開始とキャンセル。モデルのパラメーター変更はインストール時にオフです。
こう聞いてみよう
Microsoft Power BI のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → Microsoft Power BI をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
Microsoft Power BI + Microsoft Copilot
Microsoft の職場アカウントでサインインする Power BI REST API:ワークスペース、セマンティックモデル、レポート、ダッシュボード、データフロー、ゲートウェイ、アプリ、モデルへの DAX クエリ、データソース、パラメーター、更新履歴とスケジュール、更新の開始とキャンセル。モデルのパラメーター変更はインストール時にオフです。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID
ステップ 1 — 認証情報を取得
設定は最初に一度だけ、約 10 分です。Power BI ライセンス(Free、Pro、Premium Per User)付きの Microsoft 職場または学校アカウントと、無料の Microsoft Entra アプリ登録が必要です。組織によっては管理者しか同意を付与できません。
- https://entra.microsoft.com を開き、Applications、App registrations、New registration に進みます。別の Microsoft コネクタのアプリ登録を再利用することもできます。
- サポートされるアカウントの種類は、通常 Accounts in this organizational directory only を選びます。Power BI は職場または学校アカウントでのみ動作し、個人の Microsoft アカウントでは使えません。
- リダイレクト URI:プラットフォーム Web で、AnythingMCP Cloud なら
https://cloud.anythingmcp.com/api/mcp-oauth/callback、AnythingMCP を自分でホストしている場合は<your AnythingMCP URL>/api/mcp-oauth/callbackです。1 文字単位で一致させる必要があり、違うと Microsoft が AADSTS50011 を返します。 - API permissions、Add a permission、Power BI Service、Delegated permissions で、
Workspace.Read.All、Dataset.ReadWrite.All、Report.Read.All、Dashboard.Read.All、Dataflow.ReadWrite.All、Gateway.Read.All、App.Read.Allにチェックを入れます。読み取り専用のコネクタにするなら、代わりにDataset.Read.AllとDataflow.Read.Allを選びます。組織でユーザー自身が同意できない場合は、続けて Grant admin consent をクリックします。 - Certificates & secrets、New client secret で、シークレットの Value(一度しか表示されません)をコピーします。Secret ID ではありません。
- Application (client) ID を
MICROSOFT_CLIENT_IDに、シークレットの値をMICROSOFT_CLIENT_SECRETに貼り付けます。MICROSOFT_TENANT_IDには Directory (tenant) ID、contoso.onmicrosoft.comのようなドメイン、またはマルチテナントアプリならorganizationsを設定します。commonとconsumersは使えません。コネクタをインストールします。 - コネクタのページで Authorize with Provider をクリックし、Power BI ライセンスを持つユーザーでサインインします。リフレッシュトークンは暗号化して保存され、アクセストークンは自動で更新されます。確認のため
power_bi_list_workspacesを実行します。
スコープ: コネクタは https://analysis.windows.net/powerbi/api/.default offline_access を要求します。.default は手順 4 でチェックした Power BI の権限を付与し(追加や削除はそこで行い、もう一度承認します)、offline_access はリフレッシュトークンを与えます。このコネクタに Microsoft Graph のスコープは追加しないでください。1 つのトークンは 1 つの API にしか使えません。
誰の権限で動くか: AI には、サインインしたユーザーが Power BI サービスで見られるものがそのまま見えます。行レベルセキュリティのあるモデルは、そのユーザーが見られる行だけを返します。
読み取れるデータ: ワークスペースと、どのロールで誰がアクセスできるか;ワークスペースごとのセマンティックモデル(データセット)、レポートとそのページ、ダッシュボードとそのタイル、データフロー、.pbix・.rdl・.xlsx・.json ファイルのインポート;ワークスペース ID を持たないユーザーのマイ ワークスペース(My workspace)の内容。power_bi_list_my_datasets、power_bi_list_my_reports、power_bi_list_my_dashboards で取得します;レポートとダッシュボードを含むインストール済みアプリ;モデルのデータソースと Power Query パラメーター;更新履歴(失敗した更新は serviceExceptionJson にエラーがあります)、拡張更新の詳細、更新スケジュール;データフローの更新トランザクションとデータソース;ユーザーが管理するオンプレミスゲートウェイ、そのデータソース、ゲートウェイがデータソースに到達できるかどうかです。
DAX クエリ: power_bi_execute_dax_query はセマンティックモデルの数値で質問に答えます。テナント設定 Dataset Execute Queries REST API(新しい管理ポータルでは Semantic model Execute Queries REST API。Admin portal、Tenant settings、Integration settings)が有効で、ユーザーがモデルの Read と Build の権限を持っている必要があります。Azure Analysis Services でホストされるモデルには対応しません。1 回の呼び出しで 1 クエリ、EVALUATE で始め(DEFINE の後でも可)、DAX のみです。モデルを把握するには、EVALUATE COLUMNSTATISTICS() でテーブルと列を一覧し、EVALUATE TOPN(5, 'Table') でサンプル行を表示します。API はメジャーを一覧しない(INFO 関数と DMV クエリは拒否されます)ため、AI はメジャー名をあなたに尋ねるか、レポートに表示されているものを使い、生の列を合計するよりモデルのメジャーを優先します。impersonated_user_name は行レベルセキュリティ下で別のユーザーの見え方を確認するもので、モデルへの書き込み権限が必要です。
書き込める内容: power_bi_refresh_dataset、power_bi_cancel_refresh、power_bi_refresh_dataflow はインストール時にオンです。更新はソースを読み込み、1 日の更新回数の上限に数えられるため、AI は開始前にあなたに確認します。データセットの更新は本文なしの 202 を返し、新しい実行は進行中 Unknown のステータスで power_bi_get_refresh_history の先頭に表示されます。共有容量(Pro)では、スケジュール更新を含めモデルごとに 1 日 8 回まで、指定できるのは notify_option のみです。type、objects、commit_mode などのオプションを付けると拡張更新になり、Premium、PPU、Fabric の容量が必要で、notify_option は送れません。power_bi_get_refresh_details で追跡し power_bi_cancel_refresh でキャンセルできるのは拡張更新だけです。
インストール時はオフ: power_bi_update_dataset_parameters です。モデルの Power Query パラメーター(たとえば読み込むサーバーや期間)を変更し、次回の更新から反映されます。AI にそれをさせる場合だけ、ツール単位でオンにしてください。
データ形式: 一覧は {"value": [...]} で返ります。ID は GUID です。時刻は UTC の ISO 8601 です。webUrl で Power BI サービスの項目が開きます。DAX の結果は results[0].tables[0].rows に入り、列のキーは Table[Column]、計算列は [Name] です。
ページングとフィルター: 一覧ツールはすべてを一度に返します。例外は power_bi_list_workspaces と power_bi_list_workspace_users で、top と skip でページングします。ワークスペースは OData で絞り込めます。例:contains(name,'Sales')。
制限: DAX クエリが返すのは 1 つのテーブルで、最大 100,000 行または 1,000,000 値のどちらか先に達するほう、かつ 15 MB までです。ユーザーごとに毎分 120 クエリまで実行できます。Power BI REST API はユーザー単位とテナント単位でスロットリングし、429 応答には Retry-After が付きます。Premium 容量は過負荷になると更新を遅らせ、1 時間を超えてスロットリングされた更新は失敗します。
よくあるエラー: 401 は承認の期限切れまたは取り消し、あるいはクライアントシークレットの期限切れを意味します。必要なら新しいシークレットを貼り付け、もう一度 Authorize with Provider をクリックしてください。403 PowerBINotAuthorizedException または Unauthorized は、ユーザーがそのワークスペースや項目にアクセスできない、手順 4 の権限が足りない、または DAX の場合に Build 権限かテナント設定が欠けていることを意味します。404 ItemNotFound または PowerBIEntityNotFound は ID の誤りか、項目が別のワークスペースにあることを意味します。400 DatasetExecuteQueriesError は DAX クエリが無効であることを意味し、エンジンのメッセージが理由を示します。更新時の 400 は、拡張オプションと一緒に notify_option を送った、共有容量で拡張オプションを使った、またはすでに更新が実行中であることを意味します。
このコネクタはレポート、ダッシュボード、モデルの作成・編集・削除は行わず、.pbix ファイルのアップロードもせず、Microsoft Graph も使いません。個人の Microsoft アカウントでは動作しません。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Microsoft Copilot にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
Microsoft Copilot は、Copilot Studio で作成したエージェントを通じて MCP サーバーを使います。AnythingMCP をツールとしてエージェントに追加し、そのエージェントを Microsoft 365 Copilot と Teams に公開します。Copilot Studio は Microsoft のクラウドから Streamable HTTP で接続し、AnythingMCP はこれに対応しています。
- Copilot Studio でエージェントを開き(または新規作成し)、Tools で Add a tool → New tool → Model Context Protocol を選びます。
- Server name(例:
AnythingMCP)、コネクタでできることを説明する Server description、Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDを入力します。Copilot Studio はこの説明をもとに、いつサーバーを呼び出すかを判断します。 - 認証で API key を選び、Type を Header、ヘッダー名を
X-API-Keyにして Create を選びます。 - Add tool で Create a new connection を選び、AnythingMCP の MCP API キー(MCP Servers → 対象のサーバー → API keys)を貼り付けて Add to agent を選びます。
- エージェントの Test ウィンドウで試します。
Microsoft Power BIのツールが必要になる依頼をしてみましょう。 - Publish を選び、Channels → Microsoft 365 and Microsoft Teams で Make agent available in Microsoft Copilot を選択したまま Add channel を選びます。See agent in Teams で自分用にインストールされます。Microsoft 365 Copilot では @ を入力してエージェントを選びます。
ユーザーごとにサインインさせたい場合は、API キーの代わりに OAuth 2.0 → Dynamic discovery を選びます。各ユーザーは、エージェントが初めて呼び出すときに AnythingMCP にサインインします。
セルフホストの場合は、https://cloud.anythingmcp.com の代わりにインスタンスの公開 HTTPS アドレスを使ってください。Copilot Studio は Microsoft のクラウドから接続するため、localhost は使えません。
利用可能なツール
| Tool | What it does |
|---|---|
power_bi_list_workspaces | List the workspaces (groups) the signed-in user can access: id, name, isReadOnly, isOnDedicatedCapacity (Premium or Fabric capacity) and… |
power_bi_get_workspace | Read one workspace: name, read-only flag, capacity and default semantic model storage format |
power_bi_list_workspace_users | List who has access to a workspace: email or app id, display name, principalType (User, Group, App) and groupUserAccessRight (Admin… |
power_bi_list_datasets | List the semantic models (datasets) of a workspace: id, name, configuredBy (owner), isRefreshable, isOnPremGatewayRequired… |
power_bi_list_my_datasets | List the semantic models (datasets) in the signed-in user's My workspace |
power_bi_get_dataset | Read one semantic model (dataset) of a workspace: name, owner (configuredBy), isRefreshable, storage mode, whether it needs a gateway or an… |
power_bi_execute_dax_query | Run a DAX query against a semantic model and get the rows back as JSON (results[0].tables[0].rows, keys like "Table[Column]" or "[Measure]") |
power_bi_list_dataset_datasources | List the data sources of a semantic model: datasourceType (Sql, AnalysisServices, SharePointList, Web, File, ...), connectionDetails… |
power_bi_list_dataset_parameters | List the Power Query parameters of a semantic model: name, type, currentValue, isRequired and suggestedValues |
power_bi_get_refresh_history | Refresh history of a semantic model, newest first: requestId, refreshType (Scheduled, OnDemand, ViaApi, ...), startTime, endTime, status… |
power_bi_get_refresh_details | Execution details of one refresh of a semantic model (enhanced refreshes started through the API on Premium, PPU or Fabric capacity)… |
power_bi_get_refresh_schedule | The scheduled refresh of a semantic model: enabled, days, times, localTimeZoneId and notifyOption |
power_bi_list_reports | List the reports of a workspace: id, name, reportType (PowerBIReport or PaginatedReport), the datasetId it reads, description and webUrl |
power_bi_list_my_reports | List the reports in the signed-in user's My workspace: id, name, type, datasetId and webUrl |
power_bi_get_report | Read one report of a workspace: name, type, the datasetId (semantic model) behind it, description and webUrl |
power_bi_list_report_pages | List the pages of a Power BI report: name (the internal id used in URLs), displayName and order |
power_bi_list_dashboards | List the dashboards of a workspace: id, displayName, isReadOnly and webUrl |
power_bi_list_my_dashboards | List the dashboards in the signed-in user's My workspace: id, displayName, isReadOnly and webUrl |
power_bi_list_dashboard_tiles | List the tiles of a dashboard: id, title, the reportId and datasetId each tile comes from, and its size (rowSpan, colSpan) |
power_bi_list_dataflows | List the dataflows (Gen1) of a workspace: objectId, name, description and configuredBy |
power_bi_list_dataflow_transactions | Refresh transactions of a dataflow, newest first: id, refreshType, startTime, endTime and status |
power_bi_list_dataflow_datasources | List the data sources a dataflow reads: type, connection details and gateway ids |
power_bi_list_gateways | List the on-premises data gateways the signed-in user administers: id, name, type and gatewayStatus |
power_bi_list_gateway_datasources | List the data sources configured on a gateway: id, datasourceName, datasourceType, connectionDetails and credentialType |
power_bi_get_gateway_datasource_status | Check whether a gateway can reach one of its data sources |
power_bi_list_apps | List the Power BI apps installed for the signed-in user: id, name, description, publishedBy and lastUpdate |
power_bi_get_app | Read one installed app: name, description, publisher and last update |
power_bi_list_app_reports | List the reports of an installed app (ids are the app copies; datasetId names the semantic model) |
power_bi_list_app_dashboards | List the dashboards of an installed app: id, displayName, isReadOnly and webUrl |
power_bi_list_imports | List the imports (uploads of .pbix, .rdl, .xlsx or .json files) of a workspace: id, name, importState (Publishing, Succeeded, Failed)… |
power_bi_get_import | Read one import of a workspace: its state and the reports and semantic models it created |
power_bi_refresh_dataset | Start a refresh of a semantic model |
power_bi_cancel_refresh | Cancel a running enhanced refresh of a semantic model (one started through the API with enhanced options) |
power_bi_refresh_dataflow | Start a refresh of a dataflow |
power_bi_update_dataset_parameters | Change Power Query parameter values of a semantic model (for example a server name or a date range) |
プロンプトの例
- 「Sales ワークスペースのセマンティックモデルのうち、前回の更新に失敗したものはどれで、原因は何ですか?」
- 「Sales Overview レポートの背後にあるモデルで、2026 年第 3 四半期の地域別売上はいくらでしたか?」
- 「Finance モデルのテーブルと列、そして Orders テーブルのサンプル行を 5 行見せてください。」
- 「Executive Summary レポートのページと、KPI ダッシュボードのタイルを一覧にしてください。」
- 「Inventory モデルの今日の更新履歴を見せて、私が確認したら更新を開始してください。」
FAQ
どの Copilot が対象ですか? 職場で使う Microsoft 365 Copilot で、Copilot Studio のエージェントを通じて利用します。個人アカウント向けの Microsoft Copilot アプリでは、独自の MCP サーバーを追加できません。
何が必要ですか? エージェントを作成するために、Copilot Studio を利用できる職場アカウント(ライセンスまたは試用版)が必要です。Microsoft 365 Copilot や Teams でエージェントを使う人には、エージェントへのアクセス権が必要です。共有するか、管理者に組織向けに公開してもらってください。組織が Power Platform コネクタにデータ ポリシーを適用している場合は、MCP サーバーにも適用されます。
エージェントがツールを呼び出しません。 ヘッダー名が正確に X-API-Key であること、キーが URL と同じ MCP サーバーのものであることを確認し、Server description を具体的に書いてください。Copilot Studio はこの説明をもとにサーバーを呼び出すかどうかを判断します。変更のたびにエージェントを再公開し、開いているチャットでは "start over" と入力すると新しいバージョンになります。
次のステップ
このガイドは役に立ちましたか?