MarkItDownでPDF・Officeを一発Markdown変換|LLM活用・RAGに最強のMicrosoftツール

Uncategorized

MarkItDownでPDF・Officeを一発Markdown変換|LLM活用・RAGに最強のMicrosoftツール

「PDFをLLMに読み込ませたいけど、テキスト抽出がうまくいかない」「社内のWord資料をRAGのナレッジベースにしたい」――そんな悩みを一気に解決してくれるツールが、Microsoft公式のOSS MarkItDown です。

GitHubスター数10万超え(2025年時点)という驚異的な支持を集めているこのツール、副業エンジニアや社内自動化を目指す開発者にとってかなり刺さる内容なので、今回は実用的なコード例を交えながらがっつり紹介します。


MarkItDownとは?Microsoftが作ったドキュメント変換ツール

MarkItDownは、PDF・Word・Excel・PowerPoint・画像・音声・HTMLなど、ほぼあらゆるファイルをMarkdown形式に変換する軽量Pythonライブラリです。Microsoft公式リポジトリとして公開されており、LLMへの入力やRAGパイプラインへの組み込みに特化して設計されています。

対応フォーマット 詳細
PDF テキスト・表構造を保持
Word(.docx) 見出し・リスト・表を変換
Excel(.xlsx) シートをMarkdownテーブルに
PowerPoint(.pptx) スライド単位でMarkdown化
画像(.jpg/.png) EXIFメタデータ+OCR
音声(.mp3/.wav) Whisperによる文字起こし
HTML / CSV / JSON / XML 構造を保持して変換
YouTube URL 字幕・メタデータを取得
EPub 章立てをそのままMarkdown化

CLIとPython APIの両方に対応しているため、ワンライナーのバッチ処理からアプリ組み込みまで柔軟に使えます。また、後述するMCPサーバーとしてClaude Desktopに直接統合することも可能です。


インストールと基本的な使い方

インストールはpipで一発です。全フォーマットに対応させるには [all] オプションを使います。

pip install markitdown[all]

CLIでの基本的な使い方は非常にシンプルです。

# ファイルを変換してターミナルに出力
markitdown report.pdf

# ファイルに保存
markitdown report.pdf -o report.md

# 複数ファイルをバッチ処理
for f in *.docx; do markitdown "$f" -o "${f%.docx}.md"; done

Python APIから使う場合も直感的です。

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("report.pdf")
print(result.text_content)

画像のOCRや音声の文字起こしには、それぞれpytesseractopenai-whisperが内部で使われます。音声ファイルを渡すだけで自動的に文字起こしが実行されるため、追加の設定はほぼ不要です。


Claude DesktopへのMCP統合

MarkItDownはMCP(Model Context Protocol)サーバーとしても動作します。Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追記するだけで、チャット上から直接ファイルをMarkdown変換できるようになります。

{
  "mcpServers": {
    "markitdown": {
      "command": "uvx",
      "args": ["markitdown-mcp"]
    }
  }
}

設定後はClaude Desktopに「このPDFをMarkdownに変換して」と指示するだけで変換が走ります。LLMのコンテキストにドキュメントを直接流し込むワークフローと相性が抜群です。


まとめ

MarkItDownは、雑多なファイル形式をMarkdownという共通フォーマットに統一するための実用的なツールです。

  • 対応フォーマットが広い — PDF・Office系・画像・音声・Webコンテンツをワンツールでカバー
  • CLIとPython API — ワンライナーのバッチ処理からアプリ組み込みまで対応
  • MCP統合 — Claude Desktopと繋ぐことでLLMワークフローにシームレスに組み込める
  • pipで即導入pip install markitdown[all] だけで全機能が揃う

RAGパイプラインの前処理、ドキュメント管理の自動化、LLMへの入力整形など、テキストデータを扱うあらゆる場面で活躍します。


よくある質問(FAQ)

Q. OCRの精度はどの程度ですか?
A. 内部でTesseractを使用しているため、印刷物の鮮明な画像であれば高精度です。手書きや低解像度画像は精度が落ちます。より高精度が必要な場合はAzure Document IntelligenceなどのAPIと組み合わせることを推奨します。

Q. 音声ファイルの文字起こしにAPIキーは必要ですか?
A. デフォルトではローカルのWhisperモデルを使うため不要です。ただし初回実行時にモデルのダウンロード(数百MB)が発生します。

Q. 変換後のMarkdownの品質はLLMに依存しますか?
A. 基本的な変換はLLM非依存です。ただし画像の内容説明など一部の機能はOpenAI等のAPIを別途設定することで強化できます。

Q. 商用利用は可能ですか?
A. MITライセンスで公開されているため、商用利用も問題ありません。

コメント

タイトルとURLをコピーしました