MCP server for DevOps operations including Docker, Helm, Ansible, Jenkins, and Terraform
Server has 6 tools with complete schemas and descriptions, but quality is uneven. All tools have input schemas with types and descriptions (good baseline). However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter descriptions are present but minimal (avg ~40 chars, below 72-char baseline). No output schemas documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Missing idempotency guarantees and composition guidance.
Execute an Ansible playbook with optional inventory and extra variables
Build a Docker image from a Dockerfile in the specified context directory
List Docker containers with optional filtering by status
List Helm releases across namespaces with optional filtering
Trigger a Jenkins build job with optional parameters and wait for queue info
Run terraform plan and return a structured summary of changes
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. Responses are JSON strings, not structured objects.
Parameter descriptions are minimal (avg ~40 chars vs 72-char baseline). Missing format hints, constraints, and dependency documentation. E.g., 'status' enum lacks explanation of when to use each value.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes. docker_build and ansible_run_playbook are marked WRITE but lack annotation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Error handling returns raw error messages without recovery guidance. E.g., 'Ansible error: <message>' tells LLM nothing about retry eligibility or next steps.
Tool descriptions lack WHEN-to-use guidance. 'List Docker containers' is what it does, not when an LLM should call it vs docker_build or helm_list_releases.