{
  "markdown": "# 📄 Document Converter MCP\n\n<p align=\"center\">\n  <strong>Convert documents to Markdown inside Cursor, VS Code, and any MCP client.</strong><br>\n  Local processing · No cloud upload · Powered by <a href=\"https://github.com/microsoft/markitdown\">MarkItDown</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"MIT License\"></a>\n  <a href=\"https://www.python.org/downloads/\"><img src=\"https://img.shields.io/badge/python-3.10+-blue.svg\" alt=\"Python 3.10+\"></a>\n  <a href=\"https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Zahid-Abbas-Ali-Baig%2Fdocument-converter/versions/1.0.0\"><img src=\"https://img.shields.io/badge/MCP-Registry-green.svg\" alt=\"MCP Registry\"></a>\n</p>\n\nGive 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.\n\n---\n\n## Table of contents\n\n- [Overview 📋](#overview-)\n- [Use cases 💡](#use-cases-)\n- [Features ✨](#features-)\n- [Supported formats 📎](#supported-formats-)\n- [Quick install 🚀](#quick-install-)\n  - [Before you start](#before-you-start-all-editors)\n  - [Cursor 🖱️](#install-in-cursor)\n  - [VS Code 💻](#install-in-vs-code)\n  - [Claude Desktop 🤖](#install-in-claude-desktop)\n  - [Verify it works ✅](#verify-it-works)\n- [Tools 🛠️](#tools-)\n- [Usage examples 💬](#usage-examples-)\n- [Local development 🧪](#local-development-)\n- [Configuration reference ⚙️](#configuration-reference-)\n- [MCP Registry 📦](#mcp-registry-)\n- [Troubleshooting 🔧](#troubleshooting-)\n- [License 📜](#license-)\n\n---\n\n## Overview 📋\n\n**Document Converter MCP** is a lightweight stdio server that wraps Microsoft's [MarkItDown](https://github.com/microsoft/markitdown) library for the [Model Context Protocol](https://modelcontextprotocol.io).\n\n```mermaid\nflowchart LR\n  A[Your file on disk] --> B[Document Converter MCP]\n  B --> C[MarkItDown]\n  C --> D[Markdown in chat or .md file]\n```\n\n| | |\n|---|---|\n| **Registry** | [`io.github.Zahid-Abbas-Ali-Baig/document-converter`](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Zahid-Abbas-Ali-Baig%2Fdocument-converter/versions/1.0.0) |\n| **Repository** | [https://github.com/Zahid-Abbas-Ali-Baig/document-converter](https://github.com/Zahid-Abbas-Ali-Baig/document-converter) |\n| **Transport** | stdio |\n| **Author** | Zahid Abbas Ali Baig |\n| **Dependencies** | `markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]` |\n\nOnce connected, your agent converts files locally and returns structured text — nothing is sent to a conversion API.\n\n---\n\n## Use cases 💡\n\n| Scenario | What you gain |\n|----------|----------------|\n| **Research** | Turn PDF papers into Markdown, then ask for summaries, comparisons, or citations |\n| **Documentation** | Convert `.docx` / `.pptx` drafts into `.md` beside the source for wikis or Git |\n| **Product & engineering** | Preview specs and slide decks in chat before writing tickets or release notes |\n| **Data & ops** | Convert Excel exports into tables the model can filter, explain, or transform |\n| **Email & archives** | Extract text from `.msg` Outlook files or ZIP contents without manual copy-paste |\n| **Media** | Transcribe `.mp3` / `.wav` or fetch YouTube captions into editable Markdown |\n\n---\n\n## Features ✨\n\n- 🏠 **Local-first** — files stay on your machine; no third-party conversion service\n- 📎 **Broad format coverage** — PDF, Office, CSV/JSON/text, Outlook `.msg`, audio, YouTube, and more (via MarkItDown)\n- 🔀 **Two workflows** — save Markdown next to the source, or preview in chat only\n- 📋 **Copy-paste setup** — step-by-step install for Cursor, VS Code, and Claude Desktop\n- 📦 **Registry published** — listed on the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Zahid-Abbas-Ali-Baig%2Fdocument-converter/versions/1.0.0)\n- ⚖️ **MIT licensed** — free for personal and commercial use\n\n---\n\n## Supported formats 📎\n\nFormats below are verified against [MarkItDown](https://github.com/microsoft/markitdown) **0.1.6** with our installed extras:\n\n`markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]`\n\nWe avoid `markitdown[all]` because it pulls Azure pre-release packages that `uv` cannot resolve with `uvx`.\n\n### Fully supported (with this project's dependencies)\n\n| Category | Extensions / inputs | What you get |\n|----------|---------------------|--------------|\n| **PDF** | `.pdf` | Text and layout extraction (`[pdf]` extra) |\n| **Word** | `.docx` only | Headings, paragraphs, tables (`[docx]` — not legacy `.doc`) |\n| **PowerPoint** | `.pptx` only | Slide text and structure (`[pptx]` — not legacy `.ppt`) |\n| **Excel** | `.xlsx`, `.xls` | Workbook tables (`[xlsx]` / `[xls]`) |\n| **Outlook** | `.msg` | Headers, body, metadata (`[outlook]`) |\n| **Web** | `.html`, `.htm` | HTML → Markdown (built-in) |\n| **CSV** | `.csv` | Markdown tables (built-in) |\n| **Text & JSON** | `.txt`, `.md`, `.json`, `.jsonl` | Plain text / JSON content (built-in) |\n| **Notebooks** | `.ipynb` | Notebook cells as Markdown (built-in) |\n| **E-books** | `.epub` | Chapter HTML → Markdown (built-in) |\n| **Archives** | `.zip` | Each inner file converted if its type is supported (built-in) |\n| **Audio** | `.mp3`, `.wav`, `.m4a` | Metadata + speech transcription (`[audio-transcription]`) |\n| **YouTube** | `https://www.youtube.com/watch?v=...` | Title, description, captions when available (`[youtube-transcription]`) |\n\n### Limited support\n\n| Category | Extensions | Reality |\n|----------|------------|---------|\n| **Images** | `.jpg`, `.jpeg`, `.png` only | EXIF 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) |\n| **XML** | `.xml` | May work as plain text depending on file detection — not a dedicated XML parser |\n| **Other URLs** | Wikipedia, RSS, Bing SERP | MarkItDown can fetch some web URLs; not tested as part of this MCP |\n\n### Not supported\n\n| Item | Why |\n|------|-----|\n| **`.eml`** | No MarkItDown converter for RFC 822 `.eml` files |\n| **`.gif`, `.webp`, `.bmp`, …** | Image converter only accepts `.jpg` / `.jpeg` / `.png` |\n| **Legacy Office** | `.doc`, `.ppt` — use `.docx` / `.pptx` |\n| **Video files** | `.mp4` etc. — not converted as video (audio track may work in some cases via the audio converter) |\n| **Azure Document Intelligence** | Needs `markitdown[az-doc-intel]` + Azure endpoint |\n| **Azure Content Understanding** | Pre-release package; breaks `uvx` resolution |\n| **`markitdown[all]`** | Bundles the Azure extras above |\n\nConversion quality depends on the source file. See the [MarkItDown documentation](https://github.com/microsoft/markitdown) for upstream details.\n\n---\n\n## Quick install 🚀\n\nFollow the steps for your editor. Every config below uses the same command — only the JSON file and wrapper key differ.\n\n### Before you start (all editors)\n\n1. **Install [uv](https://docs.astral.sh/uv/getting-started/installation/)** (includes `uvx`).\n\n   **Windows (PowerShell):**\n   ```powershell\n   powershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n   ```\n\n   **macOS / Linux:**\n   ```bash\n   curl -LsSf https://astral.sh/uv/install.sh | sh\n   ```\n\n2. **Verify `uvx` works** (open a **new** terminal after installing):\n\n   ```bash\n   uvx --version\n   ```\n\n3. **Optional — test the server** (it will sit idle with no output; that is normal for stdio MCP):\n\n   ```bash\n   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\n   ```\n\n   Press `Ctrl+C` to stop.\n\n---\n\n<a id=\"install-in-cursor\"></a>\n\n### Install in Cursor 🖱️\n\n1. Open **Cursor → Settings → MCP** (or edit your config file directly).\n2. **Config file location:**\n   - **Windows:** `%USERPROFILE%\\.cursor\\mcp.json`\n   - **macOS:** `~/.cursor/mcp.json`\n   - **Linux:** `~/.cursor/mcp.json`\n   - **Project-only:** `.cursor/mcp.json` in your project folder\n3. Add or merge this block inside `mcpServers` (copy the whole JSON):\n\n```json\n{\n  \"mcpServers\": {\n    \"document-converter\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter\",\n        \"--with\",\n        \"markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]\",\n        \"document-converter-mcp\"\n      ]\n    }\n  }\n}\n```\n\n4. **Save** the file and **restart Cursor** (or click **Reload** next to MCP in settings).\n5. **Check:** Settings → MCP → `document-converter` should show **enabled** (green). Tools: `convert_to_markdown`, `preview_markdown`.\n\n<details>\n<summary>Cursor one-click install (optional — if manual JSON fails, use this)</summary>\n\n1. Open this link in your browser: [**Add to Cursor**](https://cursor.com/en/install-mcp?name=document-converter&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnaXQraHR0cHM6Ly9naXRodWIuY29tL1phaGlkLUFiYmFzLUFsaS1CYWlnL2RvY3VtZW50LWNvbnZlcnRlciIsIi0td2l0aCIsIm1hcmtpdGRvd25bcGRmLGRvY3gscHB0eCx4bHN4LHhscyxvdXRsb29rLGF1ZGlvLXRyYW5zY3JpcHRpb24seW91dHViZS10cmFuc2NyaXB0aW9uXSIsImRvY3VtZW50LWNvbnZlcnRlci1tY3AiXX0%3D)\n2. Or paste into the browser address bar:\n\n```\ncursor://anysphere.cursor-deeplink/mcp/install?name=document-converter&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyItLWZyb20iLCJnaXQraHR0cHM6Ly9naXRodWIuY29tL1phaGlkLUFiYmFzLUFsaS1CYWlnL2RvY3VtZW50LWNvbnZlcnRlciIsIi0td2l0aCIsIm1hcmtpdGRvd25bcGRmLGRvY3gscHB0eCx4bHN4LHhscyxvdXRsb29rLGF1ZGlvLXRyYW5zY3JpcHRpb24seW91dHViZS10cmFuc2NyaXB0aW9uXSIsImRvY3VtZW50LWNvbnZlcnRlci1tY3AiXX0%3D\n```\n\n3. Click **Install** in Cursor, then restart if tools do not appear.\n\n</details>\n\n---\n\n<a id=\"install-in-vs-code\"></a>\n\n### Install in VS Code 💻\n\nRequires **VS Code 1.102+** with [built-in MCP support](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\n> **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.\n\n#### Method A — Copy-paste user config (recommended)\n\n1. **Ctrl+Shift+P** → **MCP: Open User Configuration**\n2. **Delete** any broken servers where `\"command\"` starts with `vscode://` (e.g. `my-mcp-server-15e7e771`).\n3. **Replace** the file contents with (or merge `servers` into your existing file):\n\n```json\n{\n  \"servers\": {\n    \"document-converter\": {\n      \"type\": \"stdio\",\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter\",\n        \"--with\",\n        \"markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]\",\n        \"document-converter-mcp\"\n      ]\n    }\n  }\n}\n```\n\n4. **Save**, then **Ctrl+Shift+P** → **MCP: List Servers** → start **document-converter**.\n\n**If you get `uvx` not found (`ENOENT`):** run `where uvx` (Windows) or `which uvx` (macOS/Linux) and set `\"command\"` to the full path:\n\n```json\n\"command\": \"C:\\\\Users\\\\YOUR_USER\\\\.local\\\\bin\\\\uvx.exe\"\n```\n\n#### Method B — Open this repo in VS Code\n\n1. `git clone https://github.com/Zahid-Abbas-Ali-Baig/document-converter.git`\n2. **File → Open Folder** → select `document-converter`\n3. VS Code loads [`.vscode/mcp.json`](.vscode/mcp.json) automatically\n4. **Ctrl+Shift+P** → **MCP: List Servers** → start **document-converter**\n\n#### Method C — Add Server wizard\n\n**Ctrl+Shift+P** → **MCP: Add Server** → choose **stdio**, then enter:\n\n| Field | Value |\n|-------|-------|\n| **Command** | `uvx` |\n| **Arg 1** | `--from` |\n| **Arg 2** | `git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter` |\n| **Arg 3** | `--with` |\n| **Arg 4** | `markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]` |\n| **Arg 5** | `document-converter-mcp` |\n\n---\n\n<a id=\"install-in-claude-desktop\"></a>\n\n### Install in Claude Desktop 🤖\n\n1. Open Claude Desktop config:\n   - **Windows (Microsoft Store):** `%LOCALAPPDATA%\\Packages\\Claude_<id>\\LocalCache\\Roaming\\Claude\\claude_desktop_config.json`\n   - **Windows (classic):** `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n   > On Windows Store Claude, `%APPDATA%\\Claude\\` may not exist — use the `Packages\\Claude_*\\...` path above.\n\n2. **Windows (Microsoft Store) — one-time setup** so `uvx --from git+...` can find Git (Claude passes a minimal PATH to MCP servers):\n\n   ```powershell\n   powershell -ExecutionPolicy Bypass -File scripts/setup-windows-uvx-git-shim.ps1\n   ```\n\n   Or download and run that script from the repo. It creates `%USERPROFILE%\\.local\\bin\\git.cmd` pointing at Git for Windows.\n\n3. Add inside `mcpServers` (keep existing `preferences` at the root):\n\n```json\n{\n  \"mcpServers\": {\n    \"document-converter\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter\",\n        \"--with\",\n        \"markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]\",\n        \"document-converter-mcp\"\n      ]\n    }\n  }\n}\n```\n\n   **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`.\n\n4. **Restart Claude Desktop** completely (quit from tray, reopen).\n\n---\n\n<a id=\"verify-it-works\"></a>\n\n### Verify it works ✅\n\nAsk your AI assistant:\n\n```\nList the tools from document-converter MCP.\n```\n\nOr:\n\n```\nPreview markdown for a PDF on my machine at C:\\path\\to\\file.pdf\n```\n\nYou should see `convert_to_markdown` and `preview_markdown` being called.\n\n---\n\n## Tools 🛠️\n\n| Tool | Description | Writes to disk |\n|------|-------------|----------------|\n| `convert_to_markdown` | Converts a file or URL to Markdown and saves output (`.md` beside source, or `youtube-{id}.md` for YouTube URLs) | Yes |\n| `preview_markdown` | Returns Markdown in the chat response only | No |\n\n**Input:** absolute or relative path to a file on your machine (or a supported URL for YouTube).\n\n**Output:** Markdown text suitable for summarization, diffing, or committing to Git.\n\n---\n\n## Usage examples 💬\n\nNatural-language prompts you can paste into Cursor, VS Code, or Claude Desktop after the MCP server is connected.\n\n### Convert a PDF and summarize\n\n**Prompt:**\n\n```\nUse document-converter to convert C:\\Reports\\annual-report.pdf to markdown,\nthen give me a 5-bullet executive summary.\n```\n\n**What happens:** The agent calls `convert_to_markdown`, creates `annual-report.md` next to the PDF, and summarizes the result.\n\n---\n\n### Preview a Word doc before saving\n\n**Prompt:**\n\n```\nPreview markdown for ./contracts/vendor-agreement.docx without saving.\nTell me if there is a termination clause.\n```\n\n**What happens:** The agent calls `preview_markdown`, reads the content in chat, and answers your question — no file is written.\n\n---\n\n### Excel to analysis\n\n**Prompt:**\n\n```\nConvert D:\\data\\sales-q1.xlsx to markdown and list the top 3 products by revenue.\n```\n\n**What happens:** Spreadsheet tables become Markdown the model can parse and rank.\n\n---\n\n### PowerPoint for release notes\n\n**Prompt:**\n\n```\nPreview ./slides/product-launch.pptx as markdown and draft release notes\nfrom the slide titles and bullet points.\n```\n\n---\n\n### Outlook email extraction\n\n**Prompt:**\n\n```\nConvert C:\\Mail\\customer-escalation.msg to markdown and extract action items.\n```\n\n---\n\n### Batch-style workflow (multiple files)\n\n**Prompt:**\n\n```\nConvert these to markdown and save beside each file:\n- C:\\Docs\\spec-v2.pdf\n- C:\\Docs\\api-reference.docx\n- C:\\Docs\\metrics.xlsx\nThen confirm the .md paths.\n```\n\n---\n\n### Audio transcription\n\n**Prompt:**\n\n```\nPreview markdown for ./recordings/standup-notes.mp3 and list decisions made.\n```\n\n*Requires the `audio-transcription` extra (included in this project's dependencies).*\n\n---\n\n### YouTube URL\n\n**Prompt (preview in chat):**\n\n```\nUse preview_markdown on https://www.youtube.com/watch?v=EXAMPLE and summarize the main points.\n```\n\n**Prompt (save to file):**\n\n```\nUse convert_to_markdown on https://www.youtube.com/watch?v=EXAMPLE\n```\n\n**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.\n\n*Use `https://www.youtube.com/watch?v=...` format. Requires the `youtube-transcription` extra and an internet connection.*\n\n---\n\n### Example Markdown output (PDF)\n\n*Illustrative snippet after conversion:*\n\n```markdown\n# Quarterly Results\n\nRevenue increased 12% year over year driven by enterprise subscriptions.\n\n## Highlights\n\n- Net retention: 118%\n- New logos: 240\n- Gross margin: 74%\n```\n\nQuality depends on the source document layout and MarkItDown version.\n\n---\n\n## Local development 🧪\n\nClone if you prefer a local virtual environment over `uvx`.\n\n```bash\ngit clone https://github.com/Zahid-Abbas-Ali-Baig/document-converter.git\ncd document-converter\npython -m venv .venv\n```\n\n**Windows (PowerShell):**\n\n```powershell\n.venv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n**macOS / Linux:**\n\n```bash\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n\nRun the server directly (stdio — used by MCP clients):\n\n```bash\npython server.py\n```\n\n---\n\n## Configuration reference ⚙️\n\nAll clients run the same underlying command (full JSON examples are in [Quick install 🚀](#quick-install-) — not repeated here):\n\n| Part | Value |\n|------|-------|\n| **Command** | `uvx` |\n| **Arg 1** | `--from` |\n| **Arg 2** | `git+https://github.com/Zahid-Abbas-Ali-Baig/document-converter` |\n| **Arg 3** | `--with` |\n| **Arg 4** | `markitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]` |\n| **Arg 5** | `document-converter-mcp` |\n\n### Config file locations\n\n| Client | File | JSON root key |\n|--------|------|----------------|\n| **Cursor** | `%USERPROFILE%\\.cursor\\mcp.json` or `.cursor/mcp.json` | `mcpServers` |\n| **VS Code** | User MCP config or `.vscode/mcp.json` | `servers` (+ `\"type\": \"stdio\"`) |\n| **Claude Desktop** | `claude_desktop_config.json` | `mcpServers` |\n\nCopy-paste configs: [Quick install 🚀](#quick-install-).\n\n<a id=\"local-clone-no-uvx\"></a>\n\n### Local clone (no `uvx`)\n\nClone and install — see [Local development 🧪](#local-development-). Then point your MCP client at the venv Python:\n\n**Windows:**\n\n```json\n{\n  \"mcpServers\": {\n    \"document-converter\": {\n      \"command\": \"REPO_PATH\\\\.venv\\\\Scripts\\\\python.exe\",\n      \"args\": [\"REPO_PATH\\\\server.py\"]\n    }\n  }\n}\n```\n\n**macOS / Linux:**\n\n```json\n{\n  \"mcpServers\": {\n    \"document-converter\": {\n      \"command\": \"REPO_PATH/.venv/bin/python\",\n      \"args\": [\"REPO_PATH/server.py\"]\n    }\n  }\n}\n```\n\n---\n\n## MCP Registry 📦\n\nListed on the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Zahid-Abbas-Ali-Baig%2Fdocument-converter/versions/1.0.0) as **`io.github.Zahid-Abbas-Ali-Baig/document-converter`** (v1.0.0).\n\n- 🔍 [Registry entry (v1.0.0)](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.Zahid-Abbas-Ali-Baig%2Fdocument-converter/versions/1.0.0)\n- 📂 [GitHub repository](https://github.com/Zahid-Abbas-Ali-Baig/document-converter)\n- 📥 [GitHub Release v1.0.0](https://github.com/Zahid-Abbas-Ali-Baig/document-converter/releases/tag/v1.0.0) (`.mcpb` bundle)\n\n---\n\n## Troubleshooting 🔧\n\n### Dependency resolution / `markitdown[all]` errors\n\nIf you see errors about `azure-ai-contentunderstanding` or pre-releases, remove `markitdown[all]` from your config. Use:\n\n```\nmarkitdown[pdf,docx,pptx,xlsx,xls,outlook,audio-transcription,youtube-transcription]\n```\n\n### VS Code: `spawn vscode://mcp/install?... ENOENT`\n\nVS Code's install link wrote the **URL as the command** instead of `uvx`. Fix:\n\n1. **MCP: Open User Configuration** (or `.vscode/mcp.json` in this repo)\n2. **Delete** entries like `my-mcp-server-*` where `\"command\"` starts with `vscode://`\n3. Use [`.vscode/mcp.json`](.vscode/mcp.json) from this repo, or the JSON in [Install in VS Code 💻](#install-in-vs-code)\n4. **MCP: List Servers** → restart **document-converter**\n\n**Do not use the README `vscode://mcp/install?...` link** — it is unreliable in VS Code.\n\n### Claude Desktop: `Git executable not found`\n\n`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.\n\n**Fix:** run the one-time shim script from [Install in Claude Desktop 🤖](#install-in-claude-desktop) (step 2). It places `git.cmd` next to `uvx.exe` in `%USERPROFILE%\\.local\\bin`.\n\n**Also ensure:** [Git for Windows](https://git-scm.com/download/win) and [uv](https://docs.astral.sh/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).\n\n**Fallback:** [Local clone (no `uvx`)](#local-clone-no-uvx) if you cannot use `uvx`.\n\n### `Failed to acquire MessagePort`\n\nThis comes from **Cursor or VS Code**, not this server:\n\n```\n[MCPService] Error creating client: Failed to acquire MessagePort ...\n```\n\n| Step | Action |\n|------|--------|\n| 1 | **Fully quit** the editor, then reopen |\n| 2 | Install **[uv](https://docs.astral.sh/uv/)** for `uvx` installs |\n| 3 | Test: `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) |\n| 4 | Use [Local clone (no `uvx`)](#local-clone-no-uvx) if `uvx` fails |\n| 5 | **Settings → MCP** → remove and re-add the server |\n| 6 | Update Cursor/VS Code to the latest version |\n\n**Reliable fallback:** follow [Local development 🧪](#local-development-) and use the [local clone MCP config](#local-clone-no-uvx).\n\n### Install button does nothing (Cursor on Windows)\n\nUse the copy-paste JSON in [Install in Cursor 🖱️](#install-in-cursor) instead of the install badge.\n\n### Tools not visible\n\nReload MCP or restart the editor. Confirm the server is **enabled** (not red/disabled).\n\n---\n\n## License 📜\n\nMIT License — see [LICENSE](LICENSE).\n\nCopyright (c) 2026 Zahid Abbas Ali Baig\n",
  "bytes": 22559,
  "sha": "9a7392e0f15c80dfe9ce8228f80b9a3e2d6276651914226d5381c599dfbedfa1",
  "repo_slug": "zahid-abbas-ali-baig/document-converter",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_zahid_abbas_ali_baig_document__0bec296c/readme"
}