Command line interface for MCP clients with secure execution and customizable security policies
Single tool 'execute_command' has a name that is appropriately verb-forward and clear. However, the input schema visible in the code shows only a 'command' parameter with minimal structure. The description provided ('Execute a shell command with security validation and customizable policies') is generic and does not explain WHEN to use this tool, what it returns, what data structures are involved, or how to handle errors. The schema appears to lack comprehensive parameter documentation, type constraints (enums, ranges), and output schema definition. No parameter descriptions are visible in the input schema. The server implements substantial security logic (CommandExecutor, SecurityConfig, validation functions) internally, but this is not reflected in the tool's public interface, the LLM has no visibility into what the tool accepts, what it returns, or how to compose with it. The tool is a high-risk, write-level operation (WRITE risk declared) with no documented error handling guidance, no return schema, and no confirmation/dry-run pattern.
Execute a shell command with security validation and customizable policies
No output schema documented. The tool description does not specify what execute_command returns (stdout, stderr, exit code, structured object, etc.), forcing LLMs to guess and break composition chains.
Parameter 'command' lacks description in visible schema. Without a description explaining format, examples, or constraints, LLMs cannot predict valid inputs. The source code shows security validation logic (allowed_commands whitelist, shell operator checks, path normalization) that should be reflected in the parameter description.
No error handling guidance in description. The tool can raise CommandSecurityError, CommandExecutionError, CommandTimeoutError (visible in code), but the description does not guide the LLM on what to do if validation fails, command times out, or execution fails. Agents have no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 19 | - | v1 |
Tool is a high-risk write operation (RISK: WRITE) with no confirmation/dry-run pattern. Agents can invoke arbitrary shell commands without a checkpoint. No support for pre-execution validation or user confirmation.
Tool description is generic and does not explain WHEN to use it, what makes a command valid, or what the LLM should expect. '194 chars avg' baseline for descriptions suggests this 80-char description is below the p10 for quality tools. It lacks actionable context.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. This is a destructive tool that modifies system state, annotations would signal this to clients and guide behavior.
Security logic is complex (SecurityConfig, CommandExecutor with path normalization, flag validation, shell operator control) but none of this is surfaced in the tool interface. An LLM has no way to know what commands are allowed, which flags are permitted, or that paths are restricted.