Unified MCP server that provides code execution in a sandboxed environment with access to MCP tools. Supports multiple transport modes: REST API, MCP protocol, WebSocket bidirectional tool calling, and Open-PTC Proxy.
Open-PTC exposes 4 tools with significant quality gaps. Tool naming follows verb_noun convention (get_, execute_), but descriptions are minimal (10-50 chars, well below the 194-char baseline). Critical issue: execute_typescript_code and code_executor both execute arbitrary code with identical functionality, violates single-responsibility principle. Input schemas are present but lack parameter descriptions (required by pattern:tool-description). No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. The two code execution tools create dangerous composition ambiguity and increase hallucination risk when LLMs choose between them.
Execute TypeScript/JavaScript code in a sandboxed environment with access to registered functions and MCP tools.
Execute TypeScript code in a sandbox with access to all MCP tools.
Get TypeScript function signatures for tools with optional filtering.
Get a tree view of available tools organized by server.
Duplicate tools with identical functionality: execute_typescript_code and code_executor both execute arbitrary code. Violates single-responsibility principle and forces LLMs to reason about which to use, increasing hallucination risk.
Parameter descriptions missing. Schema defines properties (includeDescriptions, charLimit, serverNames, toolNames, code) but provides no descriptions explaining what each controls. LLMs cannot infer parameter semantics from names alone.
Tool descriptions are too short (10-50 chars vs 194-char baseline). Descriptions lack context for when/why to use each tool. No mention of prerequisites, return structure, or error conditions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2025-06-18+ | v2 |
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. Responses are unstructured, forcing LLMs to parse free-text output.
No error handling guidance. Code execution tools (execute_typescript_code, code_executor) are IRREVERSIBLE but provide no recovery hints, error categorization, or confirmation steps. Agents cannot distinguish retryable from fatal failures.