Document Converter

io.github.Zahid-Abbas-Ali-Baig由 GitHub 帳號 Zahid-Abbas-Ali-Baig 發布v1.0.0更新於 Oct 25, 2026

Convert documents to Markdown using MarkItDown

已驗證STDIO僅桌面檔案與儲存媒體與設計

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,將 PDF、Office 檔案、試算表、郵件、音訊和 YouTube 連結轉成 Markdown,方便助理閱讀與摘要。

可以做什麼
將本機檔案或支援的連結轉成 Markdown 並存到來源檔案旁,YouTube 連結則存成 youtube-{id}.md(convert_to_markdown)。只在聊天回覆中預覽轉換後的 Markdown,不寫入磁碟(preview_markdown)。支援 PDF、docx、pptx、xlsx/xls、Outlook .msg、HTML、CSV、文字/JSON、筆記本、epub、zip 壓縮檔、mp3/wav/m4a 音訊以及 YouTube 觀看連結。
適用情境
適合助理需要讀取無法直接開啟的二進位或辦公文件時,例如摘要 PDF 報告、審閱 docx 或 pptx 草稿、把 Excel 匯出轉成表格、從 .msg 郵件擷取待辦事項、轉寫音訊,或把 YouTube 字幕整理成可編輯的 Markdown。
執行需求
以 stdio 在本機執行,僅支援桌面用戶端。需要 uv/uvx(或含 markitdown 擴充套件的 Python 虛擬環境),使用 uvx 安裝時還需要 PATH 中有 Git。轉換 YouTube 需要網路連線。未宣告帳號、API 金鑰或環境變數。
安裝前請注意
convert_to_markdown 會在來源檔案旁寫入 .md 檔案(YouTube 連結則寫入伺服器工作目錄),請只對允許寫入的位置使用;preview_markdown 不寫檔案。檔案在本機處理,但 YouTube 連結會透過網路取得。轉換品質取決於來源檔案與 MarkItDown 版本。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Document Converter,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

📄 Document Converter MCP

Convert documents to Markdown inside Cursor, VS Code, and any MCP client.
Local processing · No cloud upload · Powered by MarkItDown

[MIT License] [Python 3.10+] [MCP Registry]

Give your AI assistant the ability to read PDFs, Office files, spreadsheets, emails, audio, and more as clean Markdown — so it can summarize, search, and reason over content instead of struggling with binary attachments.


Table of contents


Overview 📋

Document Converter MCP is a lightweight stdio server that wraps Microsoft's MarkItDown library for the Model Context Protocol.

mermaid
flowchart LR  A[Your file on disk] --> B[Document Converter MCP]  B --> C[MarkItDown]  C --> D[Markdown in chat or .md file]
Registryio.github.Zahid-Abbas-Ali-Baig/document-converter
Repositoryhttps://github.com/Zahid-Abbas-Ali-Baig/document-converter
Transportstdio
AuthorZahid Abbas Ali Baig
Dependenciesmarkitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]

Once connected, your agent converts files locally and returns structured text — nothing is sent to a conversion API.


Use cases 💡

ScenarioWhat you gain
ResearchTurn PDF papers into Markdown, then ask for summaries, comparisons, or citations
DocumentationConvert .docx / .pptx drafts into .md beside the source for wikis or Git
Product & engineeringPreview specs and slide decks in chat before writing tickets or release notes
Data & opsConvert Excel exports into tables the model can filter, explain, or transform
Email & archivesExtract text from .msg Outlook files or ZIP contents without manual copy-paste
MediaTranscribe .mp3 / .wav or fetch YouTube captions into editable Markdown

Features ✨

  • 🏠 Local-first — files stay on your machine; no third-party conversion service
  • 📎 Broad format coverage — PDF, Office, CSV/JSON/text, Outlook .msg, audio, YouTube, and more (via MarkItDown)
  • 🔀 Two workflows — save Markdown next to the source, or preview in chat only
  • 📋 Copy-paste setup — step-by-step install for Cursor, VS Code, and Claude Desktop
  • 📦 Registry published — listed on the official MCP Registry
  • ⚖️ MIT licensed — free for personal and commercial use

Supported formats 📎

Formats below are verified against MarkItDown 0.1.6 with our installed extras:

markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]

We avoid markitdown[all] because it pulls Azure pre-release packages that uv cannot resolve with uvx.

Fully supported (with this project's dependencies)

CategoryExtensions / inputsWhat you get
PDF.pdfText and layout extraction ([pdf] extra)
Word.docx onlyHeadings, paragraphs, tables ([docx] — not legacy .doc)
PowerPoint.pptx onlySlide text and structure ([pptx] — not legacy .ppt)
Excel.xlsx, .xlsWorkbook tables ([xlsx] / [xls])
Outlook.msgHeaders, body, metadata ([outlook])
Web.html, .htmHTML → Markdown (built-in)
CSV.csvMarkdown tables (built-in)
Text & JSON.txt, .md, .json, .jsonlPlain text / JSON content (built-in)
Notebooks.ipynbNotebook cells as Markdown (built-in)
E-books.epubChapter HTML → Markdown (built-in)
Archives.zipEach inner file converted if its type is supported (built-in)
Audio.mp3, .wav, .m4aMetadata + speech transcription ([audio-transcription])
YouTubehttps://www.youtube.com/watch?v=...Title, description, captions when available ([youtube-transcription])

Limited support

CategoryExtensionsReality
Images.jpg, .jpeg, .png onlyEXIF metadata if exiftool is on your PATH; no built-in OCR in this MCP server (MarkItDown can describe images only when an LLM client is configured, which we do not set up)
XML.xmlMay work as plain text depending on file detection — not a dedicated XML parser
Other URLsWikipedia, RSS, Bing SERPMarkItDown can fetch some web URLs; not tested as part of this MCP

Not supported

ItemWhy
.emlNo MarkItDown converter for RFC 822 .eml files
.gif, .webp, .bmp, …Image converter only accepts .jpg / .jpeg / .png
Legacy Office.doc, .ppt — use .docx / .pptx
Video files.mp4 etc. — not converted as video (audio track may work in some cases via the audio converter)
Azure Document IntelligenceNeeds markitdown[az-doc-intel] + Azure endpoint
Azure Content UnderstandingPre-release package; breaks uvx resolution
markitdown[all]Bundles the Azure extras above

Conversion quality depends on the source file. See the MarkItDown documentation for upstream details.


Quick install 🚀

Follow the steps for your editor. Every config below uses the same command — only the JSON file and wrapper key differ.

Before you start (all editors)

  1. Install uv (includes uvx).

    Windows (PowerShell):

    powershell
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

    macOS / Linux:

    bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Verify uvx works (open a new terminal after installing):

    bash
    uvx --version
  3. Optional — test the server (it will sit idle with no output; that is normal for stdio MCP):

    bash
    uvx --from git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter --with markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription] document-converter-mcp

    Press Ctrl+C to stop.


Install in Cursor 🖱️

  1. Open Cursor → Settings → MCP (or edit your config file directly).
  2. Config file location:
    • Windows: %USERPROFILE%\.cursor\mcp.json
    • macOS: ~/.cursor/mcp.json
    • Linux: ~/.cursor/mcp.json
    • Project-only: .cursor/mcp.json in your project folder
  3. Add or merge this block inside mcpServers (copy the whole JSON):
json
{  "mcpServers": {    "document-converter": {      "command": "uvx",      "args": [        "--from",        "git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter",        "--with",        "markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]",        "document-converter-mcp"      ]    }  }}
  1. Save the file and restart Cursor (or click Reload next to MCP in settings).
  2. Check: Settings → MCP → document-converter should show enabled (green). Tools: convert_to_markdown, preview_markdown.
Cursor one-click install (optional — if manual JSON fails, use this)
  1. Open this link in your browser: Add to Cursor
  2. Or paste into the browser address bar:
cursor://anysphere.cursor-deeplink/mcp/install?name=document-converter&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnaXQraHR0cHM6Ly9naXRodWIuY29tL1phaGlkLUFiYmFzLUFsaS1CYWlnL2RvY3VtZW50LWNvbnZlcnRlciIsIi0td2l0aCIsIm1hcmtpdGRvd25bcGRmLGRvY3gscHB0eCx4bHN4LHhscyxvdXRsb29rLGF1ZGlvLXRyYW5zY3JpcHRpb24seW91dHViZS10cmFuc2NyaXB0aW9uXSIsImRvY3VtZW50LWNvbnZlcnRlci1tY3AiXX0%3D
  1. Click Install in Cursor, then restart if tools do not appear.

Install in VS Code 💻

Requires VS Code 1.102+ with built-in MCP support.

Do not paste vscode://mcp/install?... anywhere. That link is broken in VS Code and creates servers like my-mcp-server-* with spawn vscode://... ENOENT. Use the JSON below.

Method A — Copy-paste user config (recommended)
  1. Ctrl+Shift+P → MCP: Open User Configuration
  2. Delete any broken servers where "command" starts with vscode:// (e.g. my-mcp-server-15e7e771).
  3. Replace the file contents with (or merge servers into your existing file):
json
{  "servers": {    "document-converter": {      "type": "stdio",      "command": "uvx",      "args": [        "--from",        "git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter",        "--with",        "markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]",        "document-converter-mcp"      ]    }  }}
  1. Save, then Ctrl+Shift+P → MCP: List Servers → start document-converter.

If you get uvx not found (ENOENT): run where uvx (Windows) or which uvx (macOS/Linux) and set "command" to the full path:

json
"command": "C:\\Users\\YOUR_USER\\.local\\bin\\uvx.exe"
Method B — Open this repo in VS Code
  1. git clone https://github.com/Zahid-Abbas-Ali-Baig/document-converter.git
  2. File → Open Folder → select document-converter
  3. VS Code loads .vscode/mcp.json automatically
  4. Ctrl+Shift+P → MCP: List Servers → start document-converter
Method C — Add Server wizard

Ctrl+Shift+P → MCP: Add Server → choose stdio, then enter:

FieldValue
Commanduvx
Arg 1--from
Arg 2git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter
Arg 3--with
Arg 4markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]
Arg 5document-converter-mcp

Install in Claude Desktop 🤖

  1. Open Claude Desktop config:

    • Windows (Microsoft Store): %LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\claude_desktop_config.json
    • Windows (classic): %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    On Windows Store Claude, %APPDATA%\Claude\ may not exist — use the Packages\Claude_*\... path above.

  2. Windows (Microsoft Store) — one-time setup so uvx --from git+... can find Git (Claude passes a minimal PATH to MCP servers):

    powershell
    powershell -ExecutionPolicy Bypass -File scripts/setup-windows-uvx-git-shim.ps1

    Or download and run that script from the repo. It creates %USERPROFILE%\.local\bin\git.cmd pointing at Git for Windows.

  3. Add inside mcpServers (keep existing preferences at the root):

json
{  "mcpServers": {    "document-converter": {      "command": "uvx",      "args": [        "--from",        "git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter",        "--with",        "markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]",        "document-converter-mcp"      ]    }  }}

If you get uvx not found (ENOENT): set "command" to the full path from where uvx, e.g. C:\\Users\\YOUR_USER\\.local\\bin\\uvx.exe.

  1. Restart Claude Desktop completely (quit from tray, reopen).

Verify it works ✅

Ask your AI assistant:

List the tools from document-converter MCP.

Or:

Preview markdown for a PDF on my machine at C:\path\to\file.pdf

You should see convert_to_markdown and preview_markdown being called.


Tools 🛠️

ToolDescriptionWrites to disk
convert_to_markdownConverts a file or URL to Markdown and saves output (.md beside source, or youtube-{id}.md for YouTube URLs)Yes
preview_markdownReturns Markdown in the chat response onlyNo

Input: absolute or relative path to a file on your machine (or a supported URL for YouTube).

Output: Markdown text suitable for summarization, diffing, or committing to Git.


Usage examples 💬

Natural-language prompts you can paste into Cursor, VS Code, or Claude Desktop after the MCP server is connected.

Convert a PDF and summarize

Prompt:

Use document-converter to convert C:\Reports\annual-report.pdf to markdown,then give me a 5-bullet executive summary.

What happens: The agent calls convert_to_markdown, creates annual-report.md next to the PDF, and summarizes the result.


Preview a Word doc before saving

Prompt:

Preview markdown for ./contracts/vendor-agreement.docx without saving.Tell me if there is a termination clause.

What happens: The agent calls preview_markdown, reads the content in chat, and answers your question — no file is written.


Excel to analysis

Prompt:

Convert D:\data\sales-q1.xlsx to markdown and list the top 3 products by revenue.

What happens: Spreadsheet tables become Markdown the model can parse and rank.


PowerPoint for release notes

Prompt:

Preview ./slides/product-launch.pptx as markdown and draft release notesfrom the slide titles and bullet points.

Outlook email extraction

Prompt:

Convert C:\Mail\customer-escalation.msg to markdown and extract action items.

Batch-style workflow (multiple files)

Prompt:

Convert these to markdown and save beside each file:- C:\Docs\spec-v2.pdf- C:\Docs\api-reference.docx- C:\Docs\metrics.xlsxThen confirm the .md paths.

Audio transcription

Prompt:

Preview markdown for ./recordings/standup-notes.mp3 and list decisions made.

Requires the audio-transcription extra (included in this project's dependencies).


YouTube URL

Prompt (preview in chat):

Use preview_markdown on https://www.youtube.com/watch?v=EXAMPLE and summarize the main points.

Prompt (save to file):

Use convert_to_markdown on https://www.youtube.com/watch?v=EXAMPLE

What happens: MarkItDown fetches the watch page, extracts title/description/metadata, and appends captions via youtube-transcript-api when available. convert_to_markdown saves youtube-EXAMPLE.md in the server working directory.

Use https://www.youtube.com/watch?v=... format. Requires the youtube-transcription extra and an internet connection.


Example Markdown output (PDF)

Illustrative snippet after conversion:

markdown
# Quarterly Results
Revenue increased 12% year over year driven by enterprise subscriptions.
## Highlights
- Net retention: 118%- New logos: 240- Gross margin: 74%

Quality depends on the source document layout and MarkItDown version.


Local development 🧪

Clone if you prefer a local virtual environment over uvx.

bash
git clone https://github.com/Zahid-Abbas-Ali-Baig/document-converter.gitcd document-converterpython -m venv .venv

Windows (PowerShell):

powershell
.venv\Scripts\activatepip install -r requirements.txt

macOS / Linux:

bash
source .venv/bin/activatepip install -r requirements.txt

Run the server directly (stdio — used by MCP clients):

bash
python server.py

Configuration reference ⚙️

All clients run the same underlying command (full JSON examples are in Quick install 🚀 — not repeated here):

PartValue
Commanduvx
Arg 1--from
Arg 2git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter
Arg 3--with
Arg 4markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]
Arg 5document-converter-mcp

Config file locations

ClientFileJSON root key
Cursor%USERPROFILE%\.cursor\mcp.json or .cursor/mcp.jsonmcpServers
VS CodeUser MCP config or .vscode/mcp.jsonservers (+ "type": "stdio")
Claude Desktopclaude_desktop_config.jsonmcpServers

Copy-paste configs: Quick install 🚀.

Local clone (no uvx)

Clone and install — see Local development 🧪. Then point your MCP client at the venv Python:

Windows:

json
{  "mcpServers": {    "document-converter": {      "command": "REPO_PATH\\.venv\\Scripts\\python.exe",      "args": ["REPO_PATH\\server.py"]    }  }}

macOS / Linux:

json
{  "mcpServers": {    "document-converter": {      "command": "REPO_PATH/.venv/bin/python",      "args": ["REPO_PATH/server.py"]    }  }}

MCP Registry 📦

Listed on the official MCP Registry as io.github.Zahid-Abbas-Ali-Baig/document-converter (v1.0.0).


Troubleshooting 🔧

Dependency resolution / markitdown[all] errors

If you see errors about azure-ai-contentunderstanding or pre-releases, remove markitdown[all] from your config. Use:

markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]

VS Code: spawn vscode://mcp/install?... ENOENT

VS Code's install link wrote the URL as the command instead of uvx. Fix:

  1. MCP: Open User Configuration (or .vscode/mcp.json in this repo)
  2. Delete entries like my-mcp-server-* where "command" starts with vscode://
  3. Use .vscode/mcp.json from this repo, or the JSON in Install in VS Code 💻
  4. MCP: List Servers → restart document-converter

Do not use the README vscode://mcp/install?... link — it is unreliable in VS Code.

Claude Desktop: Git executable not found

uvx --from git+... needs Git on PATH. Microsoft Store Claude on Windows often spawns MCP servers with a minimal PATH that omits C:\Program Files\Git\cmd, even when Git works in a normal terminal.

Fix: run the one-time shim script from Install in Claude Desktop 🤖 (step 2). It places git.cmd next to uvx.exe in %USERPROFILE%\.local\bin.

Also ensure: Git for Windows and uv are installed. Pre-warm in PowerShell: uvx --from git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter --with markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription] document-converter-mcp (idle = normal for stdio).

Fallback: Local clone (no uvx) if you cannot use uvx.

Failed to acquire MessagePort

This comes from Cursor or VS Code, not this server:

[MCPService] Error creating client: Failed to acquire MessagePort ...
StepAction
1Fully quit the editor, then reopen
2Install uv for uvx installs
3Test: uvx --from git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter --with markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription] document-converter-mcp (idle = normal for stdio)
4Use Local clone (no uvx) if uvx fails
5Settings → MCP → remove and re-add the server
6Update Cursor/VS Code to the latest version

Reliable fallback: follow Local development 🧪 and use the local clone MCP config.

Install button does nothing (Cursor on Windows)

Use the copy-paste JSON in Install in Cursor 🖱️ instead of the install badge.

Tools not visible

Reload MCP or restart the editor. Confirm the server is enabled (not red/disabled).


License 📜

MIT License — see LICENSE.

Copyright (c) 2026 Zahid Abbas Ali Baig

來源:README.md,提交 1395c3e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分