Persistent IPython MCP server with inspectable execution output
Single tool 'run_cell' has a freeform string parameter with no type constraints, enums, or validation guidance. Description is adequate (67 chars) but parameter lacks any description whatsoever. No output schema is documented. The tool accepts arbitrary Python code (WRITE risk) with no error handling, recovery guidance, or safety constraints. No input validation, no pagination, no structured output definition. This is a minimal, unsafe tool definition that violates multiple core patterns.
Execute Python code in a persistent IPython kernel and return execution results
Parameter 'freeform' has no description. LLMs cannot infer what format, constraints, or examples are valid. This violates pattern:tool-description.
No input schema validation or constraints. Tool accepts any string as Python code with no guards against injection, infinite loops, or resource exhaustion. Violates pattern:tool-gateway and pattern:constrained-input.
No output schema documented. LLMs cannot plan downstream operations or extract execution results reliably. Violates pattern:tool.
No error handling or recovery guidance. If code execution fails, LLMs receive no actionable error message or next steps. Violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Tool executes arbitrary code (WRITE risk) with no permission gates, audit trail, or confirmation step. Violates pattern:permission-gate and pattern:audit-trail.