mcp-fileencoding
MCP FileEncoding
MCP-Server, der das Problem löst, dass KI-Kodierungsassistenten unter Windows beim Lesen/Schreiben von Nicht-UTF-8-Dateien wie GBK/GB18030 Zeichensalat erzeugen.
Beim Lesen wird die Kodierung automatisch erkannt und in UTF-8 an die KI zurückgegeben; beim Schreiben wird sie automatisch in die ursprüngliche Kodierung zurückkonvertiert, was für die KI völlig transparent ist.
Hintergrund
In chinesischen Windows-Umgebungen werden viele Quellcodedateien (C/C++, Lisp usw.) im GBK-Format gespeichert. KI-Kodierungsassistenten lesen diese Dateien standardmäßig mit UTF-8, was dazu führt, dass chinesische Kommentare und Zeichenfolgen als Zeichensalat dargestellt werden. Dieses MCP verarbeitet die Kodierungskonvertierung beim Lesen und Schreiben von Dateien automatisch, sodass die KI Nicht-UTF-8-Dateien korrekt verarbeiten kann.
Related MCP server: filesystem-mcp
Unterstützte Kodierungen
UTF-8 / UTF-8 BOM
GBK / GB2312
GB18030
Andere von Python
codecsunterstützte Kodierungen
Installation
git clone https://github.com/jidzhang/mcp-fileencoding.git
cd mcp-fileencoding
pip install -r requirements.txtKonfiguration
Claude Code
claude mcp add fileencoding -- python /path/to/mcp-fileencoding/src/server.pyClaude Desktop / Cursor / Andere MCP-Clients
Fügen Sie dies zur MCP-Konfigurationsdatei hinzu (der Pfad zur Konfigurationsdatei variiert je nach Client, siehe die entsprechende Client-Dokumentation):
{
"mcpServers": {
"fileencoding": {
"command": "python",
"args": ["/path/to/mcp-fileencoding/src/server.py"]
}
}
}Verwendung
Nach Abschluss der Konfiguration erhält die KI automatisch die folgenden 5 Tools.
Tool-Liste
Tool | Beschreibung |
| Datei lesen, Kodierung automatisch erkennen, UTF-8-Inhalt zurückgeben |
| Datei schreiben, automatisch in die ursprüngliche Kodierung zurückkonvertieren |
| Dateiinhalt lokal ersetzen (String-Ersetzung) |
| Kodierungsdatensatz der Datei abfragen |
| Alle aufgezeichneten Kodierungen auflisten |
Methode 1: PreToolUse Hook (Empfohlen)
Über den Hook-Mechanismus von Claude Code wird bei jedem Aufruf der Read/Write/Edit-Tools durch die KI automatisch der Dateityp überprüft und die Verwendung des MCP vorgeschlagen. Dies ist zuverlässiger als System-Prompts und schlägt in langen Dialogen nicht fehl.
Erstellen Sie .claude/settings.json im Projektstammverzeichnis:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read|Write|Edit",
"hooks": [
{
"type": "prompt",
"prompt": "检查 $ARGUMENTS 中的文件路径,如果文件扩展名是 .cpp、.h 或 .lsp,则:\n- 对于 Read 操作:使用 mcp__fileencoding__read_file_with_encoding 代替 Read 工具\n- 对于 Write/Edit 操作:使用 mcp__fileencoding__write_file_with_encoding 代替 Write/Edit 工具\n\n返回 JSON: {\"hookSpecificOutput\": {\"hookEventName\": \"PreToolUse\", \"additionalContext\": \"提示信息\"}}"
}
]
}
]
}
}Passen Sie die passenden Dateierweiterungen (.cpp, .h, .lsp usw.) nach Bedarf an.
Methode 2: System-Prompt
Fügen Sie den Prompt in Claude Code über den Parameter --system-prompt oder die Datei CLAUDE.md des Projekts hinzu:
claude --system-prompt "在读取和修改 .cpp/.h/.lsp/.txt 等文本文件时,使用 fileencoding MCP。.py/.js/.html 等文件不需要使用。其他文件一般不需要使用,只有遇到读取文本乱码后才尝试使用。"Hinweis: System-Prompts können in langen Dialogen von der KI ignoriert werden; der PreToolUse Hook ist die zuverlässigere Wahl.
Arbeitsablauf
Beispiel: Bearbeiten einer .cpp-Datei mit GBK-Kodierung:
Die KI ruft
read_file_with_encodingauf, um die Datei zu lesen → erkennt automatisch GBK → gibt UTF-8-Inhalt an die KI zurückNachdem die KI den Inhalt verstanden hat, ruft sie
edit_file_with_encodingzur Bearbeitung auf → schreibt die Datei automatisch im GBK-Format zurückDie Dateikodierung bleibt unverändert, was die Kompatibilität mit anderen Tools nicht beeinträchtigt
Hinweise
Kodierungsdatensätze werden im Arbeitsspeicher gespeichert und beim Neustart des MCP-Servers gelöscht
Wenn der Kodierungsdatensatz beim Schreiben einer Datei verloren gegangen ist, muss der Parameter
encodingmanuell angegeben werdenDie Erkennung basiert auf dem Dateiinhalt; bei sehr kurzen Texten ist sie möglicherweise nicht genau genug. Es wird empfohlen, dass der Dateiinhalt mindestens einige Dutzend chinesische Schriftzeichen umfasst
Entwicklung
Entwicklungsabhängigkeiten installieren
pip install -r requirements.txt
pip install pytest pyrightTests ausführen
python -m pytest tests/ -vTypüberprüfung
npx pyright src/Das Projekt verwendet den pyright strict-Modus; alle Quellcode-Typüberprüfungen müssen fehlerfrei bestanden werden.
Projektstruktur
src/
├── server.py # MCP 服务器入口,工具定义和请求处理
├── detector.py # 编码检测(charset-normalizer + GBK 回退)
├── converter.py # 编码转换(字节 ↔ UTF-8)
└── encoding_store.py # 内存编码记录存储
tests/
├── test_server.py # 服务器 handler 测试
├── test_detector.py # 编码检测测试
├── test_converter.py # 编码转换测试
└── test_encoding_store.py # 存储模块测试Abhängigkeiten
Python >= 3.10
mcp >= 1.0.0
charset-normalizer >= 3.0.0
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- ZionDeskOAuthapp.ziondesk
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Related MCP Servers
- AlicenseAqualityBmaintenanceEncoding-aware, indentation-smart file tools for AI coding agents. 20+ tools including read/edit with automatic encoding detection, smart indentation conversion, SSH, SFTP, process management, and system utilities.1124MIT
- AlicenseAqualityFmaintenanceEnables AI assistants to read, write, and manage files on the local system with security features like path restrictions and optional read-only mode.92MIT
- AlicenseAqualityAmaintenanceEncoding-transparent file tools for Claude Code and other MCP clients, converting project files between legacy codepages and Unicode for LLM operations.442 npmMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to read and write local Excel and CSV files, supporting editing, styling, and image insertion.1527 npmMIT