[BUG] Plugin `mcpServers` defined in `plugin.json` is never loaded at runtime
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?
MCP servers defined inline in a plugin's plugin.json manifest are silently ignored.
The .claude-plugin/ directory is not included in the plugin's runtime cache, so anymcpServers configuration there is never read.
Actual Behavior
The MCP server is not loaded. Inspecting the plugin runtime cache
(~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/) reveals that.claude-plugin/ contents are absent — only commands/, skills/, hooks/,
and root-level files are present.
What Should Happen?
The MCP server defined in plugin.json should be loaded and appear as connected.
Error Messages/Logs
None
Steps to Reproduce
- Create a plugin with
mcpServersdefined inline in.claude-plugin/plugin.json:
``json``
{
"name": "my-plugin",
"mcpServers": {
"my-server": {
"type": "sse",
"url": "https://example.com/sse"
}
}
}
- Install the plugin and restart Claude Code
- Check
/plugin→ the MCP server does not appear as connected
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
unsure
Claude Code Version
2.1.45
Platform
Anthropic API
Operating System
Other Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
Workaround
Move mcpServers out of plugin.json and into a .mcp.json file at the plugin
root (alongside .claude-plugin/, not inside it):
my-plugin/
├── .claude-plugin/
│ └── plugin.json ← name and description only
├── .mcp.json ← MCP server definitions here
├── commands/
└── skills/
Environment
- Marketplace type:
directory(local), also likely affectsgithub-sourced marketplaces
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗