A simple demonstration of a Model Context Protocol (MCP) server implementation that provides tool functionality to upgrade applications via a shell script.
Single tool 'upgrade_apps' has critical definition gaps. Tool name lacks clarity (does not follow verb_noun pattern clearly, 'upgrade_apps' is acceptable but vague on scope). Description is minimal (47 chars, below 10-char baseline for A+ tools). No parameter descriptions, no output schema documentation, no error handling guidance. Tool performs destructive operation (shell command execution) with no confirmation, dry-run, or permission checks. No input validation or sanitization against command injection. This server would not pass code review.
Upgrade all apps by custom command.
Empty input schema ({}). Tool accepts no documented parameters, making it impossible for LLMs to understand what inputs are valid or required.
Destructive operation (shell command execution) with no confirmation, dry-run, or permission gate. Agents can trigger irreversible system changes without safeguards.
No output schema documented. LLMs cannot plan downstream actions or extract structured data from the response.
Command injection vulnerability. Tool constructs shell command from environment variable without validation. Malicious COMMAND_FOLDER_PATH could execute arbitrary code.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tool returns raw stdout/stderr with no categorization (retryable vs fatal) or actionable next steps for LLMs.