{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm-mcp-server-code-runner","slug":"mcp-server-code-runner","name":"mcp-server-code-runner","type":"mcp","url":"https://github.com/formulahendry/mcp-server-code-runner#readme","page_url":"https://unfragile.ai/mcp-server-code-runner","categories":["mcp-servers"],"tags":["mcp","code-runner","server"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm-mcp-server-code-runner__cap_0","uri":"capability://tool.use.integration.multi.language.code.execution.via.mcp.protocol","name":"multi-language code execution via mcp protocol","description":"Executes arbitrary code snippets in multiple programming languages (Python, JavaScript, TypeScript, Bash, etc.) through the Model Context Protocol, translating MCP tool calls into subprocess invocations with isolated execution contexts. The server implements MCP's tool-calling interface to expose code execution as a callable resource, handling language detection, runtime invocation, and output capture through standard process APIs.","intents":["I want Claude or another LLM to run code directly and see results without manual execution","I need to build an agent that can test code snippets and iterate based on execution feedback","I want to enable dynamic code evaluation within an LLM conversation flow"],"best_for":["AI agent developers building code-generation-to-execution pipelines","Teams integrating LLMs with development workflows requiring live code validation","Researchers prototyping LLM-driven code synthesis and debugging systems"],"limitations":["No sandboxing or resource limits — arbitrary code execution poses security risks in untrusted environments","Execution timeout and memory constraints depend on host system configuration, not enforced by the server","No built-in output streaming — large outputs are buffered in memory before returning to client","Language support limited to runtimes installed on the host system; missing runtimes will fail silently or with cryptic errors"],"requires":["Node.js 14+ (for the MCP server itself)","Python 3.6+ (if executing Python code)","Bash/sh (if executing shell scripts)","MCP-compatible client (Claude Desktop, custom MCP client, or LLM with MCP support)","Network connectivity or local socket access to the MCP server"],"input_types":["code (as plain text strings in any supported language)","language identifier (Python, JavaScript, TypeScript, Bash, etc.)","optional working directory path"],"output_types":["stdout (execution output as text)","stderr (error messages and diagnostics)","exit code (process return status)","structured JSON response with combined output and metadata"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_1","uri":"capability://tool.use.integration.language.agnostic.code.runtime.abstraction","name":"language-agnostic code runtime abstraction","description":"Abstracts language-specific runtime invocation details behind a unified MCP tool interface, automatically detecting the target language from file extensions or explicit language parameters and routing execution to the appropriate interpreter (python, node, bash, etc.). The server maintains a registry of language-to-runtime mappings and handles version-specific invocation patterns transparently.","intents":["I want to execute code in different languages without knowing the exact CLI flags or runtime setup","I need an LLM to switch between Python, JavaScript, and Bash seamlessly in a single conversation","I want to abstract away language-specific complexity so agents can focus on logic, not syntax"],"best_for":["Polyglot development teams using multiple languages in the same project","LLM agent builders who want language-agnostic code execution without custom handlers","Educational platforms teaching code execution across multiple languages"],"limitations":["Language support is static and determined at server startup — adding new languages requires code changes or configuration updates","No version management — if multiple Python versions are installed, the server uses the system default without selection capability","Runtime detection is simplistic (file extension-based) and may fail for ambiguous cases (e.g., .js could be Node.js or Deno)"],"requires":["Target language runtime installed and available in system PATH","MCP server configured with language-to-runtime mappings","Client capability to specify language or provide file extension hints"],"input_types":["code string","language identifier (Python, JavaScript, TypeScript, Bash, etc.)","file extension (optional, for auto-detection)"],"output_types":["execution result (stdout + stderr)","language-specific error messages","exit code"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_2","uri":"capability://automation.workflow.subprocess.based.code.isolation.and.execution","name":"subprocess-based code isolation and execution","description":"Executes code in isolated child processes using Node.js child_process APIs, ensuring that code execution does not directly affect the MCP server process or other concurrent executions. Each code run spawns a new subprocess with its own memory space, file descriptors, and environment, with stdout/stderr captured and returned to the client after process termination.","intents":["I need to run untrusted or experimental code without crashing the MCP server","I want concurrent code executions to not interfere with each other","I need to capture both successful output and error messages from code runs"],"best_for":["Production MCP deployments serving multiple concurrent clients","Systems running user-submitted or agent-generated code that may contain bugs or infinite loops","Scenarios requiring execution isolation without full containerization overhead"],"limitations":["Process isolation is OS-level only — no resource quotas (CPU, memory) are enforced, allowing runaway processes to consume host resources","No timeout enforcement at the MCP server level — long-running code blocks the tool call indefinitely unless the client implements timeouts","Subprocess cleanup is implicit on process exit; zombie processes may accumulate if parent process crashes","Inter-process communication overhead adds ~50-100ms latency per execution compared to in-process evaluation"],"requires":["Node.js runtime with child_process module support","OS-level process creation capabilities (fork/exec syscalls)","Sufficient file descriptors and process slots on the host system"],"input_types":["code string","language identifier","optional environment variables","optional working directory"],"output_types":["stdout (captured from subprocess)","stderr (captured from subprocess)","exit code (process return status)","execution metadata (runtime, timestamp)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_3","uri":"capability://tool.use.integration.mcp.tool.schema.registration.and.invocation.routing","name":"mcp tool schema registration and invocation routing","description":"Implements the MCP server protocol by registering code execution capabilities as callable tools with standardized JSON schemas, allowing MCP clients to discover available tools via the ListTools RPC and invoke them via CallTool RPC. The server maintains a tool registry with input/output schemas and routes incoming tool calls to the appropriate execution handler based on tool name and parameters.","intents":["I want Claude or other LLM clients to discover and call code execution as a native tool","I need to expose code execution through the standard MCP protocol without custom client code","I want the LLM to understand the tool's input schema and generate valid tool calls automatically"],"best_for":["LLM application developers integrating code execution into Claude or other MCP-aware models","Teams building MCP-compatible agents that need standardized tool interfaces","Developers who want to avoid custom API design and leverage MCP's standard protocol"],"limitations":["Tool schema is static and defined at server startup — dynamic schema generation based on runtime state is not supported","MCP protocol overhead adds ~10-20ms per tool call for serialization/deserialization compared to direct function calls","Client must support MCP protocol — non-MCP clients cannot access the code execution capability","Tool discovery is read-only — clients cannot register new tools dynamically with the server"],"requires":["MCP-compatible client (Claude Desktop, custom MCP client, or LLM with MCP support)","MCP server running and accessible via stdio or network socket","Client implementation of MCP protocol (ListTools, CallTool RPC methods)"],"input_types":["MCP CallTool RPC request with tool name and arguments","JSON-serialized tool parameters matching registered schema"],"output_types":["MCP CallTool RPC response with tool result","JSON-serialized execution output and metadata"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_4","uri":"capability://automation.workflow.real.time.stdout.stderr.capture.and.streaming","name":"real-time stdout/stderr capture and streaming","description":"Captures both standard output and standard error streams from executed code in real-time using Node.js stream APIs, buffering output until process termination and returning combined or separated streams to the client. The server distinguishes between stdout (normal output) and stderr (errors/diagnostics) and preserves the order and content of both streams.","intents":["I want to see both successful output and error messages from code execution","I need to distinguish between normal output and error diagnostics for debugging","I want to capture print statements, log messages, and error tracebacks from executed code"],"best_for":["Debugging and development workflows where error messages are critical","LLM agents that need to parse error output to fix code iteratively","Educational platforms teaching code execution with full diagnostic feedback"],"limitations":["Output is buffered in memory — very large outputs (>100MB) may cause memory pressure on the server","No real-time streaming to client — output is returned only after process termination, not incrementally","Binary output (non-UTF8) may be corrupted or truncated during capture","Interleaving of stdout and stderr is not guaranteed to match execution order due to buffering differences between streams"],"requires":["Node.js stream APIs (available in all modern Node.js versions)","Process spawned with stdio: ['pipe', 'pipe', 'pipe'] configuration"],"input_types":["code string","language identifier"],"output_types":["stdout (text output from code)","stderr (error messages and diagnostics)","combined output (optional, merged stdout + stderr)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_5","uri":"capability://automation.workflow.working.directory.context.and.file.system.access.control","name":"working directory context and file system access control","description":"Allows executed code to operate within a specified working directory, enabling file system operations (read/write) relative to that context. The server sets the cwd (current working directory) for each subprocess, allowing code to access files in the specified directory and its subdirectories without requiring absolute paths.","intents":["I want code to read and write files in a specific project directory","I need to run code that depends on relative file paths (e.g., loading config files)","I want to isolate file system access to a specific directory for safety"],"best_for":["Agents that need to manipulate files in a project directory","Development workflows where code reads configuration or data files","Systems requiring basic file system sandboxing without full containerization"],"limitations":["No enforced directory boundaries — code can escape the working directory using '../' paths or absolute paths","No file access control lists (ACLs) — if the MCP server process has read/write permissions, executed code inherits those permissions","Relative path resolution depends on the subprocess's cwd setting — symlinks and mount points may allow access outside the intended directory","No audit logging of file operations — file access is not tracked or reported to the client"],"requires":["Working directory path must exist and be readable by the MCP server process","MCP server process must have appropriate file system permissions (read/write) for the target directory","Client must specify working directory in the tool call (or use default)"],"input_types":["code string","working directory path (optional, defaults to server's cwd)"],"output_types":["execution output (stdout/stderr)","file system side effects (files created/modified in the working directory)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_6","uri":"capability://automation.workflow.environment.variable.injection.and.inheritance","name":"environment variable injection and inheritance","description":"Allows clients to pass environment variables to executed code, which are injected into the subprocess's environment before execution. The server merges client-provided variables with the parent process's environment, allowing code to access both inherited and injected variables via standard environment variable APIs (os.environ in Python, process.env in Node.js, etc.).","intents":["I want to pass API keys or configuration to executed code without hardcoding them","I need to set language-specific environment variables (e.g., PYTHONPATH, NODE_PATH)","I want to control code behavior via environment variables without modifying the code itself"],"best_for":["Agents that need to pass secrets or configuration to code dynamically","Development workflows where environment-specific configuration is required","Systems integrating with external services that require API keys or credentials"],"limitations":["Environment variables are passed in plaintext through the MCP protocol — no encryption or secure transmission","No environment variable validation — malformed or dangerous variables are passed through without sanitization","Environment variable size limits depend on OS (typically 128KB total per process) — very large variable values may fail silently","No audit logging of environment variable injection — sensitive data passed to code is not tracked"],"requires":["Client capability to specify environment variables in the tool call","MCP server configured to accept and forward environment variables","Code must use standard environment variable APIs to access injected variables"],"input_types":["code string","environment variables (key-value pairs, optional)"],"output_types":["execution output (stdout/stderr)","environment variable side effects (e.g., files created based on env vars)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-server-code-runner__cap_7","uri":"capability://automation.workflow.synchronous.code.execution.with.blocking.tool.calls","name":"synchronous code execution with blocking tool calls","description":"Executes code synchronously, blocking the MCP tool call until the subprocess completes and returns results. The server waits for process termination, collects all output, and returns the complete result in a single RPC response — no streaming or asynchronous callbacks are supported.","intents":["I want to execute code and wait for results before proceeding to the next step","I need synchronous feedback from code execution for agent decision-making","I want simple request-response semantics without managing async state"],"best_for":["Agent workflows with sequential code execution and decision-making","Simple scripts and short-running code (< 30 seconds)","Clients that cannot handle asynchronous tool results"],"limitations":["Long-running code blocks the entire tool call, potentially timing out if execution exceeds client timeout (typically 30-60 seconds)","No progress indication or cancellation — clients cannot monitor or interrupt long-running executions","Memory overhead from buffering all output until process termination — very large outputs may cause memory pressure","No streaming output — clients must wait for complete execution before seeing any results"],"requires":["MCP client with synchronous tool call support","Code execution expected to complete within client timeout window"],"input_types":["code string","language identifier"],"output_types":["complete execution result (stdout + stderr + exit code)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":34,"verified":false,"data_access_risk":"high","permissions":["Node.js 14+ (for the MCP server itself)","Python 3.6+ (if executing Python code)","Bash/sh (if executing shell scripts)","MCP-compatible client (Claude Desktop, custom MCP client, or LLM with MCP support)","Network connectivity or local socket access to the MCP server","Target language runtime installed and available in system PATH","MCP server configured with language-to-runtime mappings","Client capability to specify language or provide file extension hints","Node.js runtime with child_process module support","OS-level process creation capabilities (fork/exec syscalls)"],"failure_modes":["No sandboxing or resource limits — arbitrary code execution poses security risks in untrusted environments","Execution timeout and memory constraints depend on host system configuration, not enforced by the server","No built-in output streaming — large outputs are buffered in memory before returning to client","Language support limited to runtimes installed on the host system; missing runtimes will fail silently or with cryptic errors","Language support is static and determined at server startup — adding new languages requires code changes or configuration updates","No version management — if multiple Python versions are installed, the server uses the system default without selection capability","Runtime detection is simplistic (file extension-based) and may fail for ambiguous cases (e.g., .js could be Node.js or Deno)","Process isolation is OS-level only — no resource quotas (CPU, memory) are enforced, allowing runaway processes to consume host resources","No timeout enforcement at the MCP server level — long-running code blocks the tool call indefinitely unless the client implements timeouts","Subprocess cleanup is implicit on process exit; zombie processes may accumulate if parent process crashes","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.3069574717258983,"quality":0.26,"ecosystem":0.48999999999999994,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.902Z","last_scraped_at":"2026-05-03T14:04:47.472Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":1713,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-server-code-runner","compare_url":"https://unfragile.ai/compare?artifact=mcp-server-code-runner"}},"signature":"SV+SoF7hnaeKHm8Pjo8uHBFGOKIQMqJoVX/ODH00qfOtMp47VLPu20LlblhUJiPBw1lUuk4vEqKpWhunx8CuCA==","signedAt":"2026-06-19T23:48:56.663Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-server-code-runner","artifact":"https://unfragile.ai/mcp-server-code-runner","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-server-code-runner","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}