MCP server for writing files in ISO-8859-1 encoding. Plug and play for legacy codebases.
npm install mcp-iso8859-writer
MCP server for writing files in ISO-8859-1 encoding. Designed for legacy codebases that require ISO-8859-1 instead of UTF-8.
AI agents (Claude, Cursor, etc.) generate code in UTF-8. When working with legacy codebases that use ISO-8859-1 encoding, direct file writes corrupt special characters (accents, ñ, etc.). This MCP transparently converts UTF-8 to ISO-8859-1.
Add the following configuration to your MCP settings:
``json`
{
"mcpServers": {
"iso-writer": {
"command": "npx",
"args": ["-y", "mcp-iso8859-writer"]
}
}
}
Configuration file location:
- Claude Code: .mcp.json (project) or ~/.claude/settings.json (global)claude_desktop_config.json
- Cursor: MCP settings
- Claude Desktop:
By default, the MCP can write to any absolute path. To restrict operations to a specific directory, set the MCP_ISO_BASE_PATH environment variable:
`json`
{
"mcpServers": {
"iso-writer": {
"command": "npx",
"args": ["-y", "mcp-iso8859-writer"],
"env": {
"MCP_ISO_BASE_PATH": "/var/www/html"
}
}
}
}
Backups are stored in a centralized .mcp-iso8859-writer/ directory. By default, this is created in the current working directory. To specify a custom location:
`json`
{
"mcpServers": {
"iso-writer": {
"command": "npx",
"args": ["-y", "mcp-iso8859-writer"],
"env": {
"MCP_ISO_BACKUP_ROOT": "/path/to/project"
}
}
}
}
The backup system preserves directory structure within the backup folder.
Creates a new file in ISO-8859-1 encoding.
Input:
- filePath: Absolute path to the filecontent
- : File content in UTF-8
Output:
- success: booleanpath
- : normalized pathencoding
- : "iso-8859-1"corruption_count
- : number of corrupted charactersis_clean
- : true if no corruption
Edits an existing ISO-8859-1 file by replacing specific lines. Automatically creates a backup before editing.
Input:
- filePath: Absolute path to the filestartLine
- : Start line (1-based)endLine
- : End line (inclusive, 1-based)newContent
- : Replacement content in UTF-8
Output:
- success: booleanpath
- : normalized pathencoding
- : "iso-8859-1"corruption_count
- : number of corrupted charactersis_clean
- : true if no corruptionlines_replaced
- : number of lines replacedtotal_lines
- : total lines in file after editbackup_path
- : path to backup file
Reads an ISO-8859-1 file and returns content as UTF-8.
Input:
- filePath: Absolute path to the file
Output:
- success: booleanpath
- : normalized pathcontent
- : file content converted to UTF-8lines
- : number of linesline_ending
- : "CRLF" or "LF"
- Atomic writes: Uses write-file-atomic to prevent file corruption on interrupted writes
- Automatic backups: Creates timestamped backup before every edit
- Line ending preservation: Detects and preserves CRLF (Windows) or LF (Unix) line endings
- Encoding verification: Reports any characters that couldn't be converted cleanly
`bash``
git clone https://github.com/lmendezz/mcp-iso8859-writer.git
cd mcp-iso8859-writer
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm test # Run tests
MIT