MCP server for Claude Code CLI that executes commands and queries using the Claude Code CLI tool
Single tool 'run_claude' has a basic description but lacks critical production-grade patterns. The tool name 'run_claude' is generic and does not follow verb_noun conventions (should be 'execute_claude_command' or similar). Input schema is present with types and descriptions, but output is unstructured plain text with no documented schema. No error classification, no recovery guidance, no idempotency markers. The tool accepts a dangerous 'skip_permissions' parameter that defaults to true, creating a security risk. No pagination, no structured output, no tool annotations.
Execute a command or query using the Claude Code CLI. Args: prompt: The prompt or command to send to Claude. verbose: Whether to enable verbose output. skip_permissions: Whether to bypass permission checks (recommended for automated use).
Tool name 'run_claude' is generic and does not follow verb_noun convention. Should be 'execute_claude_command' or 'run_claude_code' to clearly signal the action.
Output is unstructured plain text string with no documented schema. LLMs cannot parse structured fields or plan downstream operations. Should return JSON object with fields like {status, output, stderr, exit_code}.
Parameter 'skip_permissions' defaults to true, bypassing security checks by default. This is a dangerous default that invites unintended privilege escalation. Should default to false and require explicit opt-in.
No error classification or recovery guidance. Generic catch-all exception handler returns 'Error executing Claude Code: {str(e)}' which gives LLM no actionable next step. Should categorize as retryable vs fatal and suggest recovery actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Tool executes arbitrary subprocess commands with user-supplied prompt. No input sanitization against command injection. Prompt parameter should be validated and escaped before passing to subprocess.