REST + MCP server for sandboxed code execution compatible with any MCP-compliant client. Supports Python (Jupyter-based), Bash, Node.js, TypeScript, Go, and C++.
Server has 6 tools with complete input schemas and descriptions. Naming follows verb_noun convention (execute_code, upload_files, list_session_files, download_file, get_health). Descriptions are present (avg ~120 chars) but lack actionable guidance on when to use each tool vs alternatives. Parameters are typed with enums where appropriate (lang, detail). Critical gap: no output schemas documented, LLMs cannot predict response structure for chaining. Error handling is absent, no guidance on retryability or recovery. Security concern: session_id and user_id parameters suggest stateful execution, but no audit trail or permission checks visible. Tool composition is reasonable (single responsibility), but stream_execute_code duplicates execute_code with Python-only restriction.
Download a file from a session workspace.
Execute code in a specified language (Python, Bash, Node.js, TypeScript, Go, C++) with optional arguments and file references. Returns stdout, stderr, exit code, and generated files.
Check server health and runtime capabilities. Returns active session count and available language runtimes with their versions and missing dependencies.
List files in a session workspace. Supports detailed metadata retrieval.
Execute Python code with streaming output. Yields SSE frames containing execution events and output in real-time. Python-only.
Upload files to a session workspace. Returns session ID and list of uploaded files.
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining. execute_code returns 'stdout, stderr, exit code, generated files' but no JSON schema visible.
No error handling guidance. Tools lack recovery hints (e.g., 'If code fails, check syntax' or 'If upload fails, verify file size < 100MB'). Agents cannot self-correct on failures.
Stateful execution via session_id/user_id parameters without visible permission checks or audit logging. No evidence of access control, any caller can reference any session_id.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
stream_execute_code duplicates execute_code with Python-only restriction. Violates single-responsibility principle, agents must reason about which variant to use, wasting tokens.
Descriptions lack context on when to call each tool. 'Execute code in a specified language' does not explain: When use execute_code vs stream_execute_code? What happens to generated files? How long can execution run?