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:
- Installed plugins (stdio) should be available to Cloud Agents on that same machine, or
- At least, adding that plugin on the Cloud Agent should spawn the same command the IDE uses, with
${userHome}/${env:…}interpolated likemcp.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
- Install Paper Desktop, open it once (CLI at
~/.paper/bin/paper). - Install the Paper Cursor plugin (stdio command
${userHome}/.paper/bin/paper mcp). - Confirm it works in a desktop Agent chat.
- Start
agent worker starton that Mac; run a Cloud Agent on that worker. - Observe: no Paper MCP tools on the Cloud Agent.
- Add the Paper plugin (or the same stdio command) on the Cloud Agent and retry.
- Observe:
Papernamespace exists, thenspawn ${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
- Expand
${userHome}(and the othermcp.jsoninterpolations) when spawning stdio MCPs on My Machines workers. - 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