Dynamics 365故障排查工具

一个通过Model Context Protocol (MCP)服务器提供对Dynamics 365/Dataverse元数据和Web资源直接访问的故障排查工具,帮助开发人员快速查找实体、检查插件步骤注册、搜索Web资源等。

  • by kishanmundha
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 kishanmundha/d365-troubleshooter-mcp

使用说明

D365 MCP故障排除程序

通过模型上下文协议(MCP)服务器,让您的编码代理直接访问Dynamics 365/NEWEB元数据和web资源。

此服务器有助于CRM故障排除工作流,例如:

  • 快速找到实体,
  • 检查表的插件步骤注册,
  • 搜索网络资源,
  • 阅读网络资源源内容。

运作原理

  1. 您的MCP客户端通过stdio启动此服务器。
  2. 服务器使用应用程序凭据使用Microsoft Entra ID进行身份验证。
  3. 它查询Dynamics 365 Web API(/api/data/v9.1).
  4. 您的AI客户端可以调用公开的工具,并使用结构化输出进行分析。

特性

  • search_entities:按逻辑名称或显示名称搜索Webex表。
  • get_entity_plugins:列出为特定实体注册的插件步骤。
  • find_system_jobs:使用灵活的筛选器查找系统作业(异步操作)(默认情况下失败)。
  • health_check_environment:使用系统作业和插件跟踪运行快速环境健康摘要。
  • search_webresources:按名称/显示名称查找web资源。
  • get_webresource_content:按ID或名称读取解码的web资源内容。
  • 访问令牌缓存 .crm_auth_results.json 以减少重复的身份验证调用。

需求

  • Node.js 18+(推荐:最新LTS)
  • Dynamics 365/WEB环境URL
  • Microsoft Entra应用程序注册,可访问您的WAXorg
  • 租户ID、客户端ID和客户端密码

所需的环境变量:

  • TENANT_ID
  • CLIENT_ID
  • CLIENT_SECRET
  • DYNAMICS_365_URL (例如: https://orgname.crm.dynamics.com)

可选日志变量:

  • MCP_LOG_FILE (默认值: ./.d365-troubleshooter-mcp.log)
  • MCP_LOG_STDERR (true 也将日志镜像到stderr)

入门

许多MCP客户端(Cursor、VS Code MCP客户端、Claude Desktop兼容客户端)支持基于JSON的服务器配置。

MacOS/Linux

{
  "mcpServers": {
    "D365 Troubleshooter MCP": {
      "command": "npx",
      "args": ["-y", "d365-troubleshooter-mcp"],
      "env": {
        "TENANT_ID": "YOUR_TENANT_ID",
        "CLIENT_ID": "YOUR_CLIENT_ID",
        "CLIENT_SECRET": "YOUR_CLIENT_SECRET",
        "DYNAMICS_365_URL": "https://orgname.crm.dynamics.com"
      }
    }
  }
}

视窗

{
  "mcpServers": {
    "D365 Troubleshooter MCP": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "d365-troubleshooter-mcp"],
      "env": {
        "TENANT_ID": "YOUR_TENANT_ID",
        "CLIENT_ID": "YOUR_CLIENT_ID",
        "CLIENT_SECRET": "YOUR_CLIENT_SECRET",
        "DYNAMICS_365_URL": "https://orgname.crm.dynamics.com"
      }
    }
  }
}

本地开发

pnpm install
pnpm build

从源代码构建运行:

node dist/index.js

可用脚本:

  • pnpm dev –观看构建 tsup
  • pnpm build –生产建设
  • pnpm type-check –TypeScript检查
  • pnpm inspect –启动MCP检查器

自动发布和标记

此仓库包括GitHub Actions工作流,位于 .github/workflows/release.yml 即:

  1. 运行推送 main 当 package.json 变化,
  2. 检查是否 version 字段已更改,
  3. 通过可信发布器(OIDC)发布到npm npm publish --provenance,
  4. 创建并推送格式为的git标签 v<version>.

在npm中为此GitHub存储库配置Trusted Publisher时,不需要npm令牌密钥。

释放流量:

  1. 碰撞 version 在 package.json.
  2. 承诺并推动 main (或 master).
  3. 工作流发布新版本并创建标记 vX.Y.Z.

VS代码扩展

中存在配套的VS代码扩展 vscode-extension/ 用于本地凭证配置和MCP集成。

备注

  • 服务器通过以下方式使用OAuth客户端凭据流 @azure/msal-node.
  • 身份验证结果缓存在 .crm_auth_results.json.
  • 运行时日志被写入 MCP_LOG_FILE 不要写入stdout。
  • 在MCP客户端环境配置中保守秘密(永远不要在源代码中硬编码)。

许可证

ISC