Dataverse MCPプラグインの導入は1コマンドで完了する。Claude Codeで /plugin install dataverse@claude-plugins-official を実行すれば、Python3・PAC CLI・.NET SDK・Azure CLI・Node.js・Dataverse CLI・Gitの一式が自動で揃う。

難しいのはその先だ。接続を成立させるには、テナント全体の管理者同意(G1)と環境ごとの許可リスト登録(G2)という2段のゲートが待つ。どちらも迂回できない。そしてG2にはManaged Environmentが必須条件であり、Developer Plan環境ではデフォルトで設定画面が現れない可能性がある。

この記事では「どのテナントでMCPが通るか」の判断軸を整理する。対象読者は、Claude CodeやCursorからDataverseを操作しようとしている個人開発者・受託開発者。前提:Power Platformの環境概念(Dataverseテナント・環境・Managed Environment)について基礎知識があること。


2段ゲートの全体像:先に地図を見ておく

MCP接続が成立するまでの構造はこうなっている。

[Claude Code]
     ↓ プラグイン導入 (/plugin install 1コマンド)
[G1: テナント全体の管理者同意]
     ↓ グローバル管理者 or 特権ロール管理者が承認
[G2: 環境ごとの許可リスト登録]
     ↓ Managed Environment が有効な環境のみ設定可能
[Dataverse MCP Server]
     ↓
[Dataverseデータ操作(読み取り・書き込み・削除系)]

G1→G2の順に通過が必要で、G1を通過していてもG2が設定されていなければMCPは機能しない。2段とも「自分が管理者でないと動かせない」仕組みになっている。


G1:テナント全体の管理者同意

承認者:Azure ADのグローバル管理者、または特権ロール管理者。

プラグインはテナントIDとクライアントID入りの同意URLを自動生成して案内する。承認操作そのものはプラグインでは代行できない。一次ソース:Dataverse Plugin Is Now on the Claude Marketplace(Microsoft Power Platform Blog)

顧客テナントでは、G1の時点で顧客側のグローバル管理者の承認が必要になる。管理者を説得できなければMCP接続は始まらない。


G2:環境ごとの許可リスト登録

G1通過後、使いたい環境ごとに許可リストへの追加が必要だ。

操作パス:Power Platform管理センター → 管理 → 環境 → (対象環境名)→ 設定 → 製品 → 機能 →「Dataverse MCP Server」セクション →「Allow MCP clients to interact with Dataverse MCP server」をオン。

デフォルトではCopilot Studioのみ許可リスト登録済み。Claude Code・Cursor・GitHub Copilotはいずれも追加登録が必要になる。ツールレベルで読み取り専用と書き込み可能を区別し、承認クライアントリストを管理できる。(一次ソース:Microsoft Learn – Connect to Dataverse with MCP in non-Microsoft clients

ここに最重要の条件がある。公式ドキュメントには次のように記されている。

“The environment must have Managed Environment enabled for this toggle to appear. If you do not see it, go to the environment overview and enable Managed Environment first, then return to Features.”

Managed Environment(マネージド環境)とは、DLPポリシー適用・利用テレメトリ・IPファイアウォール制御などエンタープライズ向けガバナンス機能を有効化した環境区分のこと。G2のトグルスイッチは、この区分が有効な環境にのみ出現する。


Developer Plan環境ではどうなるか

問題になるのが、無料のDeveloper Planで作った環境だ。

Managed Environmentの有効化はPremiumライセンスが前提になる。Developer Plan環境はデフォルトでManaged Environmentではないため、G2の設定画面(トグル)が表示されない可能性が高い。設計意図についてはリリースプランにも記載がある:「The Dataverse MCP server requires a Managed Environment, which is a deliberate architectural decision by Microsoft.」(一次ソース:Microsoft Learn – Dataverse MCP Server release plan

なおこの点は実機での確認が完了していない推定を含む。実際の挙動は環境によって異なる可能性がある。

つまり「自devテナントなら通る」という前提は、次のように限定して読む必要がある。

「Managed Environmentを有効化済みのdevテナントなら通る」

Developer Planテナントに対してManaged Environmentを有効化する経路はある。Power Platform管理センターの環境概要ページから変換できるが、ライセンス要件を満たしている必要がある。

devテナントで設計テンプレートを試しながらMCPの挙動を確認していくなら、M365 Developer Programの個人テナント+Managed Environment変換の組み合わせが出発点になる。
→ 関連記事:[AIエージェントと個人開発テナントの使い分け全体像](リンク予定)


MCPが使えない場合の退避パス

G2が設定できない環境でのDataverse操作には、MCP接続を経由しない方法がある。

退避パス1:管理者にManaged Environment変換を依頼する

Power Platform管理者に対象環境をManaged Environmentに変換してもらう。自分が管理者であれば自分で対応できる。変換後にG2の設定画面が出ることを確認してから許可リストに追加する。

退避パス2:Python SDK + PAC CLIのみで操作する

MCP接続を諦め、pac auth createでOS資格情報ストアに認証情報を格納した上で、PAC CLIコマンドでDataverseを操作する。自然言語クエリは使えなくなるが、AIがコードを生成してPAC CLI経由で実行するフローは成立する。

認証情報はOS資格情報ストア(Windows Credential Manager等)に格納されるため、平文ファイルには落ちない。

テナント・環境の状況対応
自分が管理者 + Managed Env有効G1→G2を通してMCP接続
自分が管理者だがManaged Env未設定管理センターから変換(退避パス1)
Developer Planでライセンス不足Python SDK + PAC CLI(退避パス2)
顧客テナント(G1承認者が別人)管理者説得 or 退避パス2

まとめ:どのテナントで使えるか

DataverseへのMCP接続が成立する条件は、G1(グローバル管理者承認)とG2(Managed Environment有効 + 許可リスト登録)の2つをともに満たすこと。どちらが欠けても動かない。

2段を通過できるのは実質的に「自分がグローバル管理者であり、かつManaged Environmentを有効化した環境」に限られる。Developer Plan環境ではそのままではG2の設定画面が出ない可能性があり、「自devテナントで試してみたが設定項目が見当たらない」という状況はManaged Environmentの確認から始めるとよい。

顧客テナントへのインバウンドMCP接続は、この権限設計によって構造的に遮断されている。制約に見えるが、AIエージェントに顧客環境への経路を無断で開かせない抑制としても機能している。


次の一歩:対象環境が Managed Environment かどうかを Power Platform 管理センター → 環境一覧で確認する。「Managed」バッジがあればG2に進める。なければ退避パス1か2を選択する。

参考Dataverse MCP Server: Understanding the New Tool Shape(Power Platform Blog・13ツール一覧)
参考microsoft/dataverse-skills(GitHub)