Code Runner MCP
Execute JavaScript and Python code in a secure sandbox. Supports Deno for JS/TS and Pyodide for Python, with configurable permissions.
Code Runner MCP
Let AI execute JavaScript/Python code with any package imports!
Core Value
- Secure Sandbox: Isolated execution environment protecting your host system
- Install-on-Demand: Dynamically import any npm/PyPI packages
- Reduce Hallucinations: Let AI verify logic by executing code
- Quick Validation: Test if packages meet your needs without local installation
Installation
Agent Skill — skills.sh (Recommended for AI agents)
Install the bundled agent skill so your AI assistant knows how to use
code-runner-mcp out of the box:
npx skills add mcpc-tech/code-runner-mcp
This installs the skill into your project's .agent/skills/ directory.
Compatible with Claude Code, Cursor, Windsurf, GitHub Copilot, VS Code, and
more.
JSR
deno add jsr:@mcpc/code-runner-mcp
Package: @mcpc/code-runner-mcp
npm
npm install @mcpc-tech/code-runner-mcp
Package: @mcpc-tech/code-runner-mcp
Quick Start
Option 1: Using Deno (Recommended)
{
"mcpServers": {
"code-runner": {
"command": "deno",
"args": ["run", "--allow-all", "jsr:@mcpc/code-runner-mcp/bin"],
"env": {
"DENO_PERMISSION_ARGS": "--allow-net",
"NODEFS_ROOT": "/tmp",
"NODEFS_MOUNT_POINT": "/tmp"
},
"transportType": "stdio"
}
}
}
Option 2: Using Node.js
{
"mcpServers": {
"code-runner": {
"command": "npx",
"args": [
"-y",
"deno",
"run",
"--allow-all",
"npm:@mcpc-tech/code-runner-mcp@latest"
],
"env": {
"DENO_PERMISSION_ARGS": "--allow-net",
"NODEFS_ROOT": "/tmp",
"NODEFS_MOUNT_POINT": "/tmp"
},
"transportType": "stdio"
}
}
}
Note: Uses
npxto install and run Deno on demand — no separate Deno installation required.--experimental-wasm-stack-switchingcannot be passed viaNODE_OPTIONS(Node.js rejects it), but works as a direct CLI flag.
Use Cases
JavaScript/TypeScript
// Import npm packages directly to test functionality
import { z } from "npm:zod";
import { serve } from "jsr:@std/http";
const schema = z.object({ name: z.string() });
console.log(schema.parse({ name: "test" }));
Python
# Dynamically install and use Python packages
import requests
response = requests.get("https://api.github.com")
print(f"Status code: {response.status_code}")
Package Mapping
When import names differ from PyPI package names, use the packages parameter:
# sklearn -> scikit-learn, PIL -> Pillow
from sklearn.datasets import load_iris
data = load_iris()
print(data.feature_names)
Use packages: {"sklearn": "scikit-learn"}
File System Access
# Access host file system (via NODEFS_ROOT and NODEFS_MOUNT_POINT)
import os
files = os.listdir('/tmp') # List files at the mount point
print(f"Found {len(files)} files")
Environment Variables
| Variable | Description | Default |
|---|---|---|
ALLOWED_TOOLS | Selectively enable tools: all, python, javascript, js, or comma-separated (e.g., python,javascript) | all |
DENO_PERMISSION_ARGS | Additional Deno permissions for JS/TS execution (e.g., --allow-net, --allow-all) | - |
NODEFS_ROOT | Host file system root directory path for Python access | - |
NODEFS_MOUNT_POINT | Mount point path in Python environment (defaults to NODEFS_ROOT) | - |
PYODIDE_PACKAGE_BASE_URL | Custom package download source for Pyodide (e.g., private mirror CDN) | - |
PYODIDE_PACKAGE_CACHE_DIR | Custom package cache directory for Pyodide packages (Pyodide v0.28.1+) | - |
SILENT | Suppress console log output. Set to "true" or "1" to silence server-side logs (e.g., package install messages) | - |
Tool Selection Examples
// Enable only Python
{ "ALLOWED_TOOLS": "python" }
// Enable only JavaScript
{ "ALLOWED_TOOLS": "javascript" }
// Enable both (default)
{ "ALLOWED_TOOLS": "python,javascript" }
Security Features
- Deno Sandbox: Strict permission control with explicit authorization
- Pyodide WASM: WebAssembly isolated environment
- File System Isolation: Controlled host file access
Technical Architecture
- JavaScript/TypeScript: Powered by Deno runtime
- Python: Powered by Pyodide WebAssembly technology
- Package Management: Dynamic installation from npm, JSR, and PyPI
Issues & Feedback:
GitHub Issues
Repository:
GitHub Repository
Related Servers
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Liana-MCP
A natural language interface for cell-cell communication analysis using the Liana framework.
MCPBundles
One remote MCP server for 500+ production APIs — Stripe, HubSpot, Postgres, Gmail, and more. OAuth and API key auth, credential management, and a CLI.
mistral-mcp
MCP server exposing the full Mistral AI surface (chat, OCR, Codestral FIM, Voxtral audio, vision, agents, moderation, classification, files, batch). Stdio + Streamable HTTP, BYOK with Mistral's free 1B tokens/month
Tencent Cloud Code Analysis
An official MCP server for Tencent Cloud Code Analysis (TCA) to quickly start code analysis and obtain reports.
Email MCP Server by Sidemail
Let AI agents write & manage your SaaS emails
iOS MCP Server
An iOS mobile automation server using Appium and WebDriverAgent.
Octomind
Create and manage end-to-end tests using the Octomind platform.
Moatless MCP Server
An advanced code analysis and editing server with semantic search capabilities using vector embeddings.
DeepSeek MCP Server
A server for code generation and completion using the DeepSeek API.
MCP Hangar
Kubernetes-native registry for managing multiple MCP servers with lazy loading, health monitoring, and RBAC