mcpField
M
mcp-dataverse

mcp-dataverse

本地服务
github.com/rajyraman数据库1178 周前更新

关于 mcp-dataverse

mcp-dataverse 是一个通过 SQL 查询 Dataverse 环境的 MCP 服务,面向使用 GitHub Copilot 或 Claude Desktop 的用户。它可作为 dotnet tool 或 Docker 容器运行,并仅允许 SELECT 查询。

主要功能

  1. 01通过 SQL 查询 Dataverse
  2. 02支持 dotnet tool 和 Docker
  3. 03仅允许 SELECT 查询

适用场景

  1. 01查询 Dataverse 中的解决方案
  2. 02查看特定发布者的解决方案
  3. 03查询近期导入的解决方案
  4. 04检查已注册的插件

MCP 相关

该 MCP 服务通过 MCP 向 GitHub Copilot、Claude Desktop 等客户端提供 Dataverse 查询能力,并包含直接执行 SQL 的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

概览

本仓库旨在支持使用 SQL 查询 Dataverse 环境。只需在配置中添加此 MCP 服务,即可使用 GitHub Copilot 或 Claude Desktop 等热门 AI 工具查询 Dataverse。

非常感谢 Mark Carrington 创建了 Sql4Cds,没有它,本项目就不会存在。🙏

先决条件 🔍

  1. VSCode March(最低版本为 2025 年 3 月)或 Claude Desktop
  2. 本地计算机已安装并完成身份验证的 Azure CLI(如果不使用 DevContainer 选项)。虽然可以通过 Azure Identity 框架进行交互式浏览器身份验证,但使用 Azure CLI 管理身份验证会更简单一些。
  3. 如果要在 DevContainer 中运行 Dev Containers 或 MCP 服务,则需要安装 Docker。
  4. 如果要安装 dotnet 工具,则需要 dotnet 9.0 SDK。

Model Context Protocol (MCP) 📋

MCP 规范的创建者 Anthropic 对 Model Context Protocol 的定义如下:

MCP 是一种开放协议,用于标准化应用程序向大模型提供上下文的方式。可以将 MCP 想象成 AI 应用的 USB-C 接口。正如 USB-C 提供了连接设备与各种外围设备和配件的标准化方式,MCP 也提供了连接 AI 模型与不同数据源和工具的标准化方式。

安装 🚀

作为 dotnet 安装

如果上方按钮不起作用,请将下面的 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

在 VS Code 中通过 Docker 安装

如果上方按钮不起作用,请将下方 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 服务有两种方式:

  1. Docker 容器
  2. dotnet 工具

以下是根据你计划使用此 MCP 的场景给出的建议。

平台客户端建议
WindowsGitHub Copilotdotnet tool。如果遇到身份验证问题,可使用 Docker/Podman 作为备用方案。
WindowsClaude Desktopdotnet tool
MacOSClaude Desktop、GitHub Copilotdotnet tool
LinuxClaude Desktop、GitHub Copilotdotnet tool
GitHub CodespacesGitHub Copilotdotnet 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。

codespace-step-1

codespace-step-2

提示词

如果你使用 GitHub Copilot,copilot-instructions.md 文件应会自动启用。

在 Claude Desktop 中,你可以点击“Attach from MCP”按钮。

选择提示词

示例

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

非托管解决方案

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

按发布者显示解决方案

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

上周导入的解决方案

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

插件步骤

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

直接 SQL

示例 6 - 仅允许 SELECT 语句

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

仅允许 SELECT 语句

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

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