[BUG] Plugin MCP tools not injected despite server showing "Connected"
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?
Plugin-registered MCP servers connect successfully but their tools never appear in sessions (not in deferred tools list, not callable). This affects all plugin MCPs — not just one specific plugin. Non-plugin MCPs (registered
via project .mcp.json) work perfectly.
Diagnosis
The plugin framework correctly handles hooks, skills, and statusline — only the MCP tool injection pathway is broken. Since this affects multiple unrelated plugins while all non-plugin MCPs work fine, this appears to be a
regression in the plugin → MCP tool injection mechanism.
Timeline
- Worked correctly before ~April 14, 2026 (Claude Code ~2.1.109)
- Broke during a session and has not recovered since
- Persists across reinstalls, restarts, and config changes
What Should Happen?
Plugin MCP servers that show "✓ Connected" in claude mcp list should have their tools injected into the session's deferred tools list (e.g. mcp__plugin_cortex_cortex__cortex_recall), just like project .mcp.json servers do. Plugin hooks and skills already inject correctly — only MCP tool injection is broken.
Error Messages/Logs
Error Messages/Logs:
$ claude mcp list
plugin:cortex:cortex: node
~/.claude/plugins/cache/cortex/cortex/2.1.2/dist/mcp-server.js - ✓ Connected
codex-plugin-cc: npx @openai/codex-plugin-cc - ✗ Failed to connect
Plugin MCP shows "Connected" but zero tools from it appear in the session's
deferred tools list. No mcp__plugin_cortex_cortex__* or similar tool names are
available. No error is surfaced — tools are silently missing.
All non-plugin MCPs (9 servers via project .mcp.json) inject tools normally in
the same session.
Direct MCP handshake confirms server works:
$ echo '{"jsonrpc":"2.0","id":1,"method":"initialize",...}' | node
dist/mcp-server.js
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities
":{"tools":{}},"serverInfo":{"name":"cortex-memory","version":"2.0.3"}}}
No Claude Code debug logs found at ~/.claude/logs/ or ~/Library/Logs/.
Steps to Reproduce
- Install any plugin that provides an MCP server (e.g. claude plugin install cortex)
- Verify plugin is enabled in ~/.claude/settings.json → enabledPlugins
- Restart Claude Code
- Run claude mcp list — plugin MCP shows "✓ Connected"
- In session, check deferred tools — zero tools from plugin MCP appear
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
~2.1.109 ~April 14, 2026
Claude Code Version
2.1.110
Platform
Other
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
What works
- Plugin hooks fire correctly (SessionStart, PostToolUse, PreCompact)
- Plugin skills appear and are invocable (/cortex-setup, /cortex-manage, etc.)
- Plugin statusline works (configured via settings.json)
- Plugin MCP server responds correctly to direct handshake:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize",...}' | node
dist/mcp-server.js
# Returns: protocolVersion, capabilities: {tools: {}}, serverInfo
- tools/list returns all 11 tools correctly when called directly
- All project .mcp.json MCPs (Python-based, 9 servers) inject tools normally
What doesn't work
- Plugin MCP tools never appear in the deferred tools list
- No mcp__plugin_cortex_cortex__ or mcp__cortex__ tools available
- Same failure for codex-plugin-cc — shows "✗ Failed to connect"
- Restarting Claude Code, terminal, full machine reboot — no change
- Uninstalling and reinstalling the plugin — no change
Configuration verified
// ~/.claude/settings.json
{
"enabledPlugins": {
"cortex@cortex": true,
"codex@openai-codex": true
}
}
// settings.local.json
{
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": ["plugin_cortex_cortex", "cortex", ...]
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗