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
Deixe a IA executar código JavaScript/Python com qualquer importação de pacotes!
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
npxpara instalar e executar Deno sob demanda — nenhuma instalação separada do Deno é necessária.--experimental-wasm-stack-switchingnão pode ser passado viaNODE_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ável | Descrição | Padrão |
|---|---|---|
ALLOWED_TOOLS | Habilite ferramentas seletivamente: all, python, javascript, js, ou separadas por vírgula (ex.: python,javascript) | all |
DENO_PERMISSION_ARGS | Permissões adicionais do Deno para execução JS/TS (ex.: --allow-net, --allow-all) | - |
NODEFS_ROOT | Caminho raiz do sistema de arquivos do host para acesso Python | - |
NODEFS_MOUNT_POINT | Caminho do ponto de montagem no ambiente Python (padrão: NODEFS_ROOT) | - |
PYODIDE_PACKAGE_BASE_URL | Fonte personalizada de download de pacotes para Pyodide (ex.: CDN de espelho privado) | - |
PYODIDE_PACKAGE_CACHE_DIR | Diretório personalizado de cache de pacotes para pacotes Pyodide (Pyodide v0.28.1+) | - |
SILENT | Suprime 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