[BUG] MCP log directories use colons in path names, crashes on Windows
Note: Claude Code told me to set up this issue again although there is a related issue raised! #13471 Happy for you to delete of course.
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?
Environment
- Claude Code version: 2.0.65
- Platform: Windows 11 (win32)
- Shell: PowerShell 5.1
Description
When a plugin containing MCPs is enabled, Claude Code attempts to create log directories with colons in the name:
mcp-logs-plugin:full-on-dev:playwright
^ ^
COLONS ARE ILLEGAL ON WINDOWS
This causes an immediate crash on startup:
Error: ENOENT: no such file or directory, mkdir 'C:\Users\Christian.paul\AppData\Local\claude-cli-nodejs\Cache\C--Users-Christian-paul-Desktop-figma-bilateral\mcp-logs-plugin:full-on-dev:playwright'
Steps to Reproduce
- Create a plugin with an
.mcp.jsonfile containing any MCP server - Add the plugin's marketplace via
/plugin marketplace add - Enable the plugin via
/pluginUI - Restart Claude Code
- Crash on startup
Expected Behavior
MCP log directories should use Windows-safe characters. For example:
mcp-logs-plugin-full-on-dev-playwright(using hyphens)mcp-logs-plugin_full-on-dev_playwright(using underscores)
Actual Behavior
Claude Code crashes because Windows does not allow colons in file/directory names (reserved for drive letters).
Proof This Is Not User Configuration
My .mcp.json files contain no colons:
{
"mcpServers": {
"playwright": {
"type": "stdio",
"command": "C:\\Users\\Christian.paul\\mcp-global-wrappers\\playwright-wrapper.bat",
"args": [],
"env": {}
}
}
}
Claude Code internally constructs the path as plugin: + [plugin-name]: + [mcp-name], adding the colons.
Impact: Complete Workflow Destruction
This bug completely breaks the plugin system's primary use case on Windows: organizing MCPs into switchable groups to manage context window usage.
Before this broke (Sunday, Dec 8):
- 8 plugins organizing ~20 MCPs by task type
- Enable
full-on-dev→ get playwright, linear, context7 - Enable
research→ get perplexity, exa - Dynamic switching via UI, 30-50% context savings
After:
- Zero plugins with MCPs can be enabled
- Must choose between: all MCPs always loaded (wasted context) or no MCPs at all
- The entire value proposition of the plugin system is nullified on Windows
Workaround
None that preserves functionality. The only option is to disable all plugins containing MCPs:
# Nuclear option - disables plugin system entirely
[System.IO.File]::WriteAllText("$env:USERPROFILE\.claude\plugins\known_marketplaces.json", "{}")
Suggested Fix
Replace : with a Windows-safe delimiter when constructing MCP log directory names. This is likely a one-line fix:
// Before (broken on Windows)
const logDir = `mcp-logs-plugin:${pluginName}:${mcpName}`;
// After (cross-platform)
const logDir = `mcp-logs-plugin-${pluginName}-${mcpName}`;
Related Issues
- #13471 - Original plugin marketplace discovery bug (partially addresses different symptoms)
- #13453 - Symlink support broken (v2.0.62 regression)
- #12174 - Cannot add marketplace on Windows
Additional Context
This bug is part of a series of Windows-specific issues introduced in v2.0.62.
The plugin system appears to have been developed primarily for macOS/Linux?.
I've spent a good part of 3 days debugging this with claude code help. including recovering from 3 additional crashes caused by Claude Code's own automated repair attempts corrupting global config files. Detailed incident documentation available on request.
This needs urgent attention.
What Should Happen?
Expected Behavior
MCP log directories should use Windows-safe characters. For example:
mcp-logs-plugin-full-on-dev-playwright(using hyphens)mcp-logs-plugin_full-on-dev_playwright(using underscores)
Error Messages/Logs
This causes an immediate crash on startup:
Error: ENOENT: no such file or directory, mkdir 'C:\Users\Christian.paul\AppData\Local\claude-cli-nodejs\Cache\C--Users-Christian-paul-Desktop-figma-bilateral\mcp-logs-plugin:full-on-dev:playwright'
Steps to Reproduce
Steps to Reproduce
- Create a plugin with an
.mcp.jsonfile containing any MCP server - Add the plugin's marketplace via
/plugin marketplace add - Enable the plugin via
/pluginUI - Restart Claude Code
- Crash on startup
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
pre 2.0.62?
Claude Code Version
2.0.65
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Cursor
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗