AL Language Server wrappers for Claude Code - Business Central development
npx claudepluginhub sshadows/al-lsp-for-agentsAL language server wrapper (Go) for Windows - includes Code Lens, Call Hierarchy, and unused procedure detection
AL language server wrapper (Go) for Linux - includes Code Lens, Call Hierarchy, and unused procedure detection
AL Language Server wrappers for AI-powered Business Central development. Works with Claude Code, OpenCode, and VS Code (GitHub Copilot agent mode).
| Wrapper | Platform | Description |
|---|---|---|
al-language-server-go-windows | Windows | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-go-linux | Linux | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-go-darwin | macOS | Recommended - Go wrapper with Code Lens & Call Hierarchy |
al-language-server-python | Cross-platform | Deprecated - Basic LSP features only |
Migration Note: If you're using the Python wrapper, switch to the Go wrapper for your platform to get Code Lens (reference counts) and Call Hierarchy features.
The Go wrappers are compiled binaries with no runtime dependencies. The wrapper automatically finds the newest AL extension version in your VS Code extensions folder.
One-command setup:
Linux:
curl -fsSL https://raw.githubusercontent.com/SShadowS/al-lsp-for-agents/main/scripts/setup-opencode.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/SShadowS/al-lsp-for-agents/main/scripts/setup-opencode.ps1 | iex
The script downloads the latest binaries, checks for the AL VS Code extension, and configures opencode.json. Run it again to update. Use SCOPE=project to write config to the current directory instead of globally.
# PowerShell (current session)
$env:ENABLE_LSP_TOOL = "1"
claude
# PowerShell (permanent)
[Environment]::SetEnvironmentVariable("ENABLE_LSP_TOOL", "1", "User")
# Bash
export ENABLE_LSP_TOOL=1
claude
/plugin marketplace add SShadowS/al-lsp-for-agents
/pluginsMarketplacesal-lsp-for-agents marketplaceal-language-server-go-windowsal-language-server-go-linuxal-language-server-go-darwinClaude can use these LSP operations on AL files:
| Operation | Status | Description |
|---|---|---|
goToDefinition | Working | Go to symbol definition |
goToImplementation | Working | Go to implementation |
hover | Working | Get type/documentation info |
documentSymbol | Working | List symbols in file |
findReferences | Working | Find all references |
prepareCallHierarchy | Working | Get call hierarchy item at position |
incomingCalls | Working | Find callers of a procedure |
outgoingCalls | Working | Find calls made by a procedure |
workspaceSymbol | Bug | See Known Issues |
Claude Code's LSP tool has a bug where it doesn't pass the required query parameter for workspaceSymbol. This causes the operation to always return 0 symbols.
Workarounds:
documentSymbol to list symbols in a specific fileGrep to search for symbol names across the workspaceSee KnownIssues.md for full details and technical analysis.