[BUG] For marketplace installs the MCP bundle (.mcpb) user_config is never prompted for
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
What happened
A marketplace plugin whose plugin.json points mcpServers at a bundled .mcpb
installs and enables without any configuration prompt. On the next session
the bundled server is not started and no tools appear. Nothing in the
session says why. The only place the bundle's settings can be entered is
/plugin → Manage plugins → <plugin> → Configure, which the user has no way
of knowing about.
Details
- The enable-time prompt only reads a userConfig block in plugin.json. The
bundle's own user_config section is ignored at install time:
$ claude plugin install mnemic@hirt-plugins --config owner=Alice --json
... "Installed, but --config not applied: --config was given but plugin
"mnemic@hirt-plugins" declares no userConfig options."
- At session start the bundle loader does parse user_config, and when a
required value is missing it returns needs-config and skips the server.
The only trace is a debug-log line:
MCPB <path> requires user configuration. User can configure via:
/plugin → Manage plugins → mnemic → Configure
- Declaring the same fields as userConfig in plugin.json does not help:
those values are stored under pluginConfigs[<id>].options, while the
bundle loader reads pluginConfigs[<id>].mcpServers[<bundle name>] and
secure storage. The two never meet.
What Should Happen?
What I expected
Either of:
- Enabling a plugin with a bundle that has required user_config fields
opens the same configuration form that the Configure entry opens, so
the server starts on the first session. This is what the docs lead one
to expect: "The userConfig field declares values that Claude Code prompts
the user for when the plugin is enabled."
- Failing that, the install summary and the /plugin Errors tab say that
the server needs configuration and where to enter it, instead of the
server disappearing silently.
Error Messages/Logs
# Install: the bundle's user_config is not seen at all
$ claude plugin install mnemic@hirt-plugins --config owner=Alice --json
{"command":"install","outcome":"ok","plugin":"mnemic@hirt-plugins","pluginId":"mnemic@hirt-plugins","scope":"user","message":"Successfully installed plugin: mnemic@hirt-plugins (scope: user)\n⚠ Installed, but --config not applied: --config was given but plugin \"mnemic@hirt-plugins\" declares no userConfig options.","configApplied":false}
# Session start with --debug: the server is skipped, nothing is shown to the user
MCPB <path>/mnemic.mcpb requires user configuration. User can configure via: /plugin → Manage plugins → mnemic → Configure
Steps to Reproduce
Steps to reproduce
- /plugin marketplace add thegreystone/claude-plugins
- /plugin install mnemic@hirt-plugins
(the bundle's manifest declares "owner" as required with no default)
- Start a new session. No mnemic tools are available, no message is shown.
- Run with --debug to see the "requires user configuration" line.
- /plugin → Manage plugins → mnemic → Configure, fill in the form, start a
new session: the tools appear.
Environment
- Claude Code 2.1.278, native binary, Windows 11 Pro 10.0.26200
- Marketplace: https://github.com/thegreystone/claude-plugins, bundle
committed in the repository and referenced as "mcpServers": "./mnemic.mcpb"
- claude plugin validate passes for the marketplace and the plugin
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.278
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
Notes
This is not Windows-specific. The install command and the bundle loader take
the same code path on every platform; Windows is only where it was observed.
The same plugin installed in Claude Desktop from the same marketplace is
dropped there too, for a different reason (Desktop's plugin path does not
support user_config at all). Reported separately through the app.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗