AL MCP 服务器
](https://badge.fury.io/js/al-mcp-server)   ](https://nodejs.org/)  
让AI助手全面了解您的AL(可能是指某种应用或系统)依赖项和符号。
这解决了什么问题
AI编码助手无法查看已编译的AL程序包,也无法理解Business Central中的对象关系。这在协助AL开发时会造成盲点。
AL MCP服务器通过模型上下文协议(Model Context Protocol),直接将您的AL工作区的编译符号(.app文件)暴露给AI助手,从而弥合了这一差距。
快速入门
先决条件
验证您的设置:
dotnet --version # Should show 8.0 or higherAL MCP 服务器会自动安装 npx - 无需手动安装。
配置您的AI助手
克劳德·科德(推荐)
claude mcp add al-mcp-server -- npx al-mcp-server或者通过VS Code设置:
{
"claude.mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}GitHub Copilot
创建 .vscode/mcp.json 在您的工作区中:
{
"servers": {
"al-symbols-mcp": {
"type": "stdio",
"command": "npx",
"args": ["al-mcp-server"]
}
}
}Cursor 集成开发环境 (IDE)
在光标设置中添加(设置 → 功能 → 模型上下文协议):
{
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}继续(VS Code 扩展)
添加到 ~/.continue/config.json:
{
"mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}Cody(Sourcegraph)
添加到 VS Code 设置中:
{
"cody.mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}其他MCP兼容工具
使用以下连接详情:
- 命令:
npx - 参数/论据:
["al-mcp-server"] - 类型:
stdio
测试它,看看是否有效
询问你的AI助手:
Search for Customer table in my AL project服务器将自动启动并提供智能AL辅助!
可用工具
AL MCP服务器为AL代码分析提供了6种令牌优化工具:
核心查询工具
al_search_objects
- 按名称、类型或通配符模式搜索AL对象
- 按业务领域过滤(销售、财务、库存等)
- 支持所有AL对象类型(表、页面、代码单元、报告等)
- 默认启用的高效标记摘要模式
al_get_object_definition
- 通过ID或名称获取详细对象信息
- 包括字段、过程、属性和键
- 可配置的细节级别,带有字段/过程限制
- 令牌效率摘要模式
al_find_references
- 查找对象或字段的所有引用
- 轨迹扩展、变量、参数、返回类型
- 跨所有对象类型的字段级引用跟踪
- 用于详细参考信息的可选上下文
al_search_object_members
- 统一搜索对象子元素
- 搜索过程、字段、控件或数据项
- 支持通配符模式匹配
- 分页和细节级别控制
al_get_object_summary
- 获取智能分类的对象概览
- 按目的组织程序(验证、过账、实用程序等)
- 自动识别关键入口点
- 高度令牌高效的分类输出
软件包管理
al_packages
- 带有操作参数的统一包管理
- 加载自动发现并从项目根目录加载包
- 列表显示当前所有已加载的包
- 统计数据数据库统计信息和对象计数
能力
智能对象发现
- 同时搜索所有已加载的AL包
- 灵活查询的通配符模式匹配
- 按对象类型、包或业务领域筛选
- 自动发现.alpackages目录
深度代码分析
- 用所有元数据完善对象定义
- 带有属性的过程和字段信息
- 页面控制结构分析
- 报告/查询数据项遍历
参考跟踪
- 查找所有对象引用和依赖项
- 跟踪对象扩展和自定义设置
- 跨页面、表格、报告的字段级使用分析
- 在代码单元中进行变量和参数跟踪
业务领域智能
- 按业务领域搜索(销售、采购、财务、库存、制造、服务)
- 基于模式的领域检测
- 跨包域分析
建筑学
AL MCP Server
├── Symbol Extraction Layer
│ └── AL CLI integration for .app file parsing
├── Streaming Parser
│ └── Efficient handling of large symbol files (50MB+)
├── In-Memory Database
│ └── Optimized indices for sub-100ms queries
├── MCP Protocol Handler
│ └── JSON-RPC communication with AI assistants
└── Auto-Discovery Engine
└── Smart .alpackages directory detection性能特点:
- 懒惰初始化 - 包在首次请求时加载
- 流式JSON解析避免了内存问题
- 多个针对O(1)查找的优化索引
- 版本过滤仅使用最新包
- 优化后的令牌响应减少了AI上下文的使用
要求
运行时:
- Node.js 18 或更高版本
- .NET SDK 8.0 或更高版本
- NuGet 包源(nuget.org)
项目结构:
- 带有 app.json 的 AL(App Language,应用程序语言)工作区
- 在 .alpackages 目录中编译的 .app 包
支持的AL包:
- 基于命名空间的现代包
- 遗留的非命名空间包(PTEs)
- Business Central 基础应用程序
- AppSource 扩展
服务器分析的是编译后的AL符号,而非原始的.al源文件。
故障排除
未找到AL CLI
- 服务器自动安装AL工具
- 需要.NET SDK 8.0或更高版本
- 验证:
dotnet --version
NU1100错误
- 更新到 .NET SDK 8.0+
- 配置 NuGet:
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
未找到来源
- 检查NuGet源:
dotnet nuget list source - 应包含 nuget.org
未找到任何软件包
- 确保.alpackages目录中存在.app文件
- 使用
al_auto_discover用于搜索软件包的工具 - 检查包是否已成功编译
服务器无响应
- 确认已安装 Node.js 18 或更高版本
- 检查AI助手MCP配置
- 在AI助手输出中查看服务器日志
需要帮助吗?
示例用法
配置完成后,请向您的AI助手询问:
"Show me all Sales-related codeunits"
"Find all references to the Customer table"
"What procedures are in the Sales-Post codeunit?"
"Search for all pages that use the Item table"
"Give me a summary of the Gen. Journal-Post Batch codeunit"人工智能助手将使用MCP工具,根据您实际的AL软件包提供准确且上下文感知的回复。
做出贡献
- 为仓库创建分支
- 创建一个特性分支
- 为更改编写测试
- 确保所有测试通过
- 提交一个拉取请求
许可证
MIT 许可证 - 请参阅 许可证 文件中详述。
______________________________________________________________________
利用真正理解您代码库的人工智能助手,变革AL(可能是指“AI Learning”或特定领域的“应用学习”)开发。
