diff --git a/src/langbot/pkg/provider/tools/loaders/mcp_stdio.py b/src/langbot/pkg/provider/tools/loaders/mcp_stdio.py index fe7ccd11a..57b5e60c5 100644 --- a/src/langbot/pkg/provider/tools/loaders/mcp_stdio.py +++ b/src/langbot/pkg/provider/tools/loaders/mcp_stdio.py @@ -142,7 +142,15 @@ class BoxStdioSessionRuntime: read_only_rootfs=self.config.read_only_rootfs if self.config.read_only_rootfs is not None else False, image=self.config.image, cpus=self.config.cpus, - memory_mb=self.config.memory_mb, + # Node.js runtimes (npx/bunx) reserve large virtual address space and + # load WebAssembly modules (llhttp) on startup; the default 512 MB + # cgroup_mem_max is too small and causes OOM kills (return_code=137). + # Auto-bump to 1024 MB when the runner is npx/bunx/pnpm dlx. + memory_mb=( + (self.config.memory_mb or 1024) + if self.server_config.get('command', '') in ('npx', 'bunx', 'pnpm') + else self.config.memory_mb + ), pids_limit=self.config.pids_limit, persistent=True, )