EncodingMCP MCP server
2026년 11월 1일 커밋AI 코딩 어시스턴트가 Windows-1252 또는 UTF-16과 같은 다양한 인코딩의 텍스트 파일을 특수 문자의 손상 없이 읽고 편집할 수 있도록 지원합니다.
다른 이름 thvedel/EncodingMCP
- 스타
- 0
- Tools
- 11
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 1일
- 라이선스
- MIT
EncodingMCP MCP란?
EncodingMCP은(는) MCP server입니다. AI 코딩 어시스턴트가 Windows-1252 또는 UTF-16과 같은 다양한 인코딩의 텍스트 파일을 특수 문자의 손상 없이 읽고 편집할 수 있도록 지원합니다. 11개 도구를 제공합니다. 예: path, head, tail.
프로젝트 README에서 생성된 요약
EncodingMCP MCP server 정보
EncodingMCP는 AI 코딩 어시스턴트와 로컬 파일 시스템 사이에서 인코딩을 인식하는 브리지 역할을 합니다. 대부분의 LLM 기반 도구는 모든 파일이 UTF-8이라고 가정하므로, Windows-1252, ISO-8859-x 또는 UTF-16을 사용하는 레거시 코드베이스를 다룰 때 문자가 손상될 수 있습니다. 이 MCP server는 BOM, 엄격한 검증 또는 휴리스틱을 사용하여 파일의 특정 인코딩을 감지하며, 어시스턴트에게 깨끗한 UTF-8 텍스트를 제공하는 동시에 쓰기 작업 시 원래의 인코딩, BOM 및 줄 바꿈 스타일이 유지되도록 보장합니다.
Windows x64 환경을 위해 설계된 이 서버는 별도의 런타임 종속성이 필요 없는 독립형 실행 파일입니다. stdio 전송 방식을 통해 Claude Desktop, Cursor, Windsurf, GitHub Copilot과 같은 인기 있는 클라이언트와 함께 작동합니다. 개발자는 .encoding-mcp.json 사이드카 파일이나 특정 파일 및 패턴에 대한 명시적 오버라이드 설정을 통해 파일 인코딩을 관리할 수 있습니다. 전체 저장소를 UTF-8로 변환하는 것이 불가능한 레거시 C, C++, Delphi 또는 VB6 프로젝트를 유지 관리할 때 특히 유용합니다.
활용 사례
- 1레거시 파일의 문자 손상 방지AI에게 움라우트나 스마트 따옴표와 같은 특수 문자를 파괴하지 않고 Windows-1252 형식의 소스 파일을 편집하도록 요청합니다.
- 2메타데이터와 함께 비 UTF-8 파일 읽기어시스턴트에게 파일을 읽고 감지된 인코딩 및 줄 바꿈 스타일을 제공하도록 요청합니다.
- 3특정 인코딩 오버라이드 관리수동 오버라이드를 사용하여 어시스턴트가 특정 파일이나 패턴을 특정 인코딩으로 처리하도록 강제합니다.
- 4바이너리 민감 형식 보호AI가 Delphi form과 같은 바이너리 형식의 파일을 일반 텍스트로 다시 쓰려고 시도하지 않도록 보장합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
EncodingMCP MCP 도구 11
README에서 감지됨pathheadtailcontentencodingforceeditsfilespatterndirectoryremove
| path | — | |
| head | — | |
| tail | — | |
| content | — | |
| encoding | — | |
| force | — | |
| edits | — | |
| files | — | |
| pattern | — | |
| directory | — | |
| remove | — |
구성
ENCODING_MCP_WORKSPACE
| 이름 | 설명 | 유형 |
|---|---|---|
| ENCODING_MCP_WORKSPACE | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능thvedel/encodingmcp is public and reachablegithub.com/thvedel/encodingmcp ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-01github.com/thvedel/encodingmcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음11 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기EncodingMCP
Let AI coding assistants read and edit text files in any encoding — without corrupting them.
AI coding tools (GitHub Copilot, Claude Code, Cursor, Windsurf, Claude Desktop,
…) assume that every text file is UTF-8. A great deal of real-world source code
is not: files in Windows-1252, ISO-8859-x, UTF-16 and other encodings are the
norm in codebases that predate UTF-8 or that target Windows tooling. When an LLM
reads such a file as UTF-8 and writes it back, every æ, ø, å, ü, € or
smart quote is silently destroyed.
EncodingMCP is an MCP server that puts an
encoding-aware layer between the assistant and the disk. It detects the
encoding of each file (BOM, strict UTF-8 validation, codepage heuristics),
hands the assistant clean UTF-8, and converts back to the file's own encoding
on write — preserving BOM and line-ending style. Encodings are remembered per
file in a .encoding-mcp.json sidecar, and explicit overrides can be set per
file or per pattern.
It is language-agnostic. Typical candidates:
- C / C++ / C# / Java projects with Windows-1252 or ISO-8859-1 sources
- Classic VB6, VBScript and VBA exports
- PHP, Perl and Python 2 code written before UTF-8 became the default
- COBOL, RPG, Fortran and other mainframe or legacy sources
- SQL scripts,
.ini,.reg,.bat/.cmd,.propertiesand other config and resource files - Localisation files, CSV exports, HTML/XML without a declaration
- UTF-16 files produced by Windows tools
- Delphi and C++Builder projects (
.pas,.dfm,.dpr,.cpp,.h)
Who is this for?
- Anyone who uses an AI coding assistant on a codebase that is not (entirely)
UTF-8 and wants to stop reviewing diffs full of
øandä. - Teams maintaining legacy Windows applications where converting the whole repository to UTF-8 is not an option (toolchain, merge history, or policy).
- Developers working with UTF-16 or BOM-sensitive files that other tools silently rewrite.
- Delphi/C++Builder developers — the project originated there, and the binary-DFM guard is one example of how non-text formats are protected.
The server is a single standalone Windows executable with no runtime dependencies. You do not need Delphi to use it — only to build it from source.
Quick Start
Option A: Download prebuilt EXE (no Delphi required)
- Go to Releases
- Download
EncodingMCP.exe - Place it somewhere accessible (e.g.
C:\Tools\EncodingMCP.exe) - Configure your MCP client (see Installation)
Note (Windows): After downloading you may need to right-click the file → Properties → "Unblock", as Windows marks files downloaded from the internet. Alternatively:
Unblock-File -Path <path>in PowerShell.
Option B: Build from source
git clone https://github.com/thvedel/EncodingMCP.git
cd EncodingMCP
build.bat
The result is a standalone .exe under build\Win64\Release\.
Contents
| Path | Description |
|---|---|
EncodingMCP.dpr |
Main program (console application) |
src/MCP.*.pas |
Stdio transport, JSON-RPC 2.0, server dispatcher |
src/Encoding.*.pas |
Detection, heuristics, workspace, cache |
src/FileIO.*.pas |
Encoding-aware file reading/writing |
src/Tools.*.pas |
MCP tools (read/write/detect/override) |
tests/ |
DUnitX test suite |
build.bat |
Build script (main program + tests) |
Requirements
To use: Windows x64. Nothing else — it is a single standalone .exe.
To build from source:
- Delphi 12.3 (Studio 23.0) or Delphi 13.1 (Studio 37.0) — uses only RTL
(
System.JSON,System.SysUtils,System.Classes,System.IOUtils,System.Generics.*)
build.bat automatically searches for Delphi in standard locations and selects
the newest available version:
| Delphi version | Studio number | Path to rsvars.bat |
|---|---|---|
| 13.1 | 37.0 | C:\Program Files (x86)\Embarcadero\Studio\37.0\bin\rsvars.bat |
| 12.3 | 23.0 | C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat |
If your installation is elsewhere, set the RSVARS environment variable
before running build.bat.
Build
build.bat
Building is done via msbuild /t:Rebuild against the two .dproj files —
always a full build, so stale DCUs can never hide errors. Output goes to
build\$(Platform)\$(Config)\ — by default build\Win64\Release\. Change
PLATFORM/CONFIG in build.bat to build differently (e.g. Win32
or Debug).
You can also open EncodingMCP.dproj directly in RAD Studio and build from there.
Installation
The server communicates via stdio (stdin/stdout JSON-RPC). Any MCP client that supports stdio transport can use it. Below are examples for the most popular clients.
In all examples, replace <PATH> with the absolute path to
EncodingMCP.exe (either downloaded from Releases or built locally).
Backslashes in JSON must be escaped as \\.
Workspace roots
The server only serves files inside its allowed workspace roots (see Security). Without configuration it falls back to the workspace containing the directory the client starts it in, which is often not your project. Declare the roots explicitly in the client config instead.
There are two equivalent ways; both accept any number of roots:
-
args— one array element per root:"command": "<PATH>", "args": ["C:\\Projects\\MyApp", "C:\\Projects\\Shared", "D:\\Components"] -
env— theENCODING_MCP_WORKSPACEvariable with a semicolon-separated list:"command": "<PATH>", "args": [], "env": { "ENCODING_MCP_WORKSPACE": "C:\\Projects\\MyApp;C:\\Projects\\Shared;D:\\Components" }
If both are present, the roots are combined. Each root must be an absolute path
to an existing directory — anything else is skipped with a warning on stderr.
Sub-directories are included automatically, so list the top-level folders only.
The first root is the default for set_encoding_override when no directory
is given. Roots advertised by the MCP client during initialize are added to
the configured set as well.
GitHub Copilot
Copilot CLI (also used by IDE integrations that embed the CLI, e.g. RAD
Studio): edit %USERPROFILE%\.copilot\mcp-config.json for a global setup, or
.mcp.json in the repository root for a per-project setup:
{
"mcpServers": {
"encoding-bridge": {
"type": "local",
"command": "C:\\Tools\\EncodingMCP.exe",
"args": ["C:\\Projects\\MyApp", "C:\\Projects\\Shared"],
"tools": ["*"]
}
}
}
VS Code (Copilot Chat agent mode): edit .vscode\mcp.json in the
workspace, or add the same block under "mcp" → "servers" in the user
settings.json:
{
"servers": {
"encoding-bridge": {
"type": "stdio",
"command": "C:\\Tools\\EncodingMCP.exe",
"args": [],
"env": {
"ENCODING_MCP_WORKSPACE": "${workspaceFolder};C:\\Projects\\Shared"
}
}
}
}
VS Code expands ${workspaceFolder} to the open folder, so the same file can
be committed and used by the whole team. Restart the Copilot session (CLI) or
run MCP: Restart Server (VS Code) after changing the config.
Windsurf / Codeium
Edit %USERPROFILE%\.codeium\windsurf\mcp_config.json:
{
"mcpServers": {
"encoding-bridge": {
"command": "<PATH>",
"args": [],
"disabled": false
}
}
}
Restart Windsurf after the change.
Claude Code
claude mcp add encoding-bridge "<PATH>"
Claude Desktop
Edit the config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"encoding-bridge": {
"command": "<PATH>",
"args": []
}
}
}
Cursor
Edit .cursor/mcp.json in your project (or the global config):
{
"mcpServers": {
"encoding-bridge": {
"command": "<PATH>",
"args": []
}
}
}
Other MCP clients
Any client that supports MCP stdio transport can launch the EXE directly.
Protocol: JSON-RPC 2.0 over stdin/stdout. Server name: encoding-bridge.
Debug logging
Set the environment variable ENCODING_MCP_LOG_LEVEL=debug for detailed logging
on stderr. Supported levels: debug, info (default), warning, error.
Available tools
read_text_file
Reads a text file with automatic encoding detection and returns the content as UTF-8 along with metadata.
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path to the file |
head |
integer | Optional: only first N lines |
tail |
integer | Optional: only last N lines |
startLine |
integer | Optional: 1-based line number to start reading from. Use with endLine for a specific range. Takes priority over head/tail. |
endLine |
integer | Optional: 1-based line number to stop at (inclusive). Use with startLine for a specific range. Takes priority over head/tail. |
contextLines |
integer | Optional: extra lines to include before and after the startLine/endLine range. Only applies when a line range is specified. |
metadataOnly |
boolean | Optional: if true, return only metadata (encoding, lineEnding, totalLines, etc.) without file content. |
searchText |
string | Optional: search for lines containing this text (case-insensitive). Returns matching lines with line-number prefixes, separated by ... between non-contiguous regions. Use contextLines for surrounding context. Takes priority over head/tail/startLine/endLine. |
Output (JSON in content[0].text):
{
"path": "...",
"encoding": "Windows-1252",
"hasBom": false,
"lineEnding": "CRLF",
"confidence": 0.95,
"source": "detected",
"format": "text",
"fromCache": false,
"bytesRead": 1234,
"totalLines": 42,
"lineNumberStart": 1,
"returnedLines": 42,
"matchCount": 3,
"content": "#include \"legacy.h\" ..."
}
sourcetells where the encoding came from:bom,fileOverride,patternOverrideordetected.formatistext. Binary files that merely look like text are refused instead of being mangled; for example a Delphi form stored in binary format is rejected with an error andformat: "binary-dfm".- For a pure-ASCII file the response also contains
writeRecommendation: "Windows-1252"and anote:ASCII(even with high confidence) only means that no byte above 0x7F exists, so the codepage cannot be determined. See Encoding policy.
write_text_file
Writes UTF-8 content to a file in the correct encoding. If the file exists, its encoding is re-checked on disk before every write (changes made by the IDE, git or other tools are respected), and per-file and pattern overrides apply even if the file has never been read. New files default to UTF-8 with BOM. Every write holds an exclusive lock on the file (see Concurrency).
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path |
content |
string | UTF-8 content |
encoding |
string | Optional target encoding (UTF-8, Windows-1252, ...). Changing only the encoding keeps the existing line endings; the BOM is kept, added when switching from an 8-bit encoding to Unicode, and dropped for 8-bit encodings. |
lineEnding |
string | Optional (CRLF/LF/CR). Default preserves existing. |
hasBom |
boolean | Optional. Default preserves existing (true for new UTF files). true on a pure-ASCII file writes UTF-8 with BOM. |
createIfMissing |
boolean | Default true |
dryRun |
boolean | Optional: report encoding, BOM, line ending, upgrades and warnings without writing |
force |
boolean | Optional (default false): allow replacing a binary DFM with text |
Output (JSON in content[0].text):
{
"path": "...",
"encoding": "Windows-1252",
"hasBom": false,
"lineEnding": "CRLF",
"bytesWritten": 1234,
"created": false,
"source": "detected",
"previousEncoding": "ASCII",
"upgradedFrom": "ASCII",
"warnings": ["..."]
}
encoding is always the encoding actually written. source is bom,
fileOverride, patternOverride, detected, explicit (the encoding
parameter) or default (new file). previousEncoding is the encoding of the
existing file on disk. upgradedFrom and warnings appear only when the
encoding had to change. dryRun: true is echoed when set.
Encoding policy
Applies to write_text_file, write_text_files and edit_text_file:
- ASCII upgrade: a pure-ASCII file has no byte that reveals its codepage.
When non-ASCII characters are written to it, the file becomes Windows-1252
(the Delphi default) — never UTF-8 without BOM, which Delphi would misread as
ANSI (
øinstead ofø). The response reportsupgradedFrom: "ASCII"and a warning. Use an override,encodingorhasBom: trueto get UTF-8 with BOM instead. - Unrepresentable characters: if the target encoding cannot represent a
character (e.g. an emoji in Windows-1252), nothing is written. The error
response contains
unrepresentableChars(count) andsample; there is no silent?substitution. - Binary DFM guard: an existing Delphi form stored in binary format is never
overwritten with text unless
force: trueis given.read_text_fileandedit_text_filerefuse such files withformat: "binary-dfm".
edit_text_file
Edits a text file by search/replace or line-range replacement, preserving the
file's original encoding, BOM, and line-ending style. The
encoding policy applies. The edit is rejected with
reason: "modified" if another process changed the file between the read and
the write (see Concurrency).
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path to the file (must exist) |
oldText |
string | Text to find and replace. Leave empty for range mode. |
newText |
string | Replacement text (required) |
startLine |
integer | Optional: 1-based start line for range replacement |
endLine |
integer | Optional: 1-based end line (inclusive) for range replacement |
maxReplacements |
integer | Optional: max replacements (default 1). 0 = unlimited. |
dryRun |
boolean | Optional: if true, compute the result without writing to disk. |
edits |
array | Optional: array of atomic edits (see below). Overrides top-level oldText/newText. |
Modes:
- Search/replace: provide
oldText+newText. IfmaxReplacementsis 1 (default) and multiple matches exist, an error is returned with the match count. - Range replacement: provide
startLine+endLine+newTextwith emptyoldText. The line range is replaced entirely; an emptynewTextdeletes the lines including their line breaks.startLine= total lines + 1 appends at the end of the file; a largerstartLineis an error. A trailing line break innewTextdoes not add an extra blank line. - The two modes are mutually exclusive per edit:
oldTexttogether withstartLine/endLineis rejected instead of silently ignoring the range. - Multi-edit (atomic): provide an
editsarray. If any edit fails, nothing is written. Each item supportsoldText,newText,startLine,endLine,maxReplacements.
Line endings: oldText and newText may use \n; both are normalized to
the file's line-ending style before matching and inserting. For files with mixed
line endings the dominant style is used.
Multi-edit semantics:
- All line ranges refer to the original file, regardless of their order in the array. They are applied from the end of the file towards the beginning, so one range edit never shifts the line numbers of another.
- Overlapping ranges, and two edits appending at the same position, are rejected.
- Search/replace edits are applied afterwards, in array order, to the result of the range edits.
- If an
oldTextwould match a different number of times before and after the range edits, the order is ambiguous and the call is rejected. - Error messages that concern one specific edit are prefixed with
Edit N:. Errors about the call as a whole (overlapping ranges, emptyeditsarray) have no prefix.
Output (JSON in content[0].text):
{
"path": "...",
"encoding": "Windows-1252",
"hasBom": false,
"lineEnding": "CRLF",
"bytesWritten": 1234,
"replacements": 1,
"changed": true,
"diff": "@@ -1,3 +1,3 @@\n context\n-old line\n+new line\n context\n"
}
upgradedFrom and warnings are added when the encoding policy
changed the encoding; dryRun: true is echoed when set. replacements counts
search/replace matches that were replaced plus 1 for each range edit.
Diff format: the diff field is only present when changed is true. It is
a unified diff with 3 lines of context; nearby changes share one hunk, distant
changes get separate hunks (@@ -a,b +c,d @@), so unchanged lines between two
edits are not repeated. Diff lines are always separated by \n, whatever the
file's line endings — the file itself is written in its own style. A line whose
terminator differs from the file's style is marked with [LF], [CR] or
[CRLF], and a missing final line break is shown as
\ No newline at end of file.
read_text_files
Reads multiple files in a single call. Reduces MCP round-trips during
cross-file refactoring. Each file entry supports the same parameters as
read_text_file. Errors for individual files are reported inline without
aborting the batch.
| Parameter | Type | Description |
|---|---|---|
files |
array | Array of file specifications (see below) |
Each entry in files:
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path to the file (required) |
head |
integer | Optional: first N lines |
tail |
integer | Optional: last N lines |
startLine |
integer | Optional: 1-based start line |
endLine |
integer | Optional: 1-based end line (inclusive) |
contextLines |
integer | Optional: extra context lines |
metadataOnly |
boolean | Optional: skip content |
searchText |
string | Optional: case-insensitive line search |
Output (JSON in content[0].text):
{
"totalFiles": 3,
"succeeded": 2,
"failed": 1,
"results": [
{ "path": "...", "encoding": "UTF-8", "content": "...", ... },
{ "path": "...", "encoding": "Windows-1252", "content": "...", ... },
{ "path": "...", "error": "File not found: ..." }
]
}
write_text_files
Writes multiple files in a single call with encoding-aware conversion. Each file entry can specify its own encoding, lineEnding, and hasBom options. Errors for individual files are reported inline without aborting the batch.
| Parameter | Type | Description |
|---|---|---|
files |
array | Array of file specifications (see below) |
Each entry in files:
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path to the file (required) |
content |
string | UTF-8 content to write (required) |
encoding |
string | Optional: target encoding (UTF-8, Windows-1252, etc.) |
lineEnding |
string | Optional: CRLF, LF, or CR |
hasBom |
boolean | Optional: write a BOM |
createIfMissing |
boolean | Optional (default true): create if not exists |
dryRun |
boolean | Optional: report the result of the write without writing |
force |
boolean | Optional (default false): allow replacing a binary DFM with text |
Output (JSON in content[0].text):
{
"totalFiles": 2,
"succeeded": 2,
"failed": 0,
"results": [
{ "path": "...", "encoding": "UTF-8", "bytesWritten": 123, "created": true, ... },
{ "path": "...", "encoding": "Windows-1252", "bytesWritten": 456, "created": false, ... }
]
}
list_files
Lists files in a directory recursively, optionally filtered by glob pattern. Returns relative paths from the specified directory.
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path to the directory to list (must be within workspace) |
pattern |
string | Optional: glob pattern to filter files (e.g. *.c, *.sql, *.pas) |
Lock and temporary files of writes in progress (*.lock, *.<pid>-<guid>.tmp)
are never listed.
Output (JSON in content[0].text):
{
"path": "C:/Projects/MyApp",
"totalFiles": 12,
"files": ["src/legacy.c", "scripts/report.sql", "config.ini", "Forms/Main.pas", ...]
}
detect_encoding
Analyses the whole file (no size limit) with exactly the same resolution as
read_text_file (BOM, overrides, detection), so both tools always report the
same encoding. Returns format, encoding, hasBom, confidence,
lineEnding, source, bytesRead and the candidate scores, plus
writeRecommendation/note for pure-ASCII files. A binary DFM is reported
with format: "binary-dfm" and a note instead of an encoding.
| Parameter | Type |
|---|---|
path |
string |
set_encoding_override
Sets or removes a manual encoding override for one file or for a pattern.
| Parameter | Type | Description |
|---|---|---|
path |
string | Absolute path of a single file (either path or pattern) |
pattern |
string | File-name pattern (*.pas) or path pattern relative to the workspace root (src/**/*.dfm) |
directory |
string | Optional, pattern only: a directory inside the workspace that selects the workspace root. Defaults to the first workspace root. |
encoding |
string | Encoding to apply. Required unless remove is true. |
remove |
boolean | If true, remove the override instead of setting it |
- Patterns without
/match the file name in any folder. Patterns with/match the path relative to the workspace root and support*,?and**. Other glob syntax is rejected with an error instead of being accepted silently. - Pattern overrides are stored in the outermost sidecar and therefore apply
to the whole repository, including subfolders with their own
.dproj. A matching pattern in a nearer sidecar takes precedence. - With
remove, a pattern is removed from every sidecar betweendirectoryand the outermost root; the response lists them inremovedFrom. - Overrides take precedence over detection, but a BOM always wins.
- The response contains
sidecar,root,matchesandappliesTo, so it is clear where the override was stored and which files it covers.
EncodingMCP MCP 질문
EncodingMCP MCP는 어떤 도구를 제공하나요?
11개 도구를 제공합니다. 예: path, head, tail, content, encoding.
어떤 인코딩을 지원하나요?
Windows-1252, ISO-8859-x, UTF-16을 포함한 광범위한 인코딩을 지원하며, BOM, 엄격한 UTF-8 검증 또는 코드페이지 휴리스틱을 통해 인코딩을 감지합니다.
Windows가 아닌 시스템에서도 작동하나요?
아니요, 이 MCP server는 독립형 Windows x64 실행 파일입니다.
파일 인코딩 감지는 어떻게 처리하나요?
BOM, 엄격한 UTF-8 검증 및 코드페이지 휴리스틱을 사용하여 인코딩을 감지하며, .encoding-mcp.json 사이드카 파일을 통해 파일별 인코딩을 기억할 수 있습니다.