Dataverse API服务器

提供对Microsoft Dynamics 365/Dataverse API的全面访问,支持元数据探索、CRUD操作、插件注册、解决方案ALM等功能。

  • by nir-meron
  • 本地部署
  • 更新于
在 GitHub 查看 nir-meron/dataverse-mcp-server

使用说明

dataverse mcp服务器

MCP服务器,使Claude(或任何MCP客户端)能够完全访问Microsoft Dynamics 365/NetworkAPI。

68种工具+18种技能,涵盖元数据探索、CRUD操作、插件注册、解决方案ALM、安全审计、web资源、审计日志、托管身份等。


特性

类别 工具 示例
身份验证 2 以交互方式或通过环境变量进行身份验证
环境 3 运行时在开发/测试/Prod之间切换
元数据 8 实体、字段、关系、选项集、键
数据(CRUD) 8 查询、创建、更新、删除、FetchXML、批处理
安全 8 用户、角色、团队、队列、权限比较
插件 21 程序集、步骤、图像、SDK消息、启用/禁用
解决方案 4 列出、检查组件、依赖关系
ALM 3 导出、导入、发布自定义项
Web资源 4 列出、读取、创建、更新JS/HTML/CSS
审核 4 审核历史、实体/字段/组织审核状态
自定义操作 4 发现和检查自定义操作和API
环境变量 3 列出、获取、设置环境变量
托管身份 4 插件Azure访问的UAMI设置
组织设置 2 组织元数据、跟踪日志控制
批处理 1 以原子方式执行多个API调用
PAC CLI 4项技能 身份验证、PCF组件脚手架、插件项目脚手架、CI/CD解决方案包/解包

先决条件

  • Node.js 18+
  • Azure AD应用程序注册 与:
    • Dynamics CRM > user_impersonation 权限(或应用程序级访问)
    • 客户机密或证书
  • Dynamics 365环境URL

快速开始

1.克隆和构建

git clone https://github.com/your-username/dataverse-mcp-server.git
cd dataverse-mcp-server/mcp-server
npm install
npm run build

2.用克劳德代码注册

claude mcp add dynamics365 -t stdio \
  -- node /full/path/to/dataverse-mcp-server/mcp-server/dist/index.js

3.安装技能

macOS/Linux:

cp -r skills/* ~/.claude/skills/

窗户:

xcopy /E /I skills\* "%USERPROFILE%\.claude\skills\"

4.身份验证

跑 /mcp 在Claude Code中,您应该看到 dynamics365 · ✓ connected.

然后说:

“连接到Webex”

克劳德会打电话的 auth_status,查看您是否未通过身份验证,并要求您 租户ID, 客户端ID,以及 客户端密钥.持有全权证书 仅在内存中 --从未写入磁盘。


认证

选项A——交互式(建议用于首次设置)

只需打开Claude Code并说 "Connect to Dataverse"克劳德会打电话的 auth_status,查看您是否未通过身份验证,然后以交互方式请求您的凭据。

或者直接提供:

"Connect to Dataverse with tenant ID <id>, client ID <id>, and secret <secret>"

持有证书 仅在内存中 --从未写入磁盘。

选项B——环境变量

claude mcp add dynamics365 -t stdio \
  -e D365_TENANT_ID=your-tenant-id \
  -e D365_CLIENT_ID=your-client-id \
  -e D365_CLIENT_SECRET=your-client-secret \
  -- node /full/path/to/dataverse-mcp-server/mcp-server/dist/index.js

获取您的Azure AD凭据

  1. 首选 Azure 门户→ 应用程序注册
  2. 查找或创建应用程序注册 Dynamics CRM > user_impersonation 许可
  3. 复制 目录(租户)ID 和 应用程序(客户端)ID 从“概述”页面
  4. 首选 证书和秘密 → 新客户机密 → 复制 价值

环境配置

预配置Dynamics 365环境的三种方法:

选项A——单个URL (自动选择,最简单)

-e D365_ORG_URL=https://yourorg.crm.dynamics.com

选项B--逗号分隔的URL (名称来源于主机名)

-e 'D365_ENVIRONMENTS=https://yourorg-dev.crm.dynamics.com,https://yourorg.crm.dynamics.com'

选项C-JSON数组 (完全控制姓名)

-e 'D365_ENVIRONMENTS=[{"name":"Dev","url":"https://yourorg-dev.crm.dynamics.com"},{"name":"Prod","url":"https://yourorg.crm.dynamics.com"}]'

选项D——运行时 --不需要env变量。问问克劳德:

“连接到https://myorg.crm.dynamics.com"

它召唤 add_environment 为你。

CRM区域参考

后缀 地区
.crm.dynamics.com 美洲
.crm4.dynamics.com EMEA
.crm5.dynamics.com 亚太地区
.crm9.dynamics.com 英国
.crm11.dynamics.com 日本

完整设置.local.json示例

{
  "mcpServers": {
    "dynamics365": {
      "type": "stdio",
      "command": "node",
      "args": ["/full/path/to/dataverse-mcp-server/mcp-server/dist/index.js"],
      "env": {
        "D365_TENANT_ID": "your-tenant-id",
        "D365_CLIENT_ID": "your-client-id",
        "D365_CLIENT_SECRET": "your-client-secret",
        "D365_ORG_URL": "https://yourorg.crm.dynamics.com"
      }
    }
  }
}

技能

技能是 SKILL.md 为Claude域提供特定指导的文件。看 快速开始 用于安装命令。

技能 描述
query-records 自然语言→ OData查询
create-record 元数据感知记录创建
summarize-entity 业务可读记录摘要
explore-metadata 深层实体内省
d365-research Microsoft Learn+实时元数据研究
security-audit 用户和角色调查
debug-plugin 插件跟踪日志+自定义操作发现
inspect-solutions 溶液成分检查
manage-plugins 完整插件注册工具工作流程
manage-webhooks Webhook和服务总线端点管理
manage-webresources Web资源CRUD+发布
alm-operations 解决方案导出/导入和环境变量
audit-history 审计日志查询和状态检查
managed-identity 插件的UAMI+联合凭据设置
pac-auth PAC CLI身份验证
pac-pcf PCF组件脚手架
pac-plugin 插件项目脚手架
pac-solutions CI/CD解决方案包/解包

安全

  • 从不 在源文件中硬编码凭据
  • 从不 承诺 .env 文件——它们在 .gitignore
  • 在生产环境中使用Azure密钥库或环境变量
  • MCP服务器使用OAuth 2.0客户端凭据流
  • 所有令牌都已缓存 仅在内存中 并自动过期
  • 看 .env.example 查看支持的变量的完整列表

许可证

麻省理工学院