mcp-dataverse について
mcp-dataverseは、SQLでDataverse環境を照会するMCPサーバーです。GitHub CopilotやClaude Desktopの利用者向けで、dotnet toolまたはDockerコンテナとして実行でき、SELECT文のみを許可します。
主な機能
- 01SQLによるDataverseの照会
- 02dotnet toolまたはDockerで実行
- 03SELECT文のみ許可
活用シーン
- 01Dataverse内のソリューションを照会
- 02発行元別にソリューションを確認
- 03最近インポートされたソリューションを検索
- 04登録済みプラグインを確認
MCP 対応
GitHub CopilotやClaude DesktopなどのクライアントにDataverse照会機能を提供し、SQLを直接実行するツールも公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
概要
このリポジトリの目的は、SQL を使って Dataverse 環境をクエリできるようにすることです。設定にこの MCP サーバーを追加すれば、GitHub Copilot や Claude Desktop などの人気の AI ツールを使って Dataverse をクエリできます。
Sql4Cds を作成してくださった Mark Carrington に心より感謝します。このプロジェクトは、同氏なしには実現しませんでした。🙏
前提条件 🔍
- VSCode March(最低でも 2025 年 3 月版)または Claude Desktop
- DevContainer オプションを使用しない場合は、ローカルマシンに Azure CLI をインストールし、認証しておく必要があります。Azure Identity フレームワークを使った対話型ブラウザー認証も可能ですが、Azure CLI で認証を管理するほうが少し簡単です。
- Dev Containers または DevContainer 内の MCP サーバーを実行する場合は、Docker。
- dotnet ツールをインストールする場合は、dotnet 9.0 SDK。
Model Context Protocol(MCP)📋
MCP 仕様の策定者である Anthropic は、Model Context Protocol を次のように定義しています。
MCP は、アプリケーションが LLM にコンテキストを提供する方法を標準化するオープンプロトコルです。MCP は、AI アプリケーション向けの USB-C ポートのようなものと考えてください。USB-C がデバイスをさまざまな周辺機器やアクセサリーに接続する標準的な方法を提供するように、MCP は AI モデルをさまざまなデータソースやツールに接続する標準的な方法を提供します。
インストール 🚀
上のボタンが機能しない場合は、以下の URL をアドレスバーに貼り付けてください。
vscode:mcp/install?%7B%0A%20%20%20%20%22name%22%3A%20%22dataverse-mcp-dotnet-tool%22%2C%0A%20%20%20%20%22type%22%3A%20%22stdio%22%2C%0A%20%20%20%20%22command%22%3A%20%22mcp-dataverse%22%2C%0A%20%20%20%20%22env%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22DATAVERSE_ENVIRONMENT_URL%22%3A%20%22https%3A%2F%2Fxyz.crm.dynamics.com%22%0A%20%20%20%20%7D%0A%7D
上のボタンが機能しない場合は、以下の URL をアドレスバーに貼り付けてください。
vscode:mcp/install?%7B%0A%20%20%20%20%22name%22%3A%20%22dataverse-mcp-docker%22%2C%0A%20%20%20%20%22type%22%3A%20%22stdio%22%2C%0A%20%20%20%20%22command%22%3A%20%22docker%22%2C%0A%20%20%20%20%22args%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%22run%22%2C%0A%20%20%20%20%20%20%20%20%22--env-file%22%2C%0A%20%20%20%20%20%20%20%20%22%24%7BworkspaceFolder%7D%2F.env%22%2C%0A%20%20%20%20%20%20%20%20%22-i%22%2C%0A%20%20%20%20%20%20%20%20%22--rm%22%2C%0A%20%20%20%20%20%20%20%20%22rajyraman%2Fmcp-stdio-dataverse%22%0A%20%20%20%20%5D%0A%7D
上のボタンをクリックすると、MCP サーバーの設定を取得できます。この MCP サーバーを使用する方法は 2 つあります。
- Docker コンテナー
- dotnet tool
以下は、この MCP を使用する場所に応じた推奨事項です。
| 対象 | クライアント | 推奨 |
|---|---|---|
| Windows | GitHub Copilot | dotnet tool。認証に問題がある場合は、代替手段として Docker/Podman を使用してください。 |
| Windows | Claude Desktop | dotnet tool |
| MacOS | Claude Desktop, GitHub Copilot | dotnet tool |
| Linux | Claude Desktop, GitHub Copilot | dotnet tool |
| GitHub Codespaces | GitHub Copilot | dotnet tool |
この MCP サーバーは MCP C# SDK で構築されているため、nuget を通じて dotnet tool として配布されています。dotnet 9.0 SDK は、主要なすべての OS にインストールできます。
以下のコマンドを使用して、Dataverse MCP Server をグローバル dotnet tool としてインストールできます。
dotnet tool install -g Mcp.Dataverse.Stdio
設定
以下は、コンテナー内で MCP Server を実行する場合に使用できる .env ファイルのサンプルです。ワークスペースフォルダー(README.md と同じ階層)に .env を作成してください。
AZURE_CLIENT_ID=aba9829f-6288-44d7-9168-53eca9a1f4a5
AZURE_CLIENT_SECRET=abcd
AZURE_TENANT_ID=2caa17e6-884b-473b-80c5-c05d8859a2fa
DATAVERSE_ENVIRONMENT_URL=https://abc.crm6.dynamics.com
DOCKER_CONTAINER=true
クローンしたリポジトリ以外の新しいフォルダーでこの MCP Server を使用する場合は、.github/copilot-instructions.md が設定されていることを確認してください。すでに別の copilot-instructions.md ファイルがある場合は、これを .github/prompts フォルダー内のカスタムプロンプトとして作成することもできます。例:dataverse.main.prompt.md。そのプロンプトをチャットで使用してください。
MCP 設定のサンプル
{
"servers": {
"dataverse-mcp-dotnet-tool": {
"type": "stdio",
"command": "mcp-dataverse",
"env": {
"DATAVERSE_ENVIRONMENT_URL": "https://abc.crm6.dynamics.com"
}
}
}
}
GitHub Codespaces の設定
Codespace を作成する際は、nuget-tool フォルダー内の devcontainer.json を選択してください。また、DATAVERSE_ENVIRONMENT_URL 環境変数が適切な環境 URL を指すように、dataverse-nosecrets.env も変更してください。


プロンプト
GitHub Copilot を使用する場合は、copilot-instructions.md ファイルが自動的に使用されます。
Claude Desktop では、「Attach from MCP」ボタンをクリックできます。

例
例 1 - アンマネージドソリューションを取得する 📦

例 2 - パブリッシャー別にソリューションを表示する 🏢

例 3 - 先週インポートされたソリューション 📅

例 4 - contact と account に登録されたプラグイン 🔌

例 5 - #ExecuteSQL ツールで SQL を直接実行する

例 6 - SELECT ステートメントのみ許可されます
これは、共通テーブル式も許可されないことを意味します。GitHub Copilot が MCP 仕様の Sampling をサポートするようになった場合には、この動作が変更されます。

コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。