Marketplace plugin ${user_config.x} substitution fails via CCD --plugin-dir invocation
Status Open
Reported on v2.1.237
Maintainer reply None cached
Workaround ✓ Mentioned in description ↑
Activity 0 comments · opened Aug 21, 2026
Bug: Marketplace plugin ${user_config.x} substitution fails via CCD --plugin-dir invocation
1. ${user_config.x} env placeholders not resolved when Claude Desktop launches plugin MCP servers
- [ ] Component: Claude Desktop (CCD / embedded Claude Code sessions), macOS, app version bundles Claude Code CLI 2.1.237
- Problem: Marketplace plugins whose
.mcp.jsonuses${user_config.<field>}placeholders inenvdo not register any MCP tools when loaded through Claude Desktop chat/CCD sessions. - Repro:
- Install a marketplace plugin whose
.mcp.jsonenv block references${user_config.<field>}(e.g.mcp-atlassian1.0.2,mcp-gitlab1.0.1 from a custom marketplace), entering the required token(s) during install. - Enable the plugin in Settings → Plugins in Claude Desktop.
- Start a new chat/session in Claude Desktop and ask it to use a tool from that plugin.
- Actual:
ToolSearchfinds no tool from the plugin;total_deferred_toolsdoes not include it. Confirmed via direct reproduction: invoking the same bundled CLI binary manually with--plugin-dir <plugin path>(the invocation style Claude Desktop uses for CCD sessions, visible viaps) also fails to register any tool from the plugin — reproduced on both CLI 2.1.237 (bundled with Desktop) and 2.1.238 (standalone). - Expected: Plugin tools register and work the same as when the plugin is enabled via
~/.claude/settings.jsonenabledPluginsand the CLI is run normally (no--plugin-dir) — confirmed working in that mode with the same plugin/version. - Workaround: Replace the marketplace plugin with a classic
mcpServersentry (literal env values, no${user_config.x}) inclaude_desktop_config.json.