Mcp Dataverse について
Mcp Dataverseは、AIエージェントからMicrosoft Dataverseのレコード、スキーマ、管理機能へリアルタイムにアクセスするMCPサーバーです。幅広いデータ・メタデータ操作に加え、複数の認証方式と破壊的操作への保護を備えています。
主な機能
- 01ODataとFetchXMLのクエリ
- 02レコードのCRUDと一括操作
- 03スキーマ、メタデータ、ソリューションのツール
- 04監査ログとトレースの確認
- 053種類の認証方式
活用シーン
- 01Dataverseレコードの検索と更新
- 02テーブルとリレーションの確認
- 03監査ログやプラグイントレースの調査
- 04CI/CD向けの非対話型アクセス
MCP 対応
Dataverseを操作するツール、リソース、ガイド付きワークフローをMCPクライアントに公開します。stdioとHTTPのトランスポートに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-dataverseMCP_CONFIG_PATHPath to a config.json file (overrides all other env vars). Recommended for VS Code / Claude Desktop setups.DATAVERSE_ENV_URLYour Dataverse environment URLローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Dataverse
MCP Dataverse を選ぶ理由
AI エージェントはスキーマを幻覚し、列名を推測し、壊れた OData クエリを作成します。このサーバーは、Model Context Protocol を通じて、Dataverse 環境のスキーマ、レコード、メタデータ、ソリューションにリアルタイムでアクセスできるようにします。
- 3 種類の認証モード — デバイスコード(ローカル)、クライアント資格情報(CI/CD)、マネージド ID(Azure ホスト)
- あらゆる MCP クライアントで動作 — VS Code、Claude、Cursor、Windsurf、Gemini、Codex CLI
- アトミックなツール — 各ツールは 1 つのことを的確に行い、AI が適切なツールを選びます
- 構造化出力 — すべての応答は、テキストと MCP の
structuredContentの両方で{summary, data, suggestions}を返します(すべてのコアツールでoutputSchemaを宣言しています) - 安全対策 — 各ツールは読み取り専用または破壊的な操作を示すヒントを宣言し、最もリスクの高い操作では
confirm: trueの明示が必要です - 暗号化されたトークンキャッシュ — AES-256-GCM で認証情報をキャッシュし、ツールの出力には含めません
インストール
npx mcp-dataverse install
対話式ウィザードが環境を設定し、VS Code にサーバーを登録して、2 分以内に Microsoft アカウントを認証します。
Node.js 20+ が必要です。他のクライアント(Claude、Cursor、Windsurf…)については、複数クライアントのセットアップをご覧ください。
更新
npx mcp-dataverse update
再設定は不要です。既存のセットアップを確認し、変更点を表示するだけです。npx は実行するたびに最新バージョンを自動取得するため、MCP クライアントを再起動するだけで新しいツールを利用できます。
認証
サーバーの実行場所に応じて、3 つのモードから選択します。
| モード | 用途 |
|---|---|
| デバイスコード(デフォルト) | ローカル開発 — Microsoft に対話形式でログインし、トークンをディスクにキャッシュします |
| クライアント資格情報 | CI/CD、Docker、Azure サービスなどの無人実行 — authMethod: "client-credentials" + アプリの登録 |
| マネージド ID | Azure ホスト(App Service、Container Apps)— シークレット不要、authMethod: "managed-identity" |
デバイスコードのクイックスタート: 最初のツール呼び出し時に認証が始まります。
View → Output → MCPを開くと、サインインコードが表示されますhttps://microsoft.com/deviceloginにアクセスしてコードを入力し、職場のアカウントでサインインします- トークンは暗号化してキャッシュされるため、次回以降の起動時に操作は不要です
クライアント資格情報とマネージド ID の設定については、認証ドキュメントをご覧ください。
機能
| カテゴリ | 数 | 説明 |
|---|---|---|
| メタデータ | 9 | テーブル、スキーマ、リレーションシップ、オプションセット、エンティティキー |
| クエリ | 3 | OData、FetchXML、ページネーションによる取得 |
| CRUD | 6 | 取得、作成、更新、削除、アップサート、割り当て |
| リレーション | 4 | 関連付け、一括関連付け、関連付け解除、関連付けのクエリ |
| アクションと関数 | 6 | バインドあり/なしの Dataverse アクションと関数 |
| バッチ | 1 | 最大 1000 件の操作をアトミックに実行 |
| ソリューション | 2 | カスタマイズの公開、サイトマップの作成 |
| 検索 | 1 | 全文検索による関連性検索 |
| ユーザーとチーム | 4 | ユーザー、ロール、チーム、ロールの割り当て |
| RBAC | 7 | ロールの特権:一覧表示、割り当て、削除、追加、置換、取得、チーム |
| ファイル | 2 | ファイル列と画像列のアップロード/ダウンロード |
| 監査とトレース | 3 | 監査ログ、プラグイントレースログ、ワークフロートレースログ |
| 注釈 | 2 | メモとファイル添付 |
| カスタマイズ | 4 | カスタムアクション、プラグイン、環境変数、接続参照 |
| 属性 | 4 | 列の作成、更新、削除;ルックアップ列の種類 |
| スキーマ(書き込み) | 2 | カスタムテーブルとリレーションシップの作成 |
| レコードアクセス | 4 | レコード共有の確認、許可、取り消し;レコードの統合 |
| アシスタンス | 2 | ツールルーター、ツールタグ |
| その他 | … | 差分同期、なりすまし、ビュー、ビジネスユニット、重複検出 |
HTTP トランスポート
複数のクライアントで使用する HTTP サーバーとして実行します:
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 MCP_HTTP_SECRET=mysecret node dist/server.js
| 環境変数 | デフォルト | 説明 |
|---|---|---|
MCP_TRANSPORT | stdio | http を指定すると HTTP トランスポートが有効になります |
MCP_HTTP_PORT | 3000 | リッスンポート(/mcp エンドポイント、/health ヘルスチェック) |
MCP_HTTP_SECRET / BEARER_TOKEN | — | インバウンド認証用の固定ベアラートークン |
ENTRA_TENANT_ID + ENTRA_CLIENT_ID | — | インバウンドトークンを Entra v2.0 JWT として検証します(RFC 9728 のディスカバリーが自動的に有効になります) |
MCP_HTTP_SESSION_TTL_MS | 1800000 | アイドルセッションの削除タイムアウト(30 分;0 で無効) |
MCP_HTTP_REQUIRE_AUTH | — | true = インバウンド認証が未設定の場合、起動を拒否します |
MCP_HTTP_CORS_ORIGIN | * | 許可する CORS オリジン — ホスト環境へのデプロイでは範囲を制限してください |
MCP_HTTP_JSON_RESPONSE | true | JSON レスポンス(false = SSE ストリーミング) |
VS Code / Copilot で接続するには:
{
"servers": {
"dataverse": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer mysecret"
}
}
}
}
トラブルシューティング
| 症状 | 解決方法 |
|---|---|
| サインインプロンプトが表示されない | View → Output → MCP を開きます。デバイスコードが表示されます |
No MSAL accounts found | npx mcp-dataverse-auth を実行してから、サーバーを再起動します |
Authentication timed out | MCP サーバーを再起動します。新しいコードが自動的に生成されます |
| エージェントモードにサーバーが表示されない | npx mcp-dataverse install または npx mcp-dataverse doctor を実行します |
| HTTP エラー | npx mcp-dataverse doctor を実行して、設定と接続を診断します |
パフォーマンスのヒント
MCP Dataverse は包括的に設計されていますが、ほとんどの AI モデルは、コンテキスト内のツールが少ないほうが適切に動作します。エージェントの集中力と応答性を保つため、クライアントのツール選択画面(例:VS Code Chat パネル)で不要なツールの選択を解除してください。
ロードマップ
| バージョン | 機能 | ステータス |
|---|---|---|
| v0.4 | HTTP トランスポート + 属性管理 + スキーマの一貫性 | ✅ リリース済み |
| v0.5 | エンタープライズ認証(クライアント資格情報、マネージド ID、Entra JWT) | ✅ リリース済み |
| v0.6 | MCP プロンプト(5 個のテンプレート)+ MCP リソース(4 個) | ✅ リリース済み |
| v0.7 | スキーマ書き込み(テーブル/リレーションシップの作成)+ レコードアクセス(共有、マージ) | ✅ リリース済み(v0.7.5) |
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。