DAIMONMCP sandbox, kernel-isolated
by Linux nsjail
Configuration

Configuration

Environment variables and sandbox-policy.yaml for processd-mcp and the sandbox manager.

Two files matter on a Linux binary install:

FileRole
/etc/processd-mcp/processd-mcp.envProcess environment. systemd EnvironmentFile.
Policy YAML (optional)Kernel sandbox. Path in MCP_SANDBOX_POLICY_FILE.

The desktop app writes the same YAML schema through the GUI. The manager image is configured with PROCESSD_MANAGER_* env vars in compose.

There is no hot reload. Change env or YAML, then restart the process.

Kernel environment

The installer creates /etc/processd-mcp/processd-mcp.env mode 600:

MCP_HOST=127.0.0.1
MCP_PORT=8080
PROCESSD_TOKEN=<random hex>
VariableDefaultMeaning
MCP_HOST0.0.0.0 without the installer; installer sets 127.0.0.1Bind address. See Linux binary.
MCP_PORT8080Listen port.
PROCESSD_TOKENunset (no auth)Value of X-Access-Token. Always set this.
MCP_SANDBOX_POLICY_FILEunset (no kernel sandbox)Absolute path to policy YAML.
MCP_SANDBOX_RUNTIME_DIR$TMPDIR/processd-mcp/sandboxHelper runtime dir.
MCP_DEFAULT_SHELL$SHELL or /bin/bashShell for Bash.
MCP_ALLOW_ESCALATEDfalseBreak-glass: skip sandbox for shell tools. Keep false in production.
MCP_ALLOW_LOGIN_SHELLtrueLogin shell for Bash.
MCP_BASH_DEFAULT_TIMEOUT_MS120000Default Bash timeout.
MCP_BASH_MAX_TIMEOUT_MS600000Hard max timeout.
MCP_WEB_FETCH_DEFAULT_TIMEOUT_MS30000WebFetch timeout.
MCP_WEB_FETCH_DEFAULT_MAX_BYTES2 MiBWebFetch body cap.

PROCESSD_ENV_* copies into the command environment (prefix stripped). Example: PROCESSD_ENV_TERM=linux becomes TERM=linux inside Bash.

Edit the env file, then:

sudo systemctl restart processd-mcp

Policy YAML

See Sandbox policy for the full schema and a worked example.

Manager

Compose sets these on processd-sandbox-manager. The important ones:

VariableTypicalMeaning
PROCESSD_MANAGER_HOST / PORT0.0.0.0 / 18080Manager HTTP API (compose network). Clients talk to the scheduler on :18081.
PROCESSD_MANAGER_PUBLIC_MCP_HOSTLAN or Tailscale IP, not 0.0.0.0Host clients use to reach sandbox MCP workers.
PROCESSD_MANAGER_PUBLIC_BASE_URLhttp://127.0.0.1:18080Base URL returned by the manager. Scheduler rewrites this to its own public_base_url.
PROCESSD_MANAGER_LIMITS_MODErequired in release composeFail sandbox create if cgroups cannot apply.
PROCESSD_MANAGER_SANDBOX_TTL_SECONDS3600Idle sandbox lifetime.

Cluster walkthrough: Sandbox cluster.

On this page