Markdownify MCP Server
About
Integrates with the markitdown library to convert various document formats including PDF, Word, and HTML to standardized Markdown, enabling efficient document processing and format unification.
Details
- Author
- jdjr2024
- Repository
- JDJR2024/markdownify-mcp-utf8
- GitHub stars
- 6
- Downloads
- 191
- License
- MIT License
- Categories
- Productivity, Other, Design, Workplace, Developer Tools, File Management, Infrastructure, Frontend, AI
- Tags
- #document, #file-conversion
Jump to
Supports converting various file types to Markdown:
- PDF files
- Images (with metadata)
- Audio (with transcription)
- Word documents (DOCX)
- Excel spreadsheets (XLSX)
- PowerPoint presentations (PPTX)
- Web content:
- YouTube video transcripts
- Search results
- General web pages
- Existing Markdown files
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Markdownify MCP ServerCommand (node, npx, python, etc.)nodeArguments-
Argument 1
{ABSOLUTE_PATH}/dist/index.js
Environment-
UV_PATH
/path/to/uv
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Install Node.js:
- Download from Node.js official website
- Verify installation: node --version
2. Install pnpm:
npm install -g pnpm
pnpm --version
3. Install Python:
- Download from Python official website
- Ensure Python is added to PATH during installation
- Verify installation: python --version
4. (Windows Only) Configure UTF-8 Support:
1. Clone the repository:
bashgit clone https://github.com/JDJR2024/markdownify-mcp-utf8.git
cd markdownify-mcp-utf8
2. Create and activate Python virtual environment:
bash
pnpm install
./setup.sh
4. Build the project:
bashpnpm run build
1. Converting Web Pages:
bashpython convert_utf8.py "https://example.com"
The converted markdown will be saved as converted_result.md
2. Converting Local Files:
bash
1. Environment Variables:
```bash
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"markdownify mcp server": {
"env": {
"UV_PATH": "/path/to/uv"
},
"args": [
"{ABSOLUTE_PATH}/dist/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"UV_PATH": "/path/to/uv"
},
"args": [
"{ABSOLUTE_PATH}/dist/index.js"
],
"command": "node"
}
Macos
{
"env": {
"UV_PATH": "/path/to/uv"
},
"args": [
"{ABSOLUTE_PATH}/dist/index.js"
],
"command": "node"
}
Windows
{
"env": {
"UV_PATH": "/path/to/uv"
},
"args": [
"{ABSOLUTE_PATH}/dist/index.js"
],
"command": "node"
}
Markdownify MCP Server - UTF-8 Enhanced
This is an enhanced version of the original Markdownify MCP project, with improved UTF-8 encoding support and optimized handling of multilingual content.
Enhancements
- Added comprehensive UTF-8 encoding support
- Optimized handling of multilingual content
- Fixed encoding issues on Windows systems
- Improved error handling mechanisms
Key Differences from Original Project
1. Enhanced Encoding Support:
- Full UTF-8 support across all operations
- Proper handling of Chinese, Japanese, Korean and other non-ASCII characters
- Fixed Windows-specific encoding issues (cmd.exe and PowerShell compatibility)
2. Improved Error Handling:
- Detailed error messages in both English and Chinese
- Better exception handling for network issues
- Graceful fallback mechanisms for conversion failures
3. Extended Functionality:
- Added support for batch processing multiple files
- Enhanced YouTube video transcript handling
- Improved metadata extraction from various file formats
- Better preservation of document formatting
4. Performance Optimizations:
- Optimized memory usage for large file conversions
- Faster processing of multilingual content
- Reduced dependency conflicts
5. Better Development Experience:
- Comprehensive debugging options
- Detailed logging system
- Environment-specific configuration support
- Clear documentation in both English and Chinese
Features
Supports converting various file types to Markdown:
- PDF files
- Images (with metadata)
- Audio (with transcription)
- Word documents (DOCX)
- Excel spreadsheets (XLSX)
- PowerPoint presentations (PPTX)
- Web content:
- YouTube video transcripts
- Search results
- General web pages
- Existing Markdown files
Quick Start
1. Clone this repository:
git clone https://github.com/JDJR2024/markdownify-mcp-utf8.git
cd markdownify-mcp-utf8
2. Install dependencies:
pnpm install
Note: This will also install
uv and related Python dependencies.
3. Build the project:
pnpm run build
4. Start the server:
pnpm start
Requirements
- Node.js 16.0 or higher
- Python 3.8 or higher
- pnpm package manager
- Git
Detailed Installation Guide
1. Environment Setup
1. Install Node.js:
- Download from Node.js official website
- Verify installation: node --version
2. Install pnpm:
npm install -g pnpm
pnpm --version
3. Install Python:
- Download from Python official website
- Ensure Python is added to PATH during installation
- Verify installation: python --version
4. (Windows Only) Configure UTF-8 Support:
# Set system-wide UTF-8
setx PYTHONIOENCODING UTF-8
# Set current session UTF-8
set PYTHONIOENCODING=UTF-8
# Enable UTF-8 in command prompt
chcp 65001
2. Project Setup
1. Clone the repository:
git clone https://github.com/JDJR2024/markdownify-mcp-utf8.git
cd markdownify-mcp-utf8
2. Create and activate Python virtual environment:
# Windows
python -m venv .venv
.venv\Scripts\activate
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activate
3. Install project dependencies:
# Install Node.js dependencies
pnpm install
# Install Python dependencies (will be handled by setup.sh)
./setup.sh
4. Build the project:
pnpm run build
3. Verification
1. Start the server:
pnpm start
2. Test the installation:
# Convert a web page
python convert_utf8.py "https://example.com"
# Convert a local file
python convert_utf8.py "path/to/your/file.docx"
Usage Guide
Basic Usage
1. Converting Web Pages:
python convert_utf8.py "https://example.com"
The converted markdown will be saved as
converted_result.md
2. Converting Local Files:
# Convert DOCX
python convert_utf8.py "document.docx"
# Convert PDF
python convert_utf8.py "document.pdf"
# Convert PowerPoint
python convert_utf8.py "presentation.pptx"
# Convert Excel
python convert_utf8.py "spreadsheet.xlsx"
3. Converting YouTube Videos:
python convert_utf8.py "https://www.youtube.com/watch?v=VIDEO_ID"
Advanced Usage
1. Environment Variables:
# Set custom UV path
export UV_PATH="/custom/path/to/uv"
# Set custom output directory
export MARKDOWN_OUTPUT_DIR="/custom/output/path"
2. Batch Processing:
Create a batch file (e.g., convert_batch.txt) with URLs or file paths:
https://example1.com
https://example2.com
file1.docx
file2.pdf
Then run:
while read -r line; do python convert_utf8.py "$line"; done < convert_batch.txt
Troubleshooting
1. Common Issues:
- If you see encoding errors, ensure UTF-8 is properly set
- For permission issues on Windows, run as Administrator
- For Python path issues, ensure virtual environment is activated
2. Debugging:
# Enable debug output
export DEBUG=true
python convert_utf8.py "your_file.docx"
Usage
Command Line
Convert web page to Markdown:
python convert_utf8.py "https://example.com"
Convert local file:
python convert_utf8.py "path/to/your/file.docx"
Desktop App Integration
To integrate this server with a desktop app, add the following to your app's server configuration:
{
"mcpServers": {
"markdownify": {
"command": "node",
"args": [
"{ABSOLUTE_PATH}/dist/index.js"
],
"env": {
"UV_PATH": "/path/to/uv"
}
}
}
}
Troubleshooting
1. Encoding Issues
- If you encounter character encoding issues, ensure the PYTHONIOENCODING environment variable is set to utf-8
- Windows users may need to run chcp 65001 to enable UTF-8 support
2. Permission Issues
- Ensure you have sufficient file read/write permissions
- On Windows, you may need to run as administrator
Acknowledgments
This project is based on the original work by Zach Caceres. Thanks to the original author for their outstanding contribution.
License
This project continues to be licensed under the MIT License. See the LICENSE file for details.
Contributing
Contributions are welcome! Before submitting a Pull Request, please:
1. Ensure your code follows the project's coding standards
2. Add necessary tests and documentation
3. Update relevant sections in the README
Contact
For issues or suggestions:
1. Submit an Issue: https://github.com/JDJR2024/markdownify-mcp-utf8/issues
2. Create a Pull Request: https://github.com/JDJR2024/markdownify-mcp-utf8/pulls
3. Email: jdidndosmmxmx@gmail.com 29:["$",
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




