Execute Python code in an isolated subprocess and manage package installation with security controls
Two tools with clear action verbs and reasonable descriptions (194 - 200 chars, within baseline). Both have input schemas with types and descriptions. However, output schemas are undocumented (only string returns visible), parameter descriptions lack format/constraint details (e.g., no regex for code validation, no enum for env_vars structure), and error handling is minimal, responses are free-text strings rather than structured objects with recovery guidance. Tool annotations present but incomplete (missing readOnlyHint/destructiveHint details for pip_install). No pagination, no per-item error reporting for batch operations.
Install one or more pip packages into the active Python environment.
Execute Python code in an isolated subprocess and return stdout/stderr.
Output schemas undocumented. Both tools return plain strings; no structured response schema defined. LLMs cannot parse results reliably or extract IDs for chaining.
Error handling returns free-text strings without recovery guidance. 'Blocked: <error>' and 'install failed: <error>' give no actionable next steps. Should categorize errors (retryable, user-fixable, fatal) and suggest alternatives.
Parameter descriptions lack format/constraint details. 'code' param has no mention of language, size limits, or forbidden patterns. 'env_vars' is typed as object but no schema for key/value types. 'packages' array has no length limits or format examples.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool annotations incomplete. python_run has readOnlyHint=false and destructiveHint=false, but executing arbitrary code is destructive (can modify files, network, environment). pip_install correctly marks destructiveHint=false but should be true (modifies environment).
No dry-run or confirmation step for irreversible operations. python_run executes code immediately; pip_install installs packages immediately. Agents cannot preview consequences before committing.