Skip to content
VS Code

Exec Sandbox for VS Code

io.github.inhuman/mcp-exec

Single exec tool running caller Python in a network-isolated locked-down sandbox.

client:VS Code transport:stdio runtime:oci

Install Exec Sandbox in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "mcp-exec-transport",
      "description": "MCP_EXEC_TRANSPORT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-exec-default-timeout-s",
      "description": "MCP_EXEC_DEFAULT_TIMEOUT_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-exec-max-timeout-s",
      "description": "MCP_EXEC_MAX_TIMEOUT_S",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-exec-max-output-bytes",
      "description": "MCP_EXEC_MAX_OUTPUT_BYTES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-exec-max-stdin-bytes",
      "description": "MCP_EXEC_MAX_STDIN_BYTES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "mcp-exec-auth-token",
      "description": "MCP_EXEC_AUTH_TOKEN",
      "password": true
    }
  ],
  "servers": {
    "mcp-exec": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/idconstruct/mcp-exec:v0.5.4"
      ],
      "env": {
        "MCP_EXEC_TRANSPORT": "${input:mcp-exec-transport}",
        "MCP_EXEC_DEFAULT_TIMEOUT_S": "${input:mcp-exec-default-timeout-s}",
        "MCP_EXEC_MAX_TIMEOUT_S": "${input:mcp-exec-max-timeout-s}",
        "MCP_EXEC_MAX_OUTPUT_BYTES": "${input:mcp-exec-max-output-bytes}",
        "MCP_EXEC_MAX_STDIN_BYTES": "${input:mcp-exec-max-stdin-bytes}",
        "MCP_EXEC_AUTH_TOKEN": "${input:mcp-exec-auth-token}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Exec Sandbox in other clients