[BUG] For marketplace installs the MCP bundle (.mcpb) user_config is never prompted for

Status Open
Reported on v2.1.278
Maintainer reply None cached
Activity 1 comment · opened Sep 20, 2026

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:

  1. 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."

  1. 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

  1. /plugin marketplace add thegreystone/claude-plugins
  2. /plugin install mnemic@hirt-plugins

(the bundle's manifest declares "owner" as required with no default)

  1. Start a new session. No mnemic tools are available, no message is shown.
  2. Run with --debug to see the "requires user configuration" line.
  3. /plugin → Manage plugins → mnemic → Configure, fill in the form, start a

new session: the tools appear.

Environment

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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗