[BUG] MCP log directories use colons in path names, crashes on Windows

Resolved 💬 3 comments Opened Dec 11, 2025 by CPaulBeroe Closed Dec 15, 2025

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

  1. Create a plugin with an .mcp.json file containing any MCP server
  2. Add the plugin's marketplace via /plugin marketplace add
  3. Enable the plugin via /plugin UI
  4. Restart Claude Code
  5. 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

  1. Create a plugin with an .mcp.json file containing any MCP server
  2. Add the plugin's marketplace via /plugin marketplace add
  3. Enable the plugin via /plugin UI
  4. Restart Claude Code
  5. 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_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗