PDF をサービスにアップロードしたり、テキストをチャットに貼り付けたり、エージェントにローカルマシン上の変換エンジンを呼び出すよう指示したりすることで、LLM 対応の Markdown に変換できます。3 番目の方法では見出し、表、リストが実際の 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 |

複雑なレイアウトは、文書忠実度を重視したエンジンと基本的なテキスト抽出器の違いが顕著に現れる箇所です。自分の文書で重要かどうかは、導入前に最も難しい 3 つの PDF でテストして確認してください。

ローカルルートを設定するには?

クライアント側でサーバーを一度だけ登録します。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 に掲載されています。設定後にクライアントを再起動してください。評価モードまたはライセンスファイルモードでは、パッケージがダウンロード済みであれば変換にネットワークは不要です。メーター制ライセンスは使用量を報告するため外部アクセスが必要になります。

動作するプロンプト例:

フォルダー内のすべての PDF を私のナレッジベース用に Markdown に変換してください。

whitepaper.pdf のページ数を確認し、次に Markdown に変換してください。

2 番目のプロンプトは 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.

制限事項は何ですか?

  • Scans need OCR first. 画像のみの PDF にはテキスト層がなく、OCR はこのサーバーの機能に含まれていません。そのため、スキャン PDF を変換する場合は事前に OCR を実行してください。
  • Evaluation mode. ライセンスがない場合、出力には評価用の透かしが入り、同時に最大 15 件のドキュメントしか開けません。大量のインジェストを行う前に get_license_status を呼び出して、現在のモードを確認してください。
  • Conversion, not extraction. このサーバーは文書全体を Markdown に変換します。特定のフィールドや型付き値だけを抽出したい場合は、GroupDocs.Parser.Mcp(Docker イメージのみ提供)を使用し、必要に応じて両方を組み合わせてください。

FAQ

PDF をアップロードせずに RAG 用の Markdown に変換するにはどうすればよいですか?
自分のマシンで変換サーバーを起動し、エージェントに呼び出させます。GroupDocs.Conversion.Mcp の convert ツールが .md ファイルをフォルダーに書き出すため、ドキュメントがクラウドに送信されることはありません。

PDF が Markdown になるとき、表は保持されますか?
はい、Markdown のパイプ表として保持されます。レイアウトが複雑な表ほどコンバータの差が出やすいので、まずは最も複雑な表でテストしてください。

後で Markdown を PDF や Word に戻すことはできますか?
できます。同じサーバーで Markdown から PDF および DOCX への変換が可能で、詳細は the export post に記載されています。

詳細を見る