My Machines worker does not inherit local plugin MCPs, and ${userHome} is not expanded when the same plugin is added to a Cloud Agent

Where does the bug appear (feature/product)?

Cloud Agent (GitHub, Slack, Web, Linear)

Describe the Bug

My Machines worker does not inherit local plugin MCPs, and ${userHome} is not expanded when the same plugin is added to a Cloud Agent

Self-hosted My Machines worker on my laptop. The agent loop is in Cursor’s cloud, but tool calls (including stdio MCP) are supposed to run on this machine.

A local design MCP (Paper Desktop) is installed as a Cursor plugin, Paper.app is running, and its CLI exists on disk. The Cloud Agent on this worker still cannot use it. That feels wrong for a local worker: the process, the binary, and localhost are all right here.

This is related to this thread (worker does not read ~/.cursor/mcp.json). I’m filing the plugin / interpolation half, which still fails after I add the plugin on the Cloud Agent.

Environment

  • macOS arm64, Cursor My Machines worker (agent worker start)
  • Cloud Agent run on that worker (not a managed VM)
  • Plugin: Paper / paper-desktop (marketplace plugin, stdio)
  • Paper Desktop 0.5.8 running on the same Mac
  • CLI present: /Users/<me>/.paper/bin/paper (executable)
  • Paper’s own MCP HTTP listener up on 127.0.0.1:29979/mcp (I can JSON-RPC it from a shell on the worker)

Plugin MCP config (from the plugin’s mcp.cursor.json):

{
  "mcpServers": {
    "paper": {
      "command": "${userHome}/.paper/bin/paper",
      "args": ["mcp"]
    }
  }
}

Expected

On a My Machines worker, local MCPs that already work in the desktop IDE should just work:

  1. Installed plugins (stdio) should be available to Cloud Agents on that same machine, or
  2. At least, adding that plugin on the Cloud Agent should spawn the same command the IDE uses, with ${userHome} / ${env:…} interpolated like mcp.json.

stdio is documented as “runs on your machine” (My Machines MCP). That’s exactly this setup.

Actual

Two stacked failures:

1. The worker does not pick up the local plugin (or ~/.cursor/mcp.json).

Desktop Cursor has the Paper plugin connected (tool schemas under ~/.cursor/projects/.../mcps/plugin-paper-desktop-paper/). The Cloud Agent on the same machine does not get a Paper namespace until I manually add the plugin on the Cloud Agent.

Same for user mcp.json: servers enabled there never appear on this worker. Cursor staff already called that expected in the thread above. For a laptop worker it still means I have to duplicate every local MCP into the Cloud Agents MCP dropdown.

2. After I add the Paper plugin on the Cloud Agent, spawn uses the unsubstituted string.

The namespace Paper then shows up, then tool discovery fails:

spawn ${userHome}/.paper/bin/paper ENOENT

mcp_auth returns: Authentication URL unavailable for this cloud MCP server.

The worker is literally trying to exec a path whose first component is ${userHome}. The real binary is at $HOME/.paper/bin/paper. IDE interpolation does not run on this spawn path.

Steps to reproduce

  1. Install Paper Desktop, open it once (CLI at ~/.paper/bin/paper).
  2. Install the Paper Cursor plugin (stdio command ${userHome}/.paper/bin/paper mcp).
  3. Confirm it works in a desktop Agent chat.
  4. Start agent worker start on that Mac; run a Cloud Agent on that worker.
  5. Observe: no Paper MCP tools on the Cloud Agent.
  6. Add the Paper plugin (or the same stdio command) on the Cloud Agent and retry.
  7. Observe: Paper namespace exists, then spawn ${userHome}/.paper/bin/paper ENOENT.

Workaround

Personal Cloud Agents MCP (not team Integrations): custom stdio with an absolute path, then a new agent (this run already baked the broken spawn):

{
  "command": "/Users/<me>/.paper/bin/paper",
  "args": ["mcp"]
}

Do not use http://127.0.0.1:29979/mcp as an HTTP Cloud Agents MCP — HTTP is dialed from Cursor’s backend, not the laptop.

What I’d like

  1. Expand ${userHome} (and the other mcp.json interpolations) when spawning stdio MCPs on My Machines workers.
  2. Prefer inheriting the host’s enabled plugins / user MCP on a personal My Machines worker, instead of requiring a second Cloud Agents copy. The laptop already has the processes.

Happy to paste worker logs if useful!

Version Information

Version: 3.20.10
VS Code Extension API: 1.128.0
Commit: d6f462cdd0a6a6d1cff570daf980e671d0a63de0
Date: 2026-09-10T21:04:54.045Z
Layout: Agent Window
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 25.5.0

Does this stop you from using Cursor

No - Cursor works, but with this issue