[BUG] Claude Desktop MCP: tool call responses dropped by client after first successful round-trip (Windows, regression in CCD v2.1.22)
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?
On Claude Desktop for Windows (CCD v2.1.22 / app 1.1.1520), the @modelcontextprotocol/server-filesystem server completes the full MCP handshake (initialize → tools/list) successfully, but subsequent tools/call messages are never sent by Claude Desktop to the server. The server stays connected and healthy, but no file operations ever reach it.
This is a regression introduced in CCD v2.1.22. The exact same setup worked correctly on v2.1.20 and earlier. The main.log history confirms the transition.
The warning UtilityProcess Check: Extension filesystem not found in installed extensions appears in main.log on every startup — Claude Desktop may be failing to route tools/call messages because it doesn't find the server registered as an internal extension.
Related: #14807 (same symptom on Windows)
What Should Happen?
After a successful MCP handshake, Claude Desktop should dispatch tools/call messages to the server for any filesystem operations requested by the user. The server connection should remain active for the full duration of the session and respond to all file read/write/list operations.
Error Messages/Logs
**mcp-server-filesystem.log:**
[filesystem] [info] Server started and connected successfully
[filesystem] [info] Message from client: {"method":"initialize",...,"id":0}
[filesystem] [info] Message from server: {"jsonrpc":"2.0","id":0,"result":{...}}
[filesystem] [info] Message from client: {"method":"notifications/initialized",...}
[filesystem] [info] Message from client: {"method":"tools/list",...,"id":1}
[filesystem] [info] Message from server: {"jsonrpc":"2.0","id":1,"result":{"tools":[...]}}
// ← NOTHING after this. No tools/call ever arrives from the client.
// ~20 minutes later:
[filesystem] [info] Server transport closed
[filesystem] [error] Server disconnected. Server transport closed unexpectedly,
this is likely due to the process exiting early.
**main.log:**
[info] Launching MCP Server: filesystem
[info] Checking if UtilityProcess should be used for extension filesystem
[warn] UtilityProcess Check: Extension filesystem not found in installed extensions
[info] [EventLogging] Sending event: desktop_mcp_unexpected_close
| extension_name: 'filesystem'
| mcp_cmd: 'node'
| app_version: '1.1.1520'
**mcp.log:**
The only tools/call that ever went through was list_allowed_directories (id:2), and only because it fired within the first ~23 seconds of connection. All subsequent calls were never dispatched.
---
Steps to Reproduce
- Install @modelcontextprotocol/server-filesystem globally:
npm install -g @modelcontextprotocol/server-filesystem
- Edit claude_desktop_config.json (located at %APPDATA%\Claude\claude_desktop_config.json) with this content:
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": [
"C:\\Users\\YOUR_USER\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-filesystem\\dist\\index.js",
"C:\\YOUR_ALLOWED_DIRECTORY"
]
}
}
}
Note: Using node directly instead of npx is required — with npx the stdio pipe breaks entirely and even the handshake fails.
- Open Claude Desktop. Confirm the server starts successfully by checking mcp-server-filesystem.log (located at %APPDATA%\Claude\logs\) — you should see the handshake complete (initialize → tools/list → response).
- Ask Claude to read or list any file/directory in the allowed path (e.g. "list the files in C:\YOUR_ALLOWED_DIRECTORY").
- Observe: No tools/call message ever appears in the server log. The request hangs indefinitely on the client side. After ~20 minutes the server is disconnected with "Server transport closed unexpectedly".
Verification that the server itself is healthy:
node C:\Users\YOUR_USER\AppData\Roaming\npm\node_modules\@modelcontextprotocol\server-filesystem\dist\index.js C:\YOUR_ALLOWED_DIRECTORY
Running the server manually works perfectly — it responds to all commands when called directly via MCP inspector or similar tools.
Verification that Node.js has no I/O issues:
node -e "const fs = require('fs'); fs.readdirSync('C:\\YOUR_ALLOWED_DIRECTORY').forEach(f => console.log(f))"
This works fine — the issue is not with Node.js or file system permissions.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
CCD v2.1.20 / app 1.1.1200. The main.log version history confirms: - v2.1.20 (app 1.1.1200) → MCP filesystem worked correctly - v2.1.22 (app 1.1.1520) → MCP filesystem broke - The automatic update to v2.1.22 happened on 2026-01-31 and the issue started immediately after. ---
Claude Code Version
Not applicable — this bug is in Claude Desktop's MCP client implementation, not Claude Code. Claude Desktop version: app 1.1.1520 / CCD 2.1.22.
Platform
Other
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
Key observations:
- The server is completely healthy. Running it manually works perfectly.
- Node.js has zero I/O issues with the target directory.
- The first tool call sometimes succeeds if made within ~23 seconds of connection — this points to a race condition or very short timeout in Claude Desktop's MCP message routing after the initial handshake.
- npx as command makes it completely broken (stdio pipe failure). Using node directly is required but only partially fixes the issue.
- Toggling the filesystem connector off/on in Claude Desktop's Connectors menu forces a reconnect but the same timeout applies.
- The warning "Extension filesystem not found in installed extensions" in main.log appears on every startup and is likely the root cause — Claude Desktop may not be properly routing tools/call for servers it doesn't recognize as installed extensions.
Workaround: None that fully resolves the issue. Toggling the connector and making requests within the first few seconds is unreliable and impractical.
10 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Confirming this bug — independent reproduction with additional findings that narrow the root cause.
Same environment: CCD v2.1.22 / app 1.1.1520, Windows 11 25H2 (26200.7705).
Your report says
tools/callnever dispatches. I can confirm it actually does dispatch and execute — but the response is dropped by the client before it reaches the UI. Proof: aWindows-MCP:Snapshotcall opened Task Manager on my machine, but Claude Desktop reported "No result received from client-side tool execution."Additional evidence beyond the OP:
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 $eipc_message$_20c92762-0947-4c2c-b829-f8df9e7c38dc_$_claude.web_$_AutoUpdater_$_updaterState_$store$_update listeners added— this UUID is hardcoded in the binary and survives a full uninstall + AppData wipe + reinstalla-api.anthropic.com/v1/mrefused by their own Content Security Policy)The EventEmitter leak on the AutoUpdater IPC channel is likely the root cause — it's congesting the eipc message bus and causing MCP tool responses to get dropped after the first successful round-trip.
UPDATE — Second machine confirms this is the auto-update, not user environment
Tested on a completely untouched work machine that hasn't been modified since Thursday January 29th. MCP was fully working when I left the office Thursday. No troubleshooting, no KB uninstalls, no extension changes — stock Windows 11, stock Claude Desktop.
About dialog still showed 1.1.1200 (old version) but MCP was already broken with the identical pattern: first tool call succeeds, all subsequent calls fail with "No result received from client-side tool execution"
After restart, version instantly flipped to 1.1.1520 with no install prompt — the update was already downloaded and staged silently
Same bug, same symptoms, completely untouched machine
This rules out user environment as a factor. The auto-update broke MCP on both machines without any user action. One machine had extensive troubleshooting (Node upgrade, AppData wipe, full reinstall, KB uninstalls) — none of it mattered. The untouched machine has the identical failure.
Working Thursday January 29th, broken Saturday January 31st, zero user changes. This is a regression shipped via silent auto-update with no rollback path.
Confirming the pattern sonofsmog described. Additional log evidence from my session:
The gap between handshake and first successful call rules out any timeout:
This confirms it's not a timeout or race condition on connect. The first call works regardless of how much time passes. The second call is simply never dispatched by the client, consistent with sonofsmog's finding that the IPC bus drops responses after the first successful round-trip.
Also: 👎 on the bot comment above — this is NOT a duplicate of #9609, #18863, or #14807. Those are different failure modes. This is specifically the first-call-succeeds / second-call-dropped pattern introduced by the v2.1.22 auto-update.
+1, Also flagged here: https://github.com/anthropics/claude-code/issues/22319
Same issue here, Anthropic refuses to acknowledge problem as far as my interactions have been. They are the creators of a tool they can't master themselves. No wonder they ported it out into the world, hoping someone smarter they are would could fix it.
Hi! We do acknowledge that MCP reliability is something we are striving to improve. Really appreciate everyone's help to report issues so we can get them fixed.
A few different issues are popping up:
Can you guys upgrade to the latest app
Claude 1.1.1890 (af393c) 2026-02-03T21:05:53.000Zand see if the issue still pops up?<img width="966" height="192" alt="Image" src="https://github.com/user-attachments/assets/1a2718f9-9039-4b4e-b0b3-fbf20d705045" />
@alicelovescake updated to latest and looks good here!
Thanks for confirming! Closing the issue. Thanks again for your patience.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.