MCP server for managing Business Central Docker containers — inspired by bc-docker-manager VS Code extension
45 tools with consistent naming (verb_noun pattern) and descriptions present. However, critical gaps: (1) Input schemas visible for ~30 tools but many lack complete parameter descriptions, e.g., create_container has 9 params but descriptions are minimal ('Container name', 'Docker image URI'); (2) Output schemas are NOT documented anywhere in source, no return type specs for any tool; (3) Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors; (4) No pagination support despite tools like list_containers, list_images, list_artifacts that could return large result sets; (5) Sensitive parameters (password, auth tokens) exposed as tool inputs rather than server-side injection. Tool names are clear and action-oriented, but parameter descriptions lack format constraints, ranges, and dependency documentation required by pattern:tool-description.
Add an annotation to a container
Add standard test users (ESSENTIAL, PREMIUM, TEAMMEMBER) to a BC container
Add a user to a BC container
Backup the BC database from a container
Check if Docker is ready for BC container operations
Create and start a new BC container
Create a Docker volume
Delete a saved profile
Run comprehensive diagnostics on Docker and system configuration
No output schemas documented for any of 45 tools. LLMs cannot plan downstream calls or extract required fields without knowing return structure.
Sensitive parameters (password, auth tokens) exposed as tool inputs. create_container accepts 'password' and 'auth' as parameters, these should be server-side injected via environment or vault, not passed by LLM.
No error handling guidance. Tools lack recovery hints, error categorization (retryable vs fatal), or actionable error messages. E.g., remove_container has no confirmation or dry-run option despite being destructive.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Download a file from container to host
Execute NAV/BC PowerShell cmdlets in a container
Execute arbitrary PowerShell commands in a container
Get detailed information about a specific BC artifact
Get the IP address of a container
Retrieve container logs
Get port mappings for a container
Get BC server instance and database information from a container
Get current user configuration settings
Get detailed information about a specific container
List container annotations
List available BC artifacts from the CDN
List all Docker containers with BC metadata
List available Docker images
List saved container profiles
List Docker volumes
Publish an .app file to a BC container
Pull a Docker image from registry
Remove an annotation from a container
Remove a container
Remove multiple containers in parallel
Remove a Docker volume
Reset user configuration to built-in defaults
Restart a container
Restore a BC database backup to a container
Run AL test suites in a BC container
Save a container configuration as a profile
Setup and configure the Docker environment for BC containers
Start a stopped container
Start the Docker Engine Windows service
Start multiple containers in parallel
Stop a running container
Stop multiple containers in parallel
Update user configuration settings
Upload a file from host to container
Upload and import a license file to a BC container
List tools (list_containers, list_images, list_artifacts, list_volumes, list_profiles) lack pagination parameters (limit, offset, cursor). Large result sets will blow context window.
Parameter descriptions lack format constraints and ranges. E.g., 'memory' in create_container is described as 'Memory allocation (e.g., '8G')' but no validation rules, min/max, or allowed units documented.