Filesystem MCP writes hang when launched via `npx -y`; reliability improves with pinned global install
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 65/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- node.js, typescript
- Domain
- documentation
Research direction
Start with the Filesystem MCP README and its documented npx configuration. Reproduce the listed read and write behavior on macOS with Node.js v22.18.0, then compare it with the global install and direct binary setup. Done means the README’s production install guidance reflects verified behavior and remains clear.
Written by the indexing model from the issue text.
Description
Environment:
- macOS [your version — Sonoma, Sequoia, whatever]
- Claude Desktop [Help > About Claude Desktop > version]
- Node.js v22.18.0
- Filesystem MCP [version from
npm list -g @modelcontextprotocol/server-filesystem]
Reproduction:
- Configure Filesystem MCP in claude_desktop_config.json using
command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", <dirs>] - Restart Claude Desktop
- Call read operations: succeed (list_directory, search_files)
- Call write operation (edit_file): intermittently hangs for 4 minutes, then times out with "unresponsive"
- Subsequent calls also hang
Fix that worked:
- Install globally:
npm install -g @modelcontextprotocol/server-filesystem - Update config
commandto the direct binary path, removenpxand-y - Writes now succeed reliably
Hypothesis:
npx -y may be re-resolving/re-downloading the package on each stdio handshake, introducing a race with Claude Desktop's expected startup window. Pinning the binary path skips npx entirely. This would affect every macOS user following the default install docs.
Suggested docs change:
Recommend npm install -g + direct binary path in the Filesystem MCP README as the production-grade install pattern, rather than the npx -y pattern which appears more fragile.
- Dominant language
- TypeScript
- Stars
- 90.5k
- Forks
- 11.7k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 5
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from modelcontextprotocol/servers
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
modelcontextprotocol/servers#4830 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/servers#4829 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
modelcontextprotocol/servers#4812 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
modelcontextprotocol/servers#4804 · 1 comment ·
-
README gate confirmation command can be used by any commenter, bypassing the "readme: pending" gate Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
modelcontextprotocol/servers#4796 ·
All issues in modelcontextprotocol/servers
Similar issues
-
comp/desktop P3 type/bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
NousResearch/hermes-agent#118866 ·
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agilepathway/label-checker#640 ·
-
Plugin stuck at "loading" on DSH 0.1.6-alpha.2 — turnTail list slot registration missing options.id Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
chrisparsons83/flexspotff#153 ·