1Password plugin MCP fails to start: spawn 1password-mcp EACCES

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The official 1Password Cursor plugin MCP server never connects. Cursor creates the client, then the shared MCP process fails while spawning the server:

Connection failed: spawn 1password-mcp EACCES

The spawn policy log says sandboxed=false and sandboxReason=controls_disabled, so this is not the MCP sandbox blocking the process. The plugin mcp.json starts the bare command 1password-mcp (no absolute path). The 1Password tools stay unavailable.

Steps to Reproduce

  1. Install the 1Password plugin from the Cursor Marketplace (server id plugin-1password-1password).
  2. 1Password desktop 8.12.36 is installed. The MCP binary inside the app is present and executable: /Applications/1Password.app/Contents/MacOS/1password-mcp (-rwxr-xr-x).
  3. Start Cursor, or reload MCP servers.
  4. In the MCP logs, createClient reports success, then stdio connect fails with spawn 1password-mcp EACCES.

Full log:

2026-09-26 11:39:35.010 [info] [MCPService] createClient: identifier=“plugin-1password-1password”, serverName=“1password”
2026-09-26 11:39:35.012 [info] [MCPService] createClient completed for server: plugin-1password-1password, statusType=initializing, success=true
2026-09-26 11:39:35.042 [info] [Shared MCP process] connecting stdio for “1password” (plugin-1password-1password)
2026-09-26 11:39:35.042 [info] [Shared MCP process] [V2 FSM] connection:connect_start: conn=idle,auth=unknown → conn=connecting,auth=unknown
2026-09-26 11:39:35.124 [info] [Shared MCP process] MCP stdio spawn policy decision: sandboxed=false, sandboxReason=controls_disabled, networkControlsEnabled=false, mcpNetworkMode=unset, mcpNetworkAllowlistCount=0, mcpNetworkDenylistCount=0, localAgentNetworkAllowlistCount=0, sandboxPolicyHash=dbad6ab7a53b8aaa3269e0c907d30e5e1483298ffc76de0456eeb31b7d11df5e
2026-09-26 11:39:35.128 [warning] [Shared MCP process] Connection failed: spawn 1password-mcp EACCES
2026-09-26 11:39:35.128 [warning] [Shared MCP process] [V2 FSM] connection:connect_failure: conn=connecting,auth=unknown → conn=failed,auth=unknown

Expected Behavior

The 1Password plugin MCP server should start and expose its tools. The desktop app binary is executable, and the spawn log shows the sandbox is disabled, so the server should connect instead of failing with EACCES.

Operating System

MacOS

Version Information

Cursor IDE 3.22.7 (commit 37076c6c3f9e253c0fa2305197e45befd13a2260), arm64
macOS 27.0 (Build 26A428)
1Password desktop 8.12.36

Additional Information

Local checks after the failure:

  • Plugin mcp.json command is exactly “1password-mcp” with no args and no absolute path.
  • /Applications/1Password.app/Contents/MacOS/1password-mcp exists and is -rwxr-xr-x (owner dgitman:admin, about 4 MB, dated Sep 8). It has a Homebrew Cask quarantine xattr.
  • /usr/local/bin is drwx------ root:wheel (mtime Sep 21 15:45). The user cannot list it, and ls /usr/local/bin/1password-mcp returns Permission denied. That matches the EACCES from Cursor’s stdio spawn, which looks up 1password-mcp on PATH.
  • which 1password-mcp does not find a usable command for this user.

Related, different failure mode (Grok Bot, ENOENT, after a root-only /usr/local/bin/1password-mcp symlink): Grok Bot cannot spawn 1Password MCP (1password-mcp ENOENT)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @mason-feature-slayer, thanks for the detailed report and the local checks.

The 1Password plugin starts the 1password-mcp command from your PATH. On your Mac, /usr/local/bin is set so only root can open it (drwx------). Cursor is denied when it looks inside, and that denial is the EACCES. On macOS this folder is normally readable by all users (drwxr-xr-x, still owned by root, so only an admin can add or change anything in it).

There are two ways to fix it. Either one works.

Option 1: restore the default folder permissions (also fixes any other command-line tools in that folder)

  1. Open Terminal.
  2. Run ls -ld /usr/local/bin and confirm it starts with drwx------ and shows root wheel.
  3. Run sudo chmod 755 /usr/local/bin (this changes only that one folder, not its contents or owner).
  4. Run ls -l /usr/local/bin/1password-mcp. If that line starts with lrwx------, also run sudo chmod -h 755 /usr/local/bin/1password-mcp.
  5. Run which 1password-mcp and confirm it prints /usr/local/bin/1password-mcp.
  6. Fully quit Cursor (Cmd+Q) and reopen it.

If this is a work-managed Mac, check with your IT team before changing folder permissions, in case they set it that way on purpose.

Option 2: no admin rights needed

Point Cursor straight at the binary inside the 1Password app. Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "1password": {
      "command": "/Applications/1Password.app/Contents/MacOS/1password-mcp"
    }
  }
}

Then turn off the plugin’s own 1password server under Cursor Settings > Tools & MCP, and restart Cursor.

For either option, the MCP Server setting also needs to be on in the 1Password app (Settings > Labs).

If it still doesn’t connect, reply with the new MCP log lines and the output of ls -ld /usr/local/bin.

Option 1 worked great. Thanks!