Model Context Protocol (MCP) server providing intelligent AL (Application Language) code assistance for Microsoft Dynamics 365 Business Central development.
npm install al-mcp-serverbash
dotnet --version # Should show 8.0 or higher
`
The AL MCP Server installs automatically via npx - no manual installation needed.
$3
#### Claude Code (Recommended)
`bash
claude mcp add al-mcp-server -- npx al-mcp-server
`
Or via VS Code settings:
`json
{
"claude.mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}
`
#### GitHub Copilot
Create .vscode/mcp.json in your workspace:
`json
{
"servers": {
"al-symbols-mcp": {
"type": "stdio",
"command": "npx",
"args": ["al-mcp-server"]
}
}
}
`
#### Cursor IDE
Add to Cursor settings (Settings → Features → Model Context Protocol):
`json
{
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
`
#### Continue (VS Code Extension)
Add to ~/.continue/config.json:
`json
{
"mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}
`
#### Cody (Sourcegraph)
Add to VS Code settings:
`json
{
"cody.mcpServers": {
"al-symbols-mcp": {
"command": "npx",
"args": ["al-mcp-server"]
}
}
}
`
#### Other MCP-Compatible Tools
Use these connection details:
- Command: npx
- Args: ["al-mcp-server"]
- Type: stdio
$3
Ask your AI assistant:
`
Search for Customer table in my AL project
`
The server will auto-start and provide intelligent AL assistance!
Available Tools
The AL MCP Server provides 6 token-optimized tools for AL code analysis:
$3
al_search_objects
- Search for AL objects by name, type, or wildcard pattern
- Filter by business domain (Sales, Finance, Inventory, etc.)
- Support for all AL object types (Table, Page, Codeunit, Report, etc.)
- Token-efficient summary mode enabled by default
al_get_object_definition
- Get detailed object information by ID or name
- Includes fields, procedures, properties, and keys
- Configurable detail level with field/procedure limits
- Summary mode for token efficiency
al_find_references
- Find all references to an object or field
- Track extensions, variables, parameters, return types
- Field-level reference tracking across all object types
- Optional context for detailed reference information
al_search_object_members
- Unified search for object child elements
- Search procedures, fields, controls, or dataitems
- Wildcard pattern matching support
- Pagination and detail level control
al_get_object_summary
- Get intelligent categorized overview of objects
- Organizes procedures by purpose (validation, posting, utilities, etc.)
- Identifies key entry points automatically
- Highly token-efficient categorized output
$3
al_packages
- Unified package management with action parameter
- Load: Auto-discover and load packages from project root
- List: Show all currently loaded packages
- Stats: Database statistics and object counts
Capabilities
$3
- Search across all loaded AL packages simultaneously
- Wildcard pattern matching for flexible queries
- Filter by object type, package, or business domain
- Auto-discovery of .alpackages directories
$3
- Complete object definitions with all metadata
- Procedure and field information with properties
- Page control structure analysis
- Report/query dataitem traversal
$3
- Find all object references and dependencies
- Track object extensions and customizations
- Field-level usage analysis across pages, tables, reports
- Variable and parameter tracking in codeunits
$3
- Search by business area (Sales, Purchasing, Finance, Inventory, Manufacturing, Service)
- Pattern-based domain detection
- Cross-package domain analysis
Architecture
`
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
`
Performance Features:
- Lazy initialization - packages load on first request
- Streaming JSON parsing prevents memory issues
- Multiple optimized indices for O(1) lookups
- Version filtering uses latest package only
- Token-optimized responses reduce AI context usage
Requirements
Runtime:
- Node.js 18 or higher
- .NET SDK 8.0 or higher
- NuGet package source (nuget.org)
Project Structure:
- AL workspace with app.json
- Compiled .app packages in .alpackages directory
Supported AL Packages:
- Modern namespace-based packages
- Legacy non-namespace packages (PTEs)
- Business Central base application
- AppSource extensions
The server analyzes compiled AL symbols, not raw .al source files.
Troubleshooting
AL CLI not found
- The server auto-installs AL tools
- Requires .NET SDK 8.0 or higher
- Verify: dotnet --version
NU1100 error
- Update to .NET SDK 8.0+
- Configure NuGet: dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
No sources found
- Check NuGet sources: dotnet nuget list source
- Should include nuget.org
No packages found
- Ensure .app files exist in .alpackages directory
- Use al_auto_discover tool to search for packages
- Check that packages were compiled successfully
Server not responding
- Verify Node.js 18+ is installed
- Check AI assistant MCP configuration
- Review server logs in AI assistant output
Need Help?
- Open an issue
- View documentation
Example Usage
Once configured, ask your AI assistant:
`
"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"
``