A security-hardened MCP server for running allowlisted terminal commands: no shell, cwd jail, timeouts, output caps, env scrub, audit trail, and secret redaction.
Two tools with clear security focus and reasonable descriptions (both 100+ chars). Schemas present with typed parameters and descriptions. However, output schema for CommandResult is documented in code but not formally exposed to MCP clients. Error handling is comprehensive (8 result codes) but descriptions lack actionable recovery guidance. Tool names are verb-based and clear. Missing: parameter constraints (enums for ResultCode), pagination support, and explicit documentation of which fields downstream tools should use.
Dry-run evaluation of a command against the policy without executing it. Returns the policy decision and reason.
Execute a policy-approved command in a sandboxed environment with timeout, output caps, environment scrubbing, and secret redaction.
Output schema (CommandResult) not formally declared in tool registration. LLMs cannot see that ok, code, stdout, stderr, exit_code, duration_ms, policy_reason fields exist. Clients must infer structure from examples.
ResultCode enum values not exposed as parameter constraints. Tool accepts 'command' as free-form string; no enum for result codes. LLMs cannot validate or predict valid outcomes.
Error descriptions lack recovery guidance. 'POLICY_DENIED' and 'EXECUTOR_ERROR' are returned but tool description does not explain what the LLM should do next (e.g., 'Call explain_command to see why it was denied').
cwd parameter lacks format/constraint documentation. Description says 'optional, defaults to jail root' but does not explain valid paths, symlink handling, or escape detection behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment to local/containerized scenarios.