您可以通过将 PDF 上传到服务、将其文本粘贴到聊天中,或让您的代理调用本机上的转换引擎,将 PDF 转换为适用于 LLM 的 Markdown。第三种方式能够保留标题、表格和列表为真实的 Markdown,并且不上传任何内容。使用 GroupDocs.Conversion.Mcp 服务器,Claude、Cursor 或 GitHub Copilot 可以在本地通过一次提示运行:

Convert report.pdf to Markdown

带有配置和故障排除的逐步版本请参阅文档:How to convert PDF to Markdown with an MCP server。

为什么 Markdown 步骤决定了您的 RAG 索引质量?

检索管道只能索引转换步骤保留下来的内容。如果表格被展平成一串数字,该表格的任何片段都无法回答问题。如果标题消失,分块器就没有章节边界可遵循。您最想放入私有知识库的文档往往是最不想发送给第三方的文档:合同、内部报告、患者或客户记录。因此,选择哪种方式一次决定了两件事:保留了多少结构,以及文件的去向。

方式 1:您是否将 PDF 上传到在线转换器或云解析 API?

这是最快的方式,也是代价最大的方式。文件离开您的机器,在您无法控制的基础设施上处理。对于公开文档可能可以接受,但对于任何机密内容,这一步都会被安全审查阻止。

仅当内容不敏感且您接受通过他人服务进行单文件往返时才选择此方式。

方式 2:您是否将 PDF 文本粘贴到聊天中并让模型进行格式化?

这将过程保持在您这边,但模型现在是在改写内容,而不是转换内容。它只能看到您粘贴时提取的文本,表格边框、列顺序和页面几何已经丢失,模型只能通过猜测填补空白。长文档还会在您到达最后一页之前耗尽上下文窗口。

适用于一次性段落,而非整文件夹的报告。

方式 3:您是否让您的代理调用本地转换引擎?

在此方式中,代理决定并由引擎执行转换。代理向 convert 工具发送文件名和目标格式,GroupDocs.Conversion 引擎会在您的文档旁边生成一个 Markdown 文件。在工具调用中,格式为 md:

{
  "name": "convert",
  "arguments": {
    "file": { "filePath": "report.pdf" },
    "format": "md"
  }
}

您不需要手写该 JSON,只需输入一句话,代理即可生成调用。结构会以真实的 Markdown 结构保留下来:标题变为 # 和 ##,表格变为管道表格,列表变为列表项。这是嵌入管道和 LLM 原生读取的格式,您可以直接将文件喂给分块器。

结果的形态如下所示。下面的内容仅作示例,并非真实运行的输出:

# Quarterly report

## Revenue by region

| Region | Q1 | Q2 |
|---|---|---|
| North | 120 | 135 |
| South | 98 | 101 |

复杂布局是专为文档保真度而构建的引擎与基础文本提取器之间的区别所在。是否对您的文档重要,需要在提交之前对您最难处理的三个 PDF 进行测试。

如果您只需要 Markdown 输出,GroupDocs 还提供了专用服务器 GroupDocs.Markdown.Mcp。其文档将其描述为将 PDF、Word、Excel、EPUB 以及 20 多种格式转换为干净、结构化的 Markdown,并可控制页面选择、图像和前置元数据。GroupDocs.Conversion.Mcp 适用于 Markdown 只是同一工作流中众多目标格式之一的情况。针对 RAG 的比较请参阅 Your RAG pipeline starts with Markdown — keep that step local,服务器文档位于 docs.groupdocs.com/markdown/mcp。

如何设置本地路线?

在客户端中注册一次服务器即可。Claude Desktop 的示例条目:

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

这需要 .NET 10 SDK。相同的服务器条目可在 Cursor、VS Code(配合 GitHub Copilot)和 Claude Code 中使用;每个客户端的确切配置文件列在 docs hub。随后重启客户端。在评估模式或许可证文件模式下,转换在下载完包后无需网络;计量授权会报告使用情况,因此需要外部访问。

可用提示示例:

Turn every PDF in this folder into Markdown for my knowledge base.

Check how many pages whitepaper.pdf has, then convert it to Markdown.

第二个提示会先调用 get_document_info,返回文件类型、页数和基本属性,然后再调用 convert。

示例会话

以下是基于文档中工具描述的简化示例会话,非截图。

You:    Check how many pages whitepaper.pdf has, then convert it to Markdown.
Agent:  [calls get_document_info with file.filePath = "whitepaper.pdf"]
Agent:  [calls convert with file.filePath = "whitepaper.pdf", format = "md"]
Agent:  Done. The Markdown file is saved as whitepaper.md in your output folder.

限制有哪些?

  • 扫描件需要先进行 OCR。 仅图像的 PDF 没有文本层,OCR 并非此服务器的一部分,因此生成的 Markdown 不会包含文字。若您的 PDF 为扫描件,请在转换前先运行 OCR。
  • 评估模式。 未授权时,输出会带有评估水印,且单个服务器进程最多只能打开 15 份文档。大规模导入前请调用 get_license_status 以确认当前模式。
  • 转换,而非提取。 此服务器将整个文档转换为 Markdown。如果您只需要提取特定字段或数值,请使用 GroupDocs.Parser.Mcp(仅以 Docker 镜像形式提供),在需要两者的管道中同时使用。

常见问题

如何在不上传文件的情况下将 PDF 转换为 RAG 用的 Markdown?
在本机运行转换服务器,让您的代理调用它。使用 GroupDocs.Conversion.Mcp 时,convert 工具会将 .md 文件写入您的文件夹,且不会将文档发送到云服务。

PDF 转为 Markdown 时表格会被保留吗?
会,以 Markdown 管道表格的形式保留。请先测试您最复杂的表格,因为布局复杂度是转换器之间差异最大的地方。

以后可以将 Markdown 再转换回 PDF 或 Word 吗?
可以。相同的服务器支持将 Markdown 转换为 PDF 和 DOCX,详见 the export post。

深入了解