Request for OPTIONAL personal-files (MCP client configs) for pieces-for-developers

This is a follow-up to our pieces-os request (thread). pieces-for-developers is the desktop client app for Pieces (companion to the already-approved pieces-os snap). Our Verified Publisher status (Mesh Intelligent Technologies Inc., development@pieces.app) is already approved, and that vetting request listed both pieces-os and pieces-for-developers.

This request is associated with revision 105 (version 6.0.2). The package passes all automated checks (69 passes, 0 warnings); the only items flagged for manual review are the 7 personal-files plug declarations below.

These interfaces are entirely OPTIONAL for the user. The core app (recalling and searching your long-term workflow memory) is fully functional with none of them connected. They exist solely to power the optional MCP integration feature, and each is requested as a manual connection so the user must explicitly opt in per client.


  • name: pieces-for-developers

  • description: Pieces for Developers is the desktop client app for Pieces — a local-first, long-term memory engine for your workflow. It automatically captures and resurfaces the context of your work (code, docs, chats, links and more) across your toolchain, lets you recall and search those memories using natural-language and time-based queries, and connects that personal context to AI tools (Cursor, Claude, Codex, Gemini, VS Code/GitHub Copilot, Antigravity) over MCP. Private by design and local by default.

  • snapcraft: PRIVATE

  • upstream: PRIVATE

  • upstream-relation: official package

  • interfaces:

    • mcp-cursor-config (personal-files — write $HOME/.cursor/mcp.json)

      • request-type: manual-connection
      • reasoning: On user request, the app writes the Pieces MCP server entry into Cursor’s MCP config file so Cursor can connect to the user’s local memory. Scoped to the single config file (least-privilege). Manual / opt-in only.
    • mcp-claude-desktop-config (personal-files — write $HOME/.config/Claude/claude_desktop_config.json)

      • request-type: manual-connection
      • reasoning: Writes the Pieces MCP server entry into Claude Desktop’s config file. Scoped to the single config file. Manual / opt-in only.
    • mcp-claude-code-config (personal-files — write $HOME/.claude.json)

      • request-type: manual-connection
      • reasoning: Claude Code stores user-scope MCP servers in ~/.claude.json; the app writes the Pieces MCP server entry there. Scoped to the single config file. Manual / opt-in only.
    • mcp-gemini-config (personal-files — write $HOME/.gemini/settings.json)

      • request-type: manual-connection
      • reasoning: Writes the Pieces MCP server entry into the Google Gemini CLI settings file. Scoped to the single config file. Manual / opt-in only.
    • mcp-vscode-config (personal-files — write $HOME/.config/Code/User/mcp.json + read $HOME/.config/Code/User)

      • request-type: manual-connection
      • reasoning: Writes the Pieces MCP server entry into the VS Code (GitHub Copilot) user-profile mcp.json. This is the only plug that also requests directory read: unlike the other clients, VS Code does not create mcp.json until the user adds their first MCP server, so we detect whether VS Code is installed by checking for the existence of the ~/.config/Code/User profile directory, which under strict confinement requires read access to it. The app only ever writes to mcp.json itself. Manual / opt-in only.
    • mcp-antigravity-config (personal-files — write $HOME/.gemini/antigravity/mcp_config.json)

      • request-type: manual-connection
      • reasoning: Antigravity (Google’s IDE) keeps MCP servers in its own subdir under ~/.gemini; the app writes the Pieces MCP server entry there. Scoped to the single config file. Manual / opt-in only.
    • mcp-codex-config (personal-files — write $HOME/.codex/config.toml)

      • request-type: manual-connection
      • reasoning: Writes the Pieces MCP server entry into Codex’s config file. Scoped to the single config file. Manual / opt-in only.

Privacy & consent: Every one of these interfaces is optional — the app works fully without any of them, and none is auto-connected. Users explicitly enable a given client from the in-app MCP settings UI or via our bundled pieces-for-developers.doctor utility, and no file is written without an explicit user action. Each plug is deliberately scoped to a single config file per client (rather than the whole client config directory) to follow least-privilege; the one exception is the read-only directory check for VS Code described above. Thank you for the review!

1 Like

This request has been added to the queue for review by the @reviewers team.

1 Like

Hi @Pieces-Dev,

Even though the requested path entries are not owned by the snap itself, I am okay with granting manual-connection for this request.

Also, could you please change the interface name so that it exactly reflects what is being granted? For example, mcp-cursor-config should be changed to dot-cursor-mcp-json as it grants access to $HOME/.cursor/mcp.json.

Thanks

The manual-connection posture and per-file scoping are appreciated, and +1 from me on the six single-file write plugs, subject to the interface renames as @shishirsub10 requested.

Few notes:

  1. For the record on this and future similar requests: MCP config files define commands that the target applications execute unconfined in the user’s session, so write access to these paths is effectively a code execution grant into the host, gated on the user’s explicit connection. Several of the requested files also carry broader settings for the target application (for example ~/.codex/config.toml includes Codex’s approval and sandbox policy and personal-files write also implies read). This is acceptable under manual connection with an informed opt-in.

  2. I am -1 on the directory read for $HOME/.config/Code/User as currently scoped. personal-files directory grants are recursive, so this becomes read access to the entire VS Code user profile (settings.json frequently contains credentials and API keys) in exchange for an install-existence check. Since the plug already grants create/write on ~/.config/Code/User/mcp.json, detection can be done by attempting the write and handling failure or by asking the user in the UI. Please drop the directory read and scope this plug to the mcp.json file only, matching the other six.

With the renames done and the VS Code plug rescoped to the single file, this lgtm. thanks

@Pieces-Dev Kindly let us know once the requested changes are made. Thanks!