how do i install mcporter in docker openclaw npm said this ◇ Install failed: mcporter (exit 243) — npm error A complete log of this run can be found in: /home/node/.npm/_logs/2026-03-03T08_51_10_375Z-debug-0.log
npm error code EACCES
npm error syscall mkdir
npm error path /usr/local/lib/node_modules/mcporter
npm error errno -13
npm error Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/mcporter'
npm error at async mkdir (node:internal/fs/promises:855:10)
npm error at async /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:624:20
npm error at async Promise.allSettled (index 0)
npm error at async [reifyPackages] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:325:11)
npm error at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:142:5)
npm error at async Install.exec (/usr/local/lib/node_modules/npm/lib/commands/install.js:150:5)
npm error at async Npm.exec (/usr/local/lib/node_modules/npm/lib/npm.js:207:9)
npm error at async module.exports (/usr/local/lib/node_modules/npm/lib/cli/entry.js:74:5) {
npm error errno: -13,
npm error code: 'EACCES',
npm error syscall: 'mkdir',
npm error path: '/usr/local/lib/node_modules/mcporter'
npm error }
npm error
npm error The operation was rejected by your operating system.
npm error It is likely you do not have the permissions to access this file as the current user
npm error
npm error If you believe this might be a permissions issue, please double-check the
npm error permissions of the file and its containing directories, or try running
npm error the command again as root/Administrator.
npm notice
npm notice New major version of npm available! 10.9.4 -> 11.11.0
#install skill docker
1 messages · Page 1 of 1 (latest)
That error is just “you’re not root, but you’re trying to do a global npm install into /usr/local/...”.
In most Node Docker images (and in a lot of OpenClaw containers) you’re running as the node user, so npm i -g mcporter can’t create /usr/local/lib/node_modules/....
Pick one of these fixes:
Option A (common in Dockerfiles): install as root, then drop back to node
USER root
RUN npm install -g mcporter
USER node
Option B (better if you want to stay non-root): change npm’s global prefix to a writable dir
USER node
RUN mkdir -p /home/node/.npm-global
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=/home/node/.npm-global/bin:$PATH
RUN npm install -g mcporter
Option C (if you’re using pnpm in the container)
RUN corepack enable
USER node
ENV PNPM_HOME=/home/node/.local/share/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN pnpm add -g mcporter
If you paste:
- the
Dockerfile(or the exactdocker run .../docker compose.yml), and - the output of
whoami+node -v+npm -v
…I can point to the cleanest option for your image setup.
how do i do openclaw gateway restart when i use docker
In Docker you usually don’t run openclaw gateway restart on the host — you restart the gateway container.
If you’re using Docker Compose (OpenClaw docs default)
- See the service/container name:
docker compose ps
- Restart the gateway service (often called
openclaw-gateway):
docker compose restart openclaw-gateway
- Watch logs to confirm it came back:
docker compose logs -f openclaw-gateway
If you started it with plain docker run
docker ps
docker restart <container_name_or_id>
docker logs -f <container_name_or_id>
If you paste your docker compose ps output (just the service names), I can tell you the exact docker compose restart ... line for your setup.
Docs ref: https://docs.openclaw.ai/install/docker
how do i enable the agent to have all the tool except group web and group ui
this is my current config
"agents": {
"defaults": {
"model": {
"primary": "openai-codex/gpt-5.3-codex"
},
"models": {
"openai-codex/gpt-5.3-codex-spark": {}
},
"workspace": "/home/node/.openclaw/workspace",
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
}
},
"tools": {
"profile": "messaging"
},
"messages": {
"ackReactionScope": "group-mentions"
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"session": {
"dmScope": "per-channel-peer"
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"bootstrap-extra-files": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "pairing",
"botToken": "OPENCLAW_REDACTED",
"groupPolicy": "allowlist",
"streaming": "partial"
}
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "lan",
"controlUi": {
"dangerouslyAllowHostHeaderOriginFallback": true,
"allowInsecureAuth": false
},
"auth": {
"mode": "token",
"token": "OPENCLAW_REDACTED"
},
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"nodes": {
"denyCommands": [
"camera.snap",
"camera.clip",
"screen.record",
"calendar.add",
"contacts.add",
"reminders.add"
]
}
},
Your tools.profile: "messaging" is what’s limiting you right now.
If you want everything enabled except group:web (web_search, web_fetch) and group:ui (browser, canvas), set the tools config like this:
"tools": {
"profile": "full", // or just remove "profile" entirely
"deny": ["group:web", "group:ui"]
}
That’s it — “full” removes the base allowlist restriction, and deny blocks just those groups (deny always wins).
Then restart the gateway container (since config changes require a restart):
- Compose:
docker compose restart openclaw-gateway - Or whichever service name your compose file uses.