An 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 模板依赖的样式名称等。返回的结果看起来像是转换,实质上是重新键入。

这就是本文讨论的失败模式。它表现为安静:输出文件可以打开且没有错误,直到出现表格错位或标题失去样式时才会被发现。渲染保真度是确定性的引擎工作,而不是生成工作。

代理应决定什么,引擎应做什么?

在判断与执行之间划分任务。

问题 代理决定 引擎执行
哪些文件在范围内? 读取你的提示和存储文件夹 无
目标格式是什么? 将 “make it editable” 映射为 DOCX,将 “archive it” 映射为 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 了解服务器的整体概览。

限制有哪些?

  • Evaluation mode(评估模式):没有许可证时,服务器会在转换输出上添加评估水印,并将每个服务器进程的打开文档数限制为 15;重启服务器会重置计数。先让你的代理询问 “what is the license status of the conversion server?”;get_license_status 会在不处理文档的情况下返回答案。
  • No OCR(无 OCR):服务器只能转换包含文本层的文档。仅包含图像的 PDF 扫描件不会被转换为可编辑文本。
  • Conversion, not extraction(转换而非提取):该服务器处理整篇文档。若需要字段级别的数据提取,请使用配套的 GroupDocs.Parser.Mcp 服务器(仅以 Docker 镜像形式提供),许多流水线会同时使用两者。

FAQ

Claude 能将 docx 转换为 pdf 吗?
可以,只要附加了转换服务器。Claude 调用 convert 并指定 format: "pdf",GroupDocs 引擎会在你的机器上生成该文件。

代理在转换时会上传我的文件吗?
不会。该服务器通过 stdio 本地运行,文档始终保存在你的存储文件夹中。许可证文件也同样从本地磁盘读取。

服务器能转换哪些格式?
支持超过 100 种文档、电子表格、演示文稿、图像、电子邮件、CAD 和网页格式,和 GroupDocs.Conversion .NET 库提供的集合相同。使用 get_supported_formats 可获取特定文件的完整列表。

深入了解