MCP server that translates natural language to shell commands, executes commands in sandboxed containers, and explains shell commands. Exposes three tools: leshell_translate, leshell_execute, and leshell_explain.
Three tools with complete schemas and descriptions, but quality is uneven. leshell_translate and leshell_explain have clear, actionable descriptions (90-100 chars). leshell_execute has a solid description but lacks critical safety documentation around destructive operations. All tools have proper JSON Schema with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict what fields to expect in responses. Error handling guidance is absent; tools do not explain recovery paths or categorize failures. No tool annotations (readOnlyHint/destructiveHint) despite leshell_execute being a WRITE operation. Parameter descriptions are adequate but lack format constraints (e.g., timeout_ms has no min/max bounds despite a stated max of 60000). Overall: functional definitions suitable for basic use, but missing production-grade polish around error recovery, output documentation, and safety hints.
Execute a shell command inside an isolated Docker sandbox container. Requires an active session ID.
Explain what a shell command does in plain English. Returns a human-readable description of the command's behavior.
Translate a natural language description into a shell command. Returns the best matching bash command for the given request.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is available for downstream calls.
leshell_execute lacks destructive operation warnings. No description states that this tool modifies system state, executes arbitrary commands, or has irreversible consequences. Agents cannot reason about safety or retry semantics.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). leshell_execute is marked WRITE but lacks formal annotation. Agents cannot determine which tools are safe to retry or compose without side effects.
timeout_ms parameter lacks min/max constraints in description. Schema shows max 60000 but description does not state bounds. LLMs may pass invalid values (negative, zero, or >60000) without guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what errors are retryable, what user-fixable errors look like, or how to recover from failures. Agents receive raw errors with no recovery path.