MCP Shell Server - Execute shell commands via MCP protocol
Single tool 'shell_execute' has a well-defined purpose and detailed schema with proper input validation, but lacks structured output documentation and fails to fully implement error recovery patterns. The tool description (154 chars) meets baseline length requirements and explicitly states the trusted-execution contract. Input schema is comprehensive with all parameters typed and described. However, there is no documented output schema, no error categorization guidance, and no recovery instructions for common failure modes. The tool's destructive nature (risk: DESTRUCTIVE marked) demands stronger error handling and confirmation patterns per Arcade patterns, which are absent.
Execute an allowed command as an argv array on the MCP server host. Allowed commands run with the server process's OS authority; the allowlist controls executable names, not what an allowed program does.
No output schema documented. LLMs cannot infer what fields or structure shell_execute returns (stdout, stderr, exit code, etc.), forcing them to guess downstream data handling.
No error recovery guidance. Destructive tool (shell_execute) marked DESTRUCTIVE but lacks error categorization (retryable vs fatal), actionable error messages, or confirmation/dry-run pattern to prevent irreversible failures.
No confirmation or dry-run support for destructive operations. Tool allows rm, kill, and data-modifying commands with no pre-execution confirmation step, per pattern:confirmation-request.
Missing per-item or per-command success/failure detail in response structure. If a complex command pipeline partially fails, agents cannot determine which step broke without parsing stderr.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 70 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 39 | - | v1 |
Tool description does not state what the response contains (stdout, stderr, exit code format). Per pattern:tool-description, LLMs need explicit return-value documentation to plan downstream logic.
Parameter 'command' is required but no guidance on command discovery or validation. Description does not hint that ALLOW_COMMANDS/ALLOW_PATTERNS must be configured first, or what happens if a command is not allowed.