Code Runner MCP

Execute código JavaScript e Python em um sandbox seguro. Suporta Deno para JS/TS e Pyodide para Python, com permissões configuráveis.

Documentação

Code Runner MCP

JSR npm

Deixe a IA executar código JavaScript/Python com qualquer importação de pacotes!

code-runner-logo

Valor Principal

  • Sandbox Seguro: Ambiente de execução isolado que protege seu sistema host
  • Instalação Sob Demanda: Importe dinamicamente qualquer pacote npm/PyPI
  • Reduza Alucinações: Deixe a IA verificar a lógica executando código
  • Validação Rápida: Teste se os pacotes atendem às suas necessidades sem instalação local

Instalação

Habilidade do Agente — skills.sh (Recomendado para agentes de IA)

Instale a habilidade do agente incluída para que seu assistente de IA saiba como usar code-runner-mcp imediatamente:

npx skills add mcpc-tech/code-runner-mcp

Isso instala a habilidade no diretório .agent/skills/ do seu projeto. Compatível com Claude Code, Cursor, Windsurf, GitHub Copilot, VS Code e mais.

JSR

deno add jsr:@mcpc/code-runner-mcp

Pacote: @mcpc/code-runner-mcp

npm

npm install @mcpc-tech/code-runner-mcp

Pacote: @mcpc-tech/code-runner-mcp

Início Rápido

Opção 1: Usando Deno (Recomendado)

{
  "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"
    }
  }
}

Opção 2: Usando 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"
    }
  }
}

Nota: Usa npx para instalar e executar Deno sob demanda — nenhuma instalação separada do Deno é necessária. --experimental-wasm-stack-switching não pode ser passado via NODE_OPTIONS (Node.js o rejeita), mas funciona como uma flag direta de CLI.

Casos de Uso

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}")

Mapeamento de Pacotes

Quando os nomes de importação diferem dos nomes de pacotes PyPI, use o parâmetro packages:

# sklearn -> scikit-learn, PIL -> Pillow
from sklearn.datasets import load_iris
data = load_iris()
print(data.feature_names)

Use packages: {"sklearn": "scikit-learn"}

Acesso ao Sistema de Arquivos

# 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")

Variáveis de Ambiente

VariávelDescriçãoPadrão
ALLOWED_TOOLSHabilite ferramentas seletivamente: all, python, javascript, js, ou separadas por vírgula (ex.: python,javascript)all
DENO_PERMISSION_ARGSPermissões adicionais do Deno para execução JS/TS (ex.: --allow-net, --allow-all)-
NODEFS_ROOTCaminho raiz do sistema de arquivos do host para acesso Python-
NODEFS_MOUNT_POINTCaminho do ponto de montagem no ambiente Python (padrão: NODEFS_ROOT)-
PYODIDE_PACKAGE_BASE_URLFonte personalizada de download de pacotes para Pyodide (ex.: CDN de espelho privado)-
PYODIDE_PACKAGE_CACHE_DIRDiretório personalizado de cache de pacotes para pacotes Pyodide (Pyodide v0.28.1+)-
SILENTSuprime a saída do log do console. Defina como "true" ou "1" para silenciar logs do lado do servidor (ex.: mensagens de instalação de pacotes)-

Exemplos de Seleção de Ferramentas

// Enable only Python
{ "ALLOWED_TOOLS": "python" }

// Enable only JavaScript
{ "ALLOWED_TOOLS": "javascript" }

// Enable both (default)
{ "ALLOWED_TOOLS": "python,javascript" }

Recursos de Segurança

  • Sandbox Deno: Controle estrito de permissões com autorização explícita
  • Pyodide WASM: Ambiente isolado WebAssembly
  • Isolamento do Sistema de Arquivos: Acesso controlado a arquivos do host

Arquitetura Técnica

  • JavaScript/TypeScript: Alimentado pelo runtime Deno
  • Python: Alimentado pela tecnologia Pyodide WebAssembly
  • Gerenciamento de Pacotes: Instalação dinâmica a partir de npm, JSR e PyPI

Problemas e Feedback: GitHub Issues
Repositório: GitHub Repository