XPP-MCP
用于Microsoft Dynamics 365财务与运营X++开发的MCP(模型上下文协议)服务器。
纯TypeScript。没有C#sidecar。创建对象不需要VS2022。
*用越南语阅读: README.vi.md*
______________________________________________________________________
它做什么
XPP-MCP将Claude Desktop直接连接到您的D365 F&O开发环境, 允许您通过自然语言创建、检查和管理AOT对象,而无需 打开Visual Studio。
它直接从以下位置读取描述符XML PackagesLocalDirectory,以原子方式写入AOT XML 并封装D365命令行构建工具以进行无头编译和同步。
______________________________________________________________________
特性
- 一次调用中包含16种对象类型 --AxTable、AxClass、AxEnum、AxEdt、AxQuery、AxForm、,
AxSecurity特权/职责/角色、AxMenuItem显示/操作/输出、AxMenu、AxMenuExtension、AxTableExtension
- 35种形状图案 --对话框、SimpleList、SimpleListDetails、DetailsMaster等,
从5682个真实的基金会表格中确认了正确的PatternVersion默认值
- 正确的表单控制类型 --通行证
fieldTypes要发射的地图AxFormDateControl,
AxFormIntegerControl, AxFormComboBoxControl (enum)等。--不只是 AxFormStringControl
- VS2022独立于对象创建 --直接写入AOT XML;创建对象时不需要VS2022
- 无头编译+验证 --包裹
xppc.exe(编译)和DataContractSerializer(XML验证);数据库同步需要VS2022 - 在子文件夹中生成日志 --日志写入
\xpp-mcp-logs\保持模型根的清洁 - 标签自动管理 --自动创建
AxLabelFile描述符+.label.txt当您传递纯文本时 - 模型感知路径解析 --在启动时读取每个描述符XML;处理多模型
软件包(例如ApplicationSuite→ 基础)正确
- 内置Microsoft最佳实践 --命名约定、必填字段组、安全性
链执行、表单模式验证
3工具
| 工具 | 它做什么 |
|---|---|
d365_object | create, inspect, delete, list_types --适用于所有16种AOT对象类型 |
d365_build | compile, validate_metadata, best_practice, full_build --无头; sync_db 指向VS2022 |
d365_explore | list_models, list_objects, search, read, list_types |
______________________________________________________________________
快速开始
1.建造
cd C:\xpp-mcp
npm install
npm run build2.配置 config.json
{
"packagesRoot": "C:\\AOSService\\PackagesLocalDirectory",
"defaultModel": "MM",
"binPath": "C:\\AOSService\\PackagesLocalDirectory\\bin",
"defaultLocale": "en-US",
"useLabels": true
}3.启动服务器
选项A-Claude Desktop自动管理它(推荐)
添加 %APPDATA%\Claude\claude_desktop_config.json 并重新启动克劳德桌面:
{
"mcpServers": {
"xpp-mcp": {
"command": "node",
"args": ["C:/xpp-mcp/build/index.js"],
"cwd": "C:/xpp-mcp"
}
}
}选项B——手动/前台
cd C:\xpp-mcp
powershell -ExecutionPolicy Bypass -File Start-MD365XppMcp.ps1或者双击 start.bat.
选项C——在Windows登录时自动启动(以管理员身份运行一次)
cd C:\xpp-mcp
powershell -ExecutionPolicy Bypass -File Start-MD365XppMcp.ps1 -AsService启动时的预期输出:
[xpp-mcp] Loaded 176 models (3 custom: BB, CC, MM)
[xpp-mcp] Server ready______________________________________________________________________
启动和管理服务器
启动脚本
| 文件 | 目的 |
|---|---|
Start-MD365XppMcp.ps1 | 主PowerShell脚本--前台运行,计划任务安装/删除 |
start.bat | 简单双击启动器 |
Start-MD365XppMcp-Worker.ps1 | 自动生成 -AsService 旗;不在回购中 |
前景(手动)
# From the project folder
powershell -ExecutionPolicy Bypass -File C:\xpp-mcp\Start-MD365XppMcp.ps1按 Ctrl+C 停止。
登录时自动启动(计划任务)
安装--运行 曾担任管理员:
cd C:\xpp-mcp
powershell -ExecutionPolicy Bypass -File Start-MD365XppMcp.ps1 -AsService任务立即启动,如果停止则自动重新启动(重试1分钟,最多99次)。
任务管理命令
# Check status
Get-ScheduledTask -TaskName XPP-MCP | Select-Object TaskName, State
# Stop
Stop-ScheduledTask -TaskName XPP-MCP
# Start
Start-ScheduledTask -TaskName XPP-MCP
# Remove auto-start permanently
powershell -ExecutionPolicy Bypass -File C:\xpp-mcp\Start-MD365XppMcp.ps1 -Remove查看日志
Get-Content C:\xpp-mcp\logs\xpp-mcp.log -Tail 30 -Wait这 -Wait flag实时跟踪日志(如 tail -f).按Ctrl+C停止观看。
______________________________________________________________________
需求
- Node.js 20+
- Windows(D365 F&O开发虚拟机)
PackagesLocalDirectory可访问(通常C:\AOSService\PackagesLocalDirectory)
______________________________________________________________________
文档
docs/ARCHITECTURE.md-设计、组件、工具APIdocs/CLAUDE-DESKTOP-CONFIG.md--Claude桌面设置和完整使用示例docs/VSCODE-CONFIG.md--VS代码+克劳德代码扩展设置docs/SKILL-xpp-mcp.md--Claude技能文件(导入您的Claude帐户)
实用脚本
| 脚本 | 目的 |
|---|---|
scripts/ByteFix-AllXml.ps1 | 字节级修复 `` 标签编码错误 |
scripts/Validate-Metadata.ps1 | D365 DataContractSerializer XML验证 |
scripts/Fix-HtmlEntities.ps1 | 修复HTML实体(< >)CDATA块内 |
scripts/Scan-Cdata.ps1 | 修复前诊断损坏的CDATA内容 |
所有脚本均接受 -ModelPath "C:\AOSService\PackagesLocalDirectory\\".
VS代码/其他MCP客户端
此服务器使用标准的MCP stdio传输,并与任何兼容MCP的客户端配合使用。
- VS代码+克劳德代码扩展 --看
docs/VSCODE-CONFIG.md进行完整设置 - 克劳德代码CLI --同样的
~/.claude/settings.json配置为VS代码 - 其他MCP客户端 --使用相同
command/args/cwd阻止他们的配置预期
______________________________________________________________________
免责声明
此工具适用于本地开发计算机、个人VHD/VM或您具有系统和数据所有者明确授权的环境。
未经相关利益相关者明确书面批准,不得在生产系统、共享环境或客户环境中使用此工具。
Microsoft Dynamics 365许可证要求
此工具需要有效的 Microsoft Dynamics 365财务与运营开发人员许可证。它依赖于并调用微软拥有的二进制文件,这些二进制文件是许可的D365 F&O开发环境的一部分:
xppc.exe--X++编译器xppbp.exe--最佳实践检查器SyncEngine.exe--数据库同步引擎
这些二进制文件是微软公司拥有的专有软件,受微软软件许可条款的约束。此工具不会分发、修改或绕过任何Microsoft软件。用户全权负责确保在使用此工具之前持有适当的Microsoft许可证。
此工具对您的系统有什么作用:
- 将AOT XML文件直接写入
PackagesLocalDirectory(绕过VS2022项目系统) - 执行
xppc.exe和xppbp.exe从D365 bin目录 - 创建和修改标签文件(
.label.txt)在您的模型文件夹中
不正确的使用可能会损坏AOT元数据,破坏模型构建,或导致D365开发环境发生不可恢复的更改。 在使用此工具之前,始终确保您的工作致力于源代码管理(Azure DevOps/Git)。
此项目是独立的,不隶属于微软公司,也不得到微软公司的认可或支持。“Dynamics 365”、“财务与运营”、“X++”以及所有相关产品名称均为微软公司的商标。
此处提供的工具和文档仅用于开发协助目的。对于准确性、完整性或适用于任何特定目的,我们不作任何保证。作者对使用此工具可能导致的任何错误、遗漏、元数据损坏、数据丢失或其他直接或间接损害不承担任何责任。
使用风险自负。
______________________________________________________________________
许可证
个人免费。企业需要商业许可证。
| 谁 | 条款 |
|---|---|
| 个人开发者、个人项目 | 自由 |
| 学生、教育工作者、非营利组织 | 自由 |
| 开源贡献者 | 自由 --欢迎捐款 |
| 企业、咨询公司、企业使用 | 需要商业许可证 — 打开一个问题 |
开 2029-01-01 该软件会自动转换为 MIT许可证 (完全开源)。
看 LICENSE 完整条款。
