AL Object ID Ninja MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_MODE | No | Server mode: 'lite' or 'standard' | lite |
| CACHE_TTL | No | Cache time-to-live in milliseconds | 300000 |
| LOG_LEVEL | No | Logging level: error, warn, info, debug | info |
| BACKEND_URL | No | Custom backend URL | https://vjekocom-alext-weu.azurewebsites.net |
| CACHE_ENABLED | No | Enable response caching | true |
| BACKEND_API_KEY | No | API key for custom backend (optional) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authorizationC | Manage app authorization for Object ID synchronization. REQUIRES action ("status"|"start"|"deauthorize"), appPath: absolute path to the workspace directory containing app.json and .objidconfig - NOT a file path. Example (OK): "C:\Projects\MyALApp" or "/home/user/MyALApp". Example (NOT OK): "path/to/app.json". Optional: interactive (boolean, default: true). |
| configA | Read, write, and validate .objidconfig configuration files. REQUIRES action ("read"|"write"|"validate"), appPath: absolute path to the workspace directory containing app.json and .objidconfig - NOT a file path. Example (OK): "C:\Projects\MyALApp" or "/home/user/MyALApp". Example (NOT OK): "path/to/.objidconfig". Optional: keys (string[], read only), patch (object, write only), merge (boolean, write only, default: true), schema_version (string). |
| allocate_idA | Preview, reserve, or reclaim object IDs for AL development. REQUIRES mode ("preview"|"reserve"|"reclaim"), appPath: absolute path to the workspace directory containing app.json and .objidconfig - NOT a file path. Example (OK): "C:\Projects\MyALApp" or "/home/user/MyALApp". Example (NOT OK): "path/to/app.json". REQUIRES object_type (AL object type string). Optional: count (number, default: 1), pool_id (string), preferred_range ({from:number, to:number}), object_metadata ({name?:string, file?:string, tag?:string}), ids (number[], reclaim mode only), dry_run (boolean, default: false), auto_track (boolean, reserve mode only, default: true - automatically stores assignments after reservation). |
| analyze_workspaceA | Analyze AL workspace for object ID consumption, collisions, and pool mapping. REQUIRES appPath: absolute path to the workspace directory containing app.json and .objidconfig - NOT a file path. Example (OK): "C:\Projects\MyALApp" or "/home/user/MyALApp". Example (NOT OK): "path/to/app.json" or "path/to/file.app". Optional: include (string[], default: ["/*.al"]), exclude (string[], default: ["/.alpackages/", "/.snapshots/**"]), object_types (string[]), return_level ("summary"|"detailed", default: "summary"), detect_collisions (boolean, default: true), map_to_pools (boolean, default: false). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool serves a completely distinct function: allocation, analysis, authorization, and configuration. There is no functional overlap or ambiguity between them.
Two tools follow a verb_noun pattern (allocate_id, analyze_workspace), while authorization and config are single nouns, creating inconsistency. All use snake_case, but the grammatical pattern is mixed.
With 4 tools covering the core operations for AL object ID management, the number is well-scoped and appropriate for the server's narrow domain.
The tool set covers the essential workflows: allocation, workspace analysis, authorization, and configuration. A minor gap is the lack of a dedicated status or pool listing tool, but the analysis tool partially fills this.