LABSCO SUMMARY
A fork whose entire reason to exist is encoding.
If your documents are plain ASCII this gives you nothing the original doesn't; if they aren't, it is the difference between usable Markdown and mojibake — the Windows console encoding failures are fixed, and metadata extraction and formatting survive the conversion. It also adds batch processing, so a list of URLs and file paths can go through in one pass.
What it is
A fork of the Markdownify server rebuilt around UTF-8 handling: it converts documents, media and web content to Markdown, and keeps Chinese, Japanese, Korean and other non-ASCII characters through the whole pipeline.
What you get
- Documents to Markdown — PDF, DOCX, XLSX and PPTX
- Images with their metadata, and audio with a transcription
- Web content — general pages, search results and YouTube video transcripts, from a URL
- Multilingual text that survives the round trip, including on Windows cmd.exe and PowerShell
- Error messages in English and Chinese, and fallbacks when a conversion fails part way
Requirements
Node.js 16.0 or higher, Python 3.8 or higher, pnpm and Git. Build with pnpm install then pnpm run build, and point your client at dist/index.js with UV_PATH set to your uv binary. On Windows, set PYTHONIOENCODING to UTF-8 and run chcp 65001 first.
Setup effort
Build from source — git clone https://github.com/JDJR2024/markdownify-mcp-utf8.git
USE CASES
Getting a Chinese or Japanese PDF into text you can work with
Convert the file to Markdown with the original characters intact rather than replacement boxes.
Reading a YouTube video without watching it
Hand over the watch URL and get the transcript back as Markdown.
Turning a folder of Office documents into one corpus
List the files, then run them through in a batch instead of converting one at a time.
Pulling a web page into the conversation cleanly
Convert the page to Markdown so the assistant reads the content, not the navigation chrome.
BEFORE YOU INSTALL
What to know first
Requires
- Node.js 16.0 or higher
- Python 3.8 or higher
- pnpm
- Git
- uv — ./setup.sh installs it; its absolute path goes in UV_PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/JDJR2024/markdownify-mcp-utf8.git
cd markdownify-mcp-utf8
pnpm install
./setup.sh
pnpm run buildMCP Clients
Any MCP client
{
"mcpServers": {
"markdownify": {
"command": "node",
"args": [
"<YOUR_ABSOLUTE_PATH>/dist/index.js"
],
"env": {
"UV_PATH": "<YOUR_UV_PATH>"
}
}
}
}<YOUR_ABSOLUTE_PATH> is the full path of the markdownify-mcp-utf8 folder the clone created (pnpm run build puts dist/index.js there), and <YOUR_UV_PATH> is the full path of the uv binary that ./setup.sh installs.