Intercept risky shell commands with verification challenges — a captcha for your terminal
Single-tool MCP server providing shell command security assessment. The tool has a clear, specific name (assess_command) and a detailed description. Input schema is present with proper typing. However, the output schema is NOT documented in the visible source code, the agent.rs file shows only input parameter definition and mentions 'RiskAssessment' as a struct but does not expose its field definitions, types, or structure to the MCP client. This is a critical gap because downstream tool chains cannot predict the response shape. The tool follows good naming conventions (verb_noun) and has a security-focused use case with appropriate error handling logic mentioned (severity thresholds, deny lists), but lack of documented output schema and missing parameter descriptions for response fields prevent a higher score.
Run the full analysis pipeline and build a RiskAssessment. This is the primary entry point for MCP tool handlers and agent integrations.
Clear the audit log by removing the log file.
Append an audit event to the log file as a JSON line. If the file doesn't exist, it is created. Each entry is one JSON object per line.
Get the current timestamp in ISO 8601 format.
Read and return all audit log lines. Returns 'No audit events recorded yet.' if the file doesn't exist.
Output schema not documented. RiskAssessment struct is referenced in code but its fields, types, and structure are not visible in the tool registration or source excerpt. LLMs cannot predict response shape or chain subsequent tools.
Input parameter 'command' lacks detailed description of expected format, constraints, and examples. Description should explain: what constitutes a valid shell command, whether it supports piping/redirects, max length, character restrictions, and when this tool should vs should not be called.
No documentation of error cases and recovery guidance. Tool should describe what happens on invalid syntax, unsupported commands, timeouts, and how LLM should respond (retry, ask user, skip).
Tool description mentions 'whether the command is allowed for AI agents' but does not document how this permission decision is made, what deny rules exist, or what the agent should do if a command is denied.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |