MCP server for executing binary-refinery (binref) shell commands
binref-mcp has a single tool with multiple critical quality gaps. The tool name 'binref_cmd' violates naming conventions (does not start with a clear action verb, 'cmd' is ambiguous), lacks proper parameter descriptions, exposes dangerous shell execution with no safety constraints, and provides no structured output documentation. The tool description is minimal (52 chars) and does not guide LLM usage or warn of irreversibility. No error handling guidance, no input validation, no pagination or output schema definition. This server is below community baseline and unsuitable for production agentic use.
Execute a binref shell command and return the output. You can get help by running `binref -h`
Tool name 'binref_cmd' violates action-verb naming convention. Names like 'execute_binref', 'run_binref_command', or 'binref_execute' are self-documenting; 'cmd' is ambiguous shorthand that does not convey intent. LLMs cannot infer whether this tool creates, modifies, reads, or executes arbitrary code.
Single parameter 'command' has no description. The description is mandatory for LLM parameter interpretation. Without it, the LLM cannot determine what command strings are valid, what format is expected, or what the command will do.
Shell command execution without input validation or constraints. The tool accepts arbitrary shell commands via `subprocess.run(..., shell=True)` with no sanitization. This is a critical command-injection vulnerability. Even with 'not secure' comment in code, no input constraints are declared in the schema. Agents can be tricked into executing malicious payloads.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Tool marked IRREVERSIBLE but has no confirmation/dry-run support and no error-handling guidance. Description does not warn of consequences. Agents make mistakes, this server provides no guard rails.
Tool description is 52 characters (below 100-char minimum for clarity). Does not answer WHAT, WHEN, or WHY. Missing dependency hints (e.g., 'Call binref -h first to see available commands').
No output schema or documentation. Return type is a bare string with no structure. LLMs cannot predict fields, parse results reliably, or extract structured data for downstream calls.
No recovery guidance in error handling. Errors return raw stderr (e.g., 'Error: <raw stderr>') with no hint for the LLM on what to try next.