modelcontextprotocol / modelcontextprotocol/servers

MCP Filesystem UTF-8 Issues on Windows with German Umlaute

Open Beginner friendly
#2,098 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug server-filesystem
Dominant language
TypeScript
Stars
90.5k
Forks
11.7k
Avg merge
2d 2h
Merged PRs (30d)
5

Description

SOLVED: MCP Filesystem UTF-8 Issues on Windows with German Umlaute

Problem

If you're using the MCP Filesystem Server on Windows and experiencing issues with German umlauts (ä, ö, ü, ß) or other UTF-8 characters being converted to "?" when writing files - this post provides a working solution.

Symptoms:

  • Writing "Bäcker" → becomes "B?cker"
  • Reading works fine, only writing is affected
  • Affects all non-ASCII characters (€, é, ñ, etc.)

Root Cause

The STDIO communication between Claude Desktop and the MCP server doesn't use UTF-8 encoding by default on Windows. The Node.js process needs explicit encoding settings.

Solution

Step 1: Switch from Docker to NPX installation
npm install -g @modelcontextprotocol/server-filesystem
Step 2: Patch the server code

Edit file: %APPDATA%\npm\node_modules\@modelcontextprotocol\server-filesystem\dist\index.js

Add after the imports section:

// UTF-8 Fix for Windows
if (process.platform === 'win32') {
    process.stdout.setEncoding('utf8');
    process.stderr.setEncoding('utf8');
    process.stdin.setEncoding('utf8');
}
Step 3: Update Claude Desktop config

Edit: %APPDATA%\Claude\claude_desktop_config.json

Replace the filesystem server configuration:

"filesystem": {
  "command": "npx",
  "args": [
    "-y", 
    "@modelcontextprotocol/server-filesystem",
    "C:\\claude_local",
    "C:\\Users\\[YOUR_USERNAME]\\AppData\\Roaming\\Claude"
  ],
  "env": {
    "LANG": "de_DE.UTF-8",
    "LC_ALL": "de_DE.UTF-8",
    "LC_CTYPE": "de_DE.UTF-8"
  }
}
Step 4: Restart Claude Desktop

Result

UTF-8 characters now work perfectly: ÄÖÜ äöü ß € ✓

Technical Details

  • Tested on Windows 10/11
  • Node.js 18+
  • MCP SDK v0.6.0
  • Solution discovered: June 13, 2025

Full Documentation

Complete documentation with automated patch script available at:
[Link to GitHub Gist or Repository]

Contributing

This fix should ideally be integrated into the official MCP Filesystem Server. I'm planning to submit a PR to the official repository. If you've experienced this issue, please comment to support the PR.


Keywords: MCP, Model Context Protocol, Filesystem Server, UTF-8, Windows, German, Umlaute, Claude Desktop, encoding fix

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the MCP Filesystem Server entry point corresponding to dist/index.js and reproduce the Windows write case with “Bäcker” or another non-ASCII string. Compare the reported stdin, stdout, and stderr encoding settings, then verify that writing and reading UTF-8 characters works on Windows without converting them to question marks.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
backend, operating-systems
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.