关于 mcp-dataverse
mcp-dataverse 是一个通过 SQL 查询 Dataverse 环境的 MCP 服务,面向使用 GitHub Copilot 或 Claude Desktop 的用户。它可作为 dotnet tool 或 Docker 容器运行,并仅允许 SELECT 查询。
主要功能
- 01通过 SQL 查询 Dataverse
- 02支持 dotnet tool 和 Docker
- 03仅允许 SELECT 查询
适用场景
- 01查询 Dataverse 中的解决方案
- 02查看特定发布者的解决方案
- 03查询近期导入的解决方案
- 04检查已注册的插件
MCP 相关
该 MCP 服务通过 MCP 向 GitHub Copilot、Claude Desktop 等客户端提供 Dataverse 查询能力,并包含直接执行 SQL 的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
概览
本仓库旨在支持使用 SQL 查询 Dataverse 环境。只需在配置中添加此 MCP 服务,即可使用 GitHub Copilot 或 Claude Desktop 等热门 AI 工具查询 Dataverse。
非常感谢 Mark Carrington 创建了 Sql4Cds,没有它,本项目就不会存在。🙏
先决条件 🔍
- VSCode March(最低版本为 2025 年 3 月)或 Claude Desktop
- 本地计算机已安装并完成身份验证的 Azure CLI(如果不使用 DevContainer 选项)。虽然可以通过 Azure Identity 框架进行交互式浏览器身份验证,但使用 Azure CLI 管理身份验证会更简单一些。
- 如果要在 DevContainer 中运行 Dev Containers 或 MCP 服务,则需要安装 Docker。
- 如果要安装 dotnet 工具,则需要 dotnet 9.0 SDK。
Model Context Protocol (MCP) 📋
MCP 规范的创建者 Anthropic 对 Model Context Protocol 的定义如下:
MCP 是一种开放协议,用于标准化应用程序向大模型提供上下文的方式。可以将 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 服务有两种方式:
- Docker 容器
- dotnet 工具
以下是根据你计划使用此 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 工具的形式分发。所有主流操作系统均可安装 dotnet 9.0 SDK。
你可以使用以下命令将 Dataverse MCP Server 安装为全局 dotnet 工具。
dotnet tool install -g Mcp.Dataverse.Stdio
配置
以下是一个示例 .env 文件,如果你选择在容器内运行 MCP Server,可以使用此文件。在工作区文件夹(与 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-nosecrets.env,使 DATAVERSE_ENVIRONMENT_URL 环境变量指向正确的环境 URL。


提示词
如果你使用 GitHub Copilot,copilot-instructions.md 文件应会自动启用。
在 Claude Desktop 中,你可以点击“Attach from MCP”按钮。

示例
示例 1 - 获取非托管解决方案 📦

示例 2 - 按发布者显示解决方案 🏢

示例 3 - 上周导入的解决方案 📅

示例 4 - 在联系人和客户中注册的插件 🔌

示例 5 - 使用 #ExecuteSQL 工具直接运行 SQL

示例 6 - 仅允许 SELECT 语句
这也意味着不允许使用公用表表达式。如果 GitHub Copilot 将来支持 MCP 规范中的 Sampling,此限制可能会有所变化。

评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。