d365fo-mcp-server
26 个 MCP 工具,让 AI 在 D365FO X++ 开发中不再产生幻觉代码——每个类名、字段名、方法签名均经验证,确保生成的代码可编译。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
26 个 MCP 工具,让 AI 在 D365FO X++ 开发中不再产生幻觉代码——每个类名、字段名、方法签名均经验证,确保生成的代码可编译。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一家大型制造企业的 D365FO 实施顾问,正在开发一个新模块,需要调用 SalesFormLetter 的某个方法。打开 Claude Code 或 GitHub Copilot,问了一句:"帮我写一个打印销售订单的类。" AI 助手信誓旦旦地返回了一段 X++ 代码——类名、方法签名、甚至参数类型,全都像模像样。
你 Ctrl+V 粘贴到 Visual Studio,按下编译。
报错。
方法不存在、字段名对不上、枚举值早已被弃用。这种"幻觉代码"(hallucinated code)在 D365FO 开发中极为常见,因为通用大模型从未见过企业的私有代码库,更无法感知微软 ERP 平台每隔几个月的 API 迭代。
这就是 D365 F&O MCP Server 试图解决的核心问题。
Microsoft Dynamics 365 Finance & Operations 是微软的企业级 ERP 套件,其开发语言 X++ 是一种强类型、面向对象的专有语言。D365FO 的代码库极为庞大——一个标准实施通常包含 58 万+ 个符号(类、表单、数据实体、EDT、枚举、标签等),加上 ISV 插件和客户定制,代码量轻松突破百万量级。
通用 AI 助手对这套代码库"视而不见"。它不知道你公司新增了哪些定制字段,不了解你们的安全策略配置,也不清楚某个表单遵循了哪个微软标准模式。AI 写出的代码,看起来正确,实则无法编译。
dynamics365ninja 团队敏锐地抓住了这个痛点:与其等待通用大模型慢慢学会 D365FO,不如给 AI 配上一套实时索引 D365FO 元数据的 MCP 服务器。2026 年 1 月正式开源,迅速获得 123 颗星,成为 D365FO 开发者社区最受关注的 AI 辅助工具之一。
从架构图可以看出,系统分为三层:客户端 → MCP Server → 数据源。
客户端层支持 VS Code(含 Copilot 插件)和 Claude Code CLI,通过标准 JSON-RPC over stdio 或 HTTP 与服务器通信。
MCP Server 层是 Node.js 24 + TypeScript 实现,提供 26 个专业化工具处理器,核心是 质量门(Quality Gates)——在 AI 生成的代码真正写入磁盘之前,逐一验证每一个标识符、每一条语法规则。
数据源层是整个系统的精华:
@SYS*,一键定位对应翻译IMetadataProvider 接口读取实时元数据,并查询 DYNAMICSXREFDB 交叉引用数据库这是该项目最具技术含量的部分。当 AI 生成一段 X++ 代码,质量门会执行严格的验证链:
prepare 模式:发布 grounding token,提供当前上下文中可用的符号信息validate_code(mode="references"):逐一验证代码中每个类名、方法名、字段名是否存在于索引中——不存在的标识符直接拦截validate_code(mode="syntax"):验证 X++ 最佳实践,检查废弃 API、语法规范只有全部通过,代码才会写入磁盘。AI 永远不会生成一段"看起来对但跑不通"的 X++ 代码。
表单是 D365FO 中最复杂的开发产物——每个表单必须遵循微软定义的特定模式(Pattern),包含特定顺序的容器、必需的控件,以及允许的子模式。传统开发中,查找参考表单、理解模式规则是一项耗时巨大的工作。
该服务器的 Form Pattern 引擎提供:
D365FO 的安全模型分为五层:角色(Role)→ 职责(Duty)→ 特权(Privilege)→ 入口点(Entry Point)→ 字段级权限。传统排查需要打开 Visual Studio,逐级追踪半小时以上。
一个工具调用即可获取完整的安全链,告诉你某个用户能看到某张报表需要哪几层授权。
对于已有 D365FO 开发环境的用户,门槛极低:
# 一键安装(Windows PowerShell)
irm https://raw.githubusercontent.com/dynamics365ninja/d365fo-mcp-server/main/install.ps1 | iex
# 或已有 Node.js 24+
npm install -g d365fo-mcp
d365fo-mcp setup # 交互式向导,引导完成配置
# 连接 Claude Code
npx d365fo-mcp connect https://your-server.azurewebsites.net
安装后只需在编辑器中配置 .mcp.json(向导自动生成),即可在 VS Code Copilot 或 Claude Code 中直接使用。
微软提供了 ARM 模板,支持一键部署到 Azure App Service。团队成员无需各自安装,只需连接到统一的服务器地址即可。部署脚本支持 CI/CD 管道自动化,适合大规模团队协作。
不支持 GPU,无需高性能硬件,普通开发工作站即可运行。
项目拥有 1400+ 测试用例,覆盖率令人印象深刻:
| 指标 | 数值 |
|---|---|
| 核心代码覆盖率 | 100% |
| 整体覆盖率 | 92.3% |
| 测试类型 | 单元测试(Vitest)+ 集成测试 + 质量门测试套件 |
质量门测试套件(golden test)专门验证:合法代码必须通过,幻觉代码必须被拒绝。这确保了验证逻辑本身的正确性,而非仅验证功能可用。
没有工具是银弹,该项目也不例外:
IMetadataProvider 完成,目前只能在 D365FO Windows VM 上运行。Linux/macOS 开发者只能使用只读工具。npm run index-metadata 需要 6GB+ 内存,构建时间视代码库规模而定。D365 F&O MCP Server 代表了一种重要的 AI 开发范式转变:Domain-Specific Grounding(领域特定接地)。它不依赖通用大模型自行学会所有知识,而是通过为特定技术栈构建实时索引,让 AI 在专业领域真正可用。
对于企业 ERP 开发团队而言,这意味着:
该项目已被收录至 MCP 官方生态和 Claude Code 集成方案,增长趋势值得关注。
# PowerShell 一键安装(自动检测 Node.js)
irm https://raw.githubusercontent.com/dynamics365ninja/d365fo-mcp-server/main/install.ps1 | iex
# 连接已部署的团队服务器
npx d365fo-mcp connect https://your-server.azurewebsites.net
# 或本地安装(需 Node.js 24+)
npm install -g d365fo-mcp && d365fo-mcp setup
详细文档:Quick Start