Skip to main content
Glama
philschmid

Code Sandbox MCP Server

by philschmid

run_javascript_code

Execute JavaScript code in a secure sandbox environment, capturing output and errors for testing and development. Supports integration with @google/genai libraries for advanced functionality.

Instructions

Execute JavaScript code in the sandbox environment and captures the standard output and error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYesThe JavaScript code to execute, included libraries are @google/genai

Implementation Reference

  • The handler function for the 'run_javascript_code' tool. It uses the @mcp.tool() decorator for registration and executes JavaScript code via the run_code helper, returning results as TextContent.
    @mcp.tool() def run_javascript_code( code: Annotated[ str, Field( description=f"The JavaScript code to execute, included libraries are {DEFAULT_ENVIRONMENT_MAP['javascript']['installed_libraries']}", ), ], ) -> TextContent: """Execute JavaScript code in the sandbox environment and captures the standard output and error.""" try: result = run_code(code, language="javascript") if len(result) == 0: result = ExecutionResult( exit_code=1, stderr="No output, forgot console.logs?" ).to_json() return TextContent(text=result, type="text") except Exception as e: result = ExecutionResult(exit_code=1, stderr=str(e)).to_json() return TextContent(text=result, type="text")
  • Helper function that performs the actual code execution in a sandboxed environment using llm_sandbox. Called by the handler with language='javascript'.
    def run_code( code: str, language: Literal["python", "javascript"] = DEFAULT_LANGUAGE, image: str | None = None, libraries: list[str] | None = None, timeout: int = EXECUTION_TIMEOUT, ) -> str: """Execute code in a secure sandbox environment and automatic visualization capture. Args: code: The code to execute language: Programming language (python, javascript, go) libraries: List of libraries/packages to install image: Docker image to use for the sandbox session timeout: Execution timeout in seconds (default: 30) Returns: List of content items including execution results and any generated visualizations """ if language not in DEFAULT_ENVIRONMENT_MAP: raise ValueError(f"Language {language} not supported") session_args = { "lang": language, "keep_template": True, "verbose": VERBOSE, "backend": _get_backend(), "session_timeout": timeout, "image": DEFAULT_ENVIRONMENT_MAP[language]["image"], } if os.getenv("PASSTHROUGH_ENV", None): env_vars = {} for var in os.getenv("PASSTHROUGH_ENV", None).split(","): env_vars[var] = os.getenv(var) session_args["runtime_configs"] = {"environment": env_vars} if os.getenv("CONTAINER_IMAGE", None) and os.getenv("CONTAINER_LANGUAGE", None): session_args["lang"] = os.getenv("CONTAINER_LANGUAGE") session_args["image"] = os.getenv("CONTAINER_IMAGE") if libraries: session_args["libraries"] = libraries with SandboxSession(**session_args) as session: result = session.run( code=code, libraries=libraries or [], timeout=timeout, ) if result.exit_code != 0: raise Exception(result.stderr.strip()) return result.stdout.strip()

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/philschmid/code-sandbox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server