[BUG] userConfig prompt not shown during plugin install — substitution fails with "Missing required user configuration value
Resolved 💬 8 comments Opened Mar 27, 2026 by tommy-gun Closed May 25, 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?
When installing a plugin that uses userConfig in plugin.json, the user is never prompted to enter the configured values. Instead, Claude Code attempts variable substitution before collecting the values, resulting in an error.
What Should Happen?
During claude plugin install, user should be prompted to enter the port value before any substitution occurs. Same behavior should be available in the desktop app UI.
Additional Context
- Desktop app UI has no way to configure
userConfigvalues at all - Setting the value manually in
settings.jsonunderpluginConfigsworks as a workaround - The error message itself says "This should have been validated before variable substitution" — suggesting this is a known code path that was intended to be guarded
Error Messages/Logs
Missing required user configuration value: port. This should have been validated before variable substitution.
Steps to Reproduce
- Create a plugin with
userConfigand an MCP server that uses${user_config.port}in its args - Install via
claude plugin install <marketplace-url> - Observe: no prompt appears for the
portvalue - Result: installation fails or MCP server fails to start with the error below
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.85
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
plugin.json
{
"name": "test-plugin",
"version": "0.0.3",
"userConfig": {
"port": {
"title": "MCP Server Port",
"description": "Port of the local MCP server",
"type": "number",
"sensitive": false
}
},
"mcpServers": {
"test-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:${user_config.port}/test/"]
}
}
}This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗