An MCP server to run arbitrary commands
Single tool 'run_command' has a clear verb-noun name and acceptable schema with three parameters (command, workdir, stdin). However, the description is generic ('Run a command on this machine') and lacks critical safety guidance for a destructive tool. Parameters have type definitions and brief descriptions, but lack constraints (no timeout, no command validation, no allowlist). No output schema is documented. The tool is inherently high-risk (arbitrary command execution) yet has no error handling guidance, confirmation pattern, or permission checks. This is a dangerous tool presented without adequate safeguards.
Run a command on this machine
Destructive tool lacks confirmation or dry-run pattern. run_command executes arbitrary shell commands with no confirmation step, dry-run option, or undo capability. A single LLM mistake could delete files, modify systems, or cause data loss.
No output schema documented. Callers cannot predict what run_command returns (stdout, stderr, exit code, combined?). LLMs cannot plan downstream actions without knowing the response structure.
No input validation or constraints. 'command' parameter accepts any string with no length limit, allowlist, or injection protection. LLMs can be tricked into passing malicious payloads (e.g., 'rm -rf /'). No timeout specified.
Description lacks safety guidance and prerequisites. For a destructive tool, the description should warn about irreversible consequences, list what commands are safe/unsafe, and explain when to use it. Current description is 34 chars, below the 50-char minimum for adequate context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No error handling guidance. If a command fails, what does the tool return? How should the LLM interpret exit codes? No recovery hints provided.