一個 AI 代理應該負責選擇要轉換的檔案以及要轉換成的格式,而實際的轉換工作則交由轉換引擎完成。使用 GroupDocs.Conversion.Mcp 伺服器時,Claude、Cursor 或 GitHub Copilot 可以在本機、在你的電腦上呼叫該引擎,只需一句話:

Convert contract.docx to PDF

一步一步的設定與故障排除說明請參閱文件:How to convert documents with AI agents using MCP。本文說明了為什麼需要將工作分割,以及代理應該在哪裡讓位。

代理自行轉換檔案時會出什麼問題?

一個「將 PDF 轉成 Word」的語言模型其實並沒有真正執行轉換。它只會讀取給定的內容,然後以目標格式產生新內容。模型未曾看到的細節——精確的字型、欄位幾何、表格前的分頁、Word 範本所依賴的樣式名稱——都無法重現。最終得到的檔案看起來像是轉換結果,實際上是重新打字。

這就是本文要討論的失敗模式。它很安靜:輸出檔案可以正常開啟,沒有錯誤訊息,因而沒有人檢查,直到發現表格位置偏移或標題樣式遺失。渲染忠實度是決定性的引擎工作,而非生成工作。

代理應該決策什麼,引擎應該執行什麼?

將工作在「判斷」與「執行」之間劃分。

問題 代理決定 引擎執行
哪些檔案在範圍內? 讀取你的提示與儲存資料夾 無
目標格式是什麼? 將「可編輯」映射為 DOCX,「存檔」映射為 PDF 無
檔案是否可轉換? 呼叫 get_supported_formats 並讀取回應 回報有效的目標格式
檔案大小是多少? 呼叫 get_document_info 並讀取頁數 讀取類型、頁數、屬性
真正的轉換 呼叫 convert 使用 GroupDocs.Conversion 引擎產生輸出
失敗時該怎麼辦 重試、詢問你或跳過檔案 以文字回傳失敗原因

代理永遠不會直接觸碰文件的位元組。它只傳遞檔名與格式,然後引擎回傳檔案。

如何在本機將代理連接到引擎?

在客戶端註冊一次伺服器即可。Claude Desktop 使用 claude_desktop_config.json,Claude Code 使用 claude mcp add,VS Code 搭配 GitHub Copilot 使用 mcp.json,而 Cursor 使用 ~/.cursor/mcp.json。伺服器同時支援 Visual Studio 2022、Windsurf、Cline、Codex CLI 與 JetBrains Rider。以下是一個 Claude Desktop 的設定範例:

{
  "mcpServers": {
    "groupdocs-conversion": {
      "type": "stdio",
      "command": "dnx",
      "args": ["GroupDocs.Conversion.Mcp", "--yes"],
      "env": { "GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents" }
    }
  }
}

dnx 需要 .NET 10 SDK。如果你偏好 Docker,完整映像為 ghcr.io/groupdocs-conversion/conversion-net-mcp:latest,可使用 docker run --rm -i -v $(pwd)/documents:/data 來執行。客戶端透過 stdio 與伺服器通訊:路徑分別是代理、本機伺服器與本機檔案系統。註冊完成後請重新啟動客戶端。

每個請求會觸發哪個工具?

伺服器公開四個工具。名稱即為字面意義;代理在出錯時會搜尋這些工具。

  • convert:將文件轉換為其他格式,並將結果儲存於你的儲存或輸出資料夾。參數包括 file、format(例如 pdf、docx、xlsx、pptx、html、png、jpg、csv、txt、rtf、md)以及可選的 password。
  • get_supported_formats:列出給定來源檔案可轉換成的目標格式。
  • get_document_info:在不執行轉換的情況下回傳檔案類型、頁數與基本屬性。
  • get_license_status:回報伺服器是以評估、授權檔案或計量模式運行。

開放式提示之所以可行,是因為代理會將它們串接起來:

What formats can I turn this Visio file into? Then convert it to PDF.

Check the page count of whitepaper.pdf first, then convert it to DOCX.

現有檔案永遠不會被覆寫。對同一檔案的第二次轉換會產生不同的檔名,例如 report (1).pdf。

範例對話

以下是一段簡化的示範對話,根據文件中的工具說明構建,非螢幕截圖。

You:    Convert contract-draft.pdf to DOCX so I can edit it.
Agent:  [calls convert with file.filePath = "contract-draft.pdf", format = "docx"]
Agent:  Done. The converted file is saved as contract-draft.docx in your output folder.

完整流程請參考 the n8n walkthrough,該示例展示了同一引擎如何由工作流程而非聊天驅動;announcement 則概述了伺服器的整體功能。

有哪些限制?

  • 評估模式。 未授權時,伺服器會在轉換輸出上加上評估水印,且每個伺服器程序最多只能同時開啟 15 份文件;重新啟動伺服器會重置計數。先問代理「what is the license status of the conversion server?」;get_license_status 會在不處理文件的情況下回覆。
  • 無 OCR。 伺服器只能轉換具有文字層的文件。僅含影像的 PDF(掃描件)不會轉成可編輯文字。
  • 轉換而非抽取。 此伺服器處理整份文件。若需欄位級資料抽取,搭配的 GroupDocs.Parser.Mcp 伺服器(僅以 Docker 映像提供)更為合適,許多管線會同時使用兩者。

FAQ

Claude 能將 docx 轉成 pdf 嗎?
可以,只要連接了轉換伺服器。Claude 會呼叫 convert 並設定 format: "pdf",GroupDocs 引擎會在你的機器上產生檔案。

代理在轉換時會上傳我的檔案嗎?
不會。此伺服器透過 stdio 本地執行,文件會保留在你的儲存資料夾。授權檔案也同樣從本機磁碟讀取。

伺服器能轉換哪些格式?
支援超過 100 種文件、試算表、簡報、影像、電子郵件、CAD 與網頁格式,與 GroupDocs.Conversion .NET 函式庫提供的集合相同。使用 get_supported_formats 可取得特定檔案的完整列表。

深入了解