A Model Context Protocol server that executes JavaScript code in an isolated environment
Single well-defined tool with clear schema, descriptions, and error handling. Tool follows verb_noun naming convention (execute_js) and has complete input schema with proper type constraints. Description is actionable. Parameters are documented with min/max bounds. Output schema is documented in implementation but not in tool definition metadata. Security considerations are present (forbidden pattern validation). Main gaps: no output schema formally documented in tool definition, no explicit idempotence guarantees, no dry-run/confirmation pattern for safety-critical operation.
Execute JavaScript code in an isolated environment
Output schema not formally documented in tool definition. While implementation returns {result, console, executionTime, memoryUsage}, the ListToolsRequestSchema response does not include an outputSchema or description of return fields. LLMs cannot plan downstream operations without knowing what fields to expect.
No confirmation or dry-run pattern for execution. Code execution is destructive (can consume resources, generate side effects via console output, timeout the runtime). The tool lacks a safety mechanism for irreversible operations, violating confirmation-request pattern.
Parameter description for 'timeout' lacks guidance on implications. Description reads 'Maximum execution time in milliseconds' but does not explain what happens at timeout (exception? partial result?) or recovery strategy. Per pattern:recovery-guide, error responses should guide next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Parameter description for 'memory' lacks actionable context. What triggers memory limit? Does execution fail gracefully or throw? No guidance for the LLM on how to recover or what to try if memory limit is exceeded.
Tool description does not explicitly state this is a modification tool (executes arbitrary code with side effects). Per pattern:command-tool, descriptions must clarify which calls are idempotent vs destructive. Current description 'Execute JavaScript code in an isolated environment' does not warn of irreversible consequences.