簡報、表格丟給 AI 只看到亂碼?markdownify 把檔案轉成它讀得懂的文字
重點摘要
- markdownify-mcp 1.1.0 把自製 2 頁簡報轉成 Markdown 只花 0.43 秒,講者備忘與預算表格都保留。
- 自製 Excel 有 2 張工作表,轉出來分成一月、二月兩段,各自是表格(0.52 秒)。
- 自製 Word 表格轉出後最上方多出一列空白,標題列變成一般資料列。
- 轉維基百科 Markdown 頁面輸出 520 行,前 101 行是選單與導覽連結,文章標題在第 102 行。
- 結論: 常把簡報與表格交給 AI 助理的人值得裝,網頁轉換的選單要自己清掉。
- 適合: 已在使用支援 MCP 的 AI 工具、常需要請 AI 讀簡報、Excel、Word 的人。
- 不適合: 只偶爾轉一個檔案的人,或不想設定 MCP 的人。
| 實測項目 | 結果 |
|---|---|
| 簡報(2 頁)轉換 | 0.43 秒,備忘與表格保留 |
| Excel(2 張工作表)轉換 | 0.52 秒,分兩段表格 |
| Word 表格轉換 | 0.50 秒,表頭上方多一列空白 |
| 英文 PDF(單頁)轉換 | 0.41 秒,三行文字都在 |
| 維基百科網頁轉換 | 0.83 秒,520 行,前 101 行是選單 |
| 本機網址 127.0.0.1 | 被擋下(potentially dangerous) |
| 完整安裝(npm install) | 32 秒,約 512MB |
社團幹部傳來一份春季活動簡報,你想請 AI 助理幫忙整理重點。結果它打開簡報檔,只看到一堆亂碼。Word、Excel 也是同樣的狀況:這些是特殊格式的檔案,AI 助理沒辦法直接讀。
markdownify-mcp 就是為這件事做的外掛:把 Word、Excel、簡報、PDF、網頁轉成 Markdown(一種純文字的排版寫法,標題、表格都用符號表示),AI 助理就讀得懂。
測試方式與設備
測試設備:Mac mini M4 Pro(12 核、64GB)。受測版本:mcp-markdownify-server 1.1.0。
這個外掛是給 AI 助理(支援 MCP 的程式)呼叫的。我沒有接真實的 AI 助理,而是用 MCP 官方的程式庫寫一支約 15 行的小程式,扮演 AI 助理去呼叫它,所以以下結果是「工具轉出什麼」,不是「AI 讀完怎麼回答」。
安裝
需要 Node.js、npm 與 Python 3。README 寫用 bun,我用 npm 也能裝起來:
git clone https://github.com/zcaceres/markdownify-mcp
cd markdownify-mcp
npm install # 實測 32 秒;會自動建 .venv 並裝 markitdown
npm run build # 不到 1 秒
安裝完成後 .venv 約 376MB、node_modules 約 136MB,合計約 512MB。
呼叫方式
小程式 call.mjs 做的事:啟動 node dist/index.js,用 MCP 連上去,呼叫工具並印出結果。
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const [tool, arg] = process.argv.slice(2);
const t = new StdioClientTransport({ command: "node", args: ["dist/index.js"] });
const c = new Client({ name: "demo", version: "1" });
await c.connect(t);
const key = tool === "webpage-to-markdown" ? "url" : "filepath";
const r = await c.callTool({ name: tool, arguments: { [key]: arg } });
for (const x of r.content) console.log(x.text);
process.exit(0);
node call.mjs pptx-to-markdown /work/t/club.pptx
node call.mjs xlsx-to-markdown /work/t/stock.xlsx
node call.mjs docx-to-markdown /work/t/notice.docx
node call.mjs pdf-to-markdown /work/t/report.pdf
node call.mjs webpage-to-markdown https://en.wikipedia.org/wiki/Markdown
工具共 11 個:Word、Excel、簡報、PDF、圖片、音訊、網頁、YouTube、Bing 搜尋、Git 專案、讀取現成 Markdown 檔。
實測結果
測試檔都是自己做的小檔案。
| 項目 | 結果 | 耗時 |
|---|---|---|
| 簡報(2 頁) | 標題、條列、講者備忘、預算表格都在 | 0.43 秒 |
| Excel(2 張工作表) | 一月、二月各一段,各自是表格 | 0.52 秒 |
| Word(含表格) | 表格最上方多出一列空白 | 0.50 秒 |
| PDF(英文單頁) | 三行文字都在 | 0.41 秒 |
| 網頁(維基百科) | 520 行,前 101 行是選單 | 0.83 秒 |

兩個要自己處理的地方
Word 表頭空白。 轉出來的表格是這樣,第一列是空的,「日期、活動、費用」被當成一般資料列:
| | | |
| --- | --- | --- |
| 日期 | 活動 | 費用 |
| 3/15 | 開幕 | 免費 |
我只測了這一份自製檔案,不確定所有 Word 表格都這樣。
網頁夾帶選單。 轉維基百科這一頁,輸出 520 行(約 66KB),文章標題在第 102 行才出現,前面全是選單與導覽連結。如果把整頁丟給 AI,會多花不少字數在選單上。

防護
- 網址:轉
http://127.0.0.1:8099/這種本機網址,會回potentially dangerous, aborting,不會去抓。 - 資料夾:設定
MD_ALLOWED_PATHS=/work/t後,讀範圍外的/etc/hostname會被擋下。 - 檔案不存在時,錯誤訊息會附一大段 Python 錯誤紀錄,不太好讀。
沒測到的
中文 PDF、掃描檔文字辨識、音訊轉文字、YouTube、圖片、Git 專案轉換都沒測。我做的中文 PDF 轉出亂碼,但該檔是用內建字型工具產生,可能是測試檔本身的問題,所以不當結論。
適合誰
- 適合:常把簡報、Excel、Word 交給 AI 助理整理,而且已經在用支援 MCP 的 AI 工具的人。
- 不適合:只想偶爾轉一個檔案的人(直接複製貼上更快),或不想設定 MCP 的人;網頁轉換要自己再清掉選單。
專案:https://github.com/zcaceres/markdownify-mcp |授權:MIT