使用说明
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凭据
- 首选 Azure 门户→ 应用程序注册
- 查找或创建应用程序注册
Dynamics CRM > user_impersonation许可 - 复制 目录(租户)ID 和 应用程序(客户端)ID 从“概述”页面
- 首选 证书和秘密 → 新客户机密 → 复制 价值
环境配置
预配置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查看支持的变量的完整列表
许可证
麻省理工学院