Skip to main content
July 6, 2026
Question

1Password MCP on Linux rejecting MCP connections

  • July 6, 2026
  • 1 reply
  • 6 views

Very long time user (nearly two decades!), first time toe-stubber (OK not exactly first time, but first time where I can’t figure out any fixes myself!)  --  Tried to use the beta MCP from inside of a Linux homebrew installed claude-code today and I get either parent process verification failed: Binary Permissions (directly running /opt/1Password/onepassword-mcp) or ...Io(Kind(PermissionDenied)) if I try to wrap with op run -- with no popup/prompt to allow in either case.  I’ll note my environment is complicated versus many users “norm” since I’m actually running a remote X session for the UI, however the SSH agent socket works, and the op CLI in the general case works, as does using op run to wrapper expanding env vars.

 

Yes Labs->enable MCP is on, and Developer->MCP server is on.  In trying to debug/resolve I also turned on the CLI integration and 1P SDK integration (both of which I usually have off so that when I’m totally headless/X session free op signin still works).

 

Actual log lines (at least a dozen+ are logged if I fire up claude and ask it to list 1Password environments as a test)

 

ERROR 2026-07-06T22:00:05.625+00:00 runtime-worker(ThreadId(5)) [1P:mcp/op-mcp-relay/src/handler/process.rs:141] Rejecting MCP connection from pid 309121: parent process verification failed: BinaryPermissions

WARN  2026-07-06T22:00:06.131+00:00 runtime-worker(ThreadId(5)) [1P:foundation/op-sys-info/src/process_information/linux.rs:331] binary permission verification failed for /home/<redacted-username>/.local/share/claude/versions/2.1.201

 

ERROR 2026-07-06T22:04:33.238+00:00 runtime-worker(ThreadId(12)) [1P:mcp/op-mcp-relay/src/handler/process.rs:141] Rejecting MCP connection from pid 375128: parent process verification failed: Io(Kind(PermissionDenied))

1 reply

July 17, 2026

I can verify this.  The 1password app appears to reject MCP connections if the parent process isn’t owned by root.  This rules out Claude Code, which is almost always installed in /home/[user]/.local/bin, which is owned by the user rather than root.  A workaround is to launch the 1password-mcp process via a wrapper script (~/.local/bin/1password-mcp-wrapped in this example), so that bash becomes the owning process:

#!/bin/bash
/opt/1Password/1password-mcp "$@" <&0 & # <&0: bash sends bg-job stdin to /dev/null otherwise
child=$!
trap 'kill "$child" 2>/dev/null' TERM INT HUP
wait "$child"
"mcpServers": {
"1password": {
"command": "/home/[REDACTED]/.local/bin/1password-mcp-wrapped"
}
}