doc2md-lite について
doc2md-liteは、テキストPDFや保存済みHTMLをMarkdownに変換するローカルツールです。文書のテキストや表を扱う人向けで、変換ツールを備えたMCPサーバーも含みます。
主な機能
- 01PDFとHTMLのMarkdown変換
- 02Markdown形式の表を保持
- 03PDFの見出しとリストを抽出
- 04ローカルCLIとPython API
活用シーン
- 01テキストPDFを編集・検索しやすい形式に変換
- 02保存済みHTMLページをMarkdownに変換
- 03AIアプリにファイル変換機能を提供
MCP 対応
内蔵MCPサーバーは、AIアプリに `convert_to_markdown` ツールを提供します。ファイルパスを受け取り、Markdownテキストを返すか、指定先に保存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | |
| tables | string | いいえ | |
| output_path | string | いいえ |
詳細
doc2md-lite
無料です。API キーは不要です。お使いのコンピューター上で動作するため、ファイルは手元に残ります。
テキスト PDF または保存した Web ページ(.html)を、整った Markdown に変換するツールです。表は Markdown の表として保持されます。 Word ファイル、AI 検索(RAG)用のチャンク、フォルダー全体、ページ範囲が必要ですか?有料版なら対応しています:doc2md on Gumroad
お使いのコンピューター上で動作するため、ファイルがどこかにアップロードされることはありません。MIT ライセンスです。Windows、Mac、Linux で、Python 3.10 以降が必要です。
インストール
pip install doc2md-lite
または pipx を使うと、専用の領域にインストールできます。
pipx install doc2md-lite
代わりに GitHub の最新コードを使いますか?
pip install git+https://github.com/tidybytetools/doc2md-lite
使い方
doc2md-lite report.pdf # writes report.md
doc2md-lite page.html -o page.md
doc2md-lite report.pdf -o - # print the Markdown on screen
doc2md-lite report.pdf --tables text # also find tables with no border lines
実行例:
Saved: report.md (4 headings, 1 tables)
PDF から得られる内容:
# Spring Store Report
Our team checked every store in March. Most stores met the new goal...
## Sales by region
| Region | Stores | Sales |
| --- | --- | --- |
| North | 12 | $48,200 |
| South | 9 | $39,950 |
保持される内容:見出し(PDF ではフォントサイズと太字から判定)、段落、箇条書きと番号付きリスト、表です。HTML ではさらに、太字、斜体、リンク、コードブロックも保持されます。Web ページからはスクリプト、スタイル、メニュー、フッターが除去されます。
ターミナルで実行すると、有料版についての短い案内が最後に1行表示されます。--quiet で非表示にできます。また、出力をパイプやリダイレクトに渡した場合は表示されません。
既知の制限
- スキャンした PDF。 テキストレイヤーのない画像だけのページはスキップされ、該当するページが通知されます。
- PDF の見出しは推定です。 フォントサイズと太字をもとに判定します。特殊なレイアウトでは、簡単な修正が必要になる場合があります。
- 2段組みの PDF(科学論文など)では、段が混ざることがあります。
- 一度に処理できるのは1ファイルです。 フォルダー、ページ範囲、Word ファイル、RAG チャンクには対応していません。これらは有料版で利用できます。
- ファイルのみです。 Web ページはダウンロードしません。先にページを保存してください。
Lite と有料版の比較
| lite(無料) | doc2md | |
|---|---|---|
| テキスト PDF と HTML を Markdown に変換 | はい | はい |
| 表を Markdown の表として保持 | はい | はい |
| 太字、斜体、リンク、リストを含む Word(.docx) | いいえ | はい |
| RAG チャンク(ページ、見出しの階層、サイズ、重複部分を含む JSONL) | いいえ | はい |
| サブフォルダーも含むフォルダー全体 | いいえ | はい |
| ページ範囲とパスワード保護された PDF | いいえ | はい |
その他の便利な無料ツール
用途に合ったものをお選びください。MarkItDown はさらに多くのファイル形式を読み込めます。pandoc は Word と HTML に最適ですが、PDF は読み込めません。pymupdf4llm は PDF の処理が高速ですが、AGPL ライセンスを採用しています。doc2md-lite は軽量な MIT ライセンスのツールで、PDF の表を表のまま保持し、MCP サーバーも内蔵しています。
AI アプリで使う(MCP)
小規模で無料の MCP サーバーが組み込まれています。AI アプリに convert_to_markdown というツールを1つ提供します。API キーもアカウントも不要です。uv が必要です。これにより uvx コマンドを使えます。
起動することを確認するには、手動で実行します(アプリからの接続を静かに待機します)。
uvx --from doc2md-lite doc2md-lite-mcp
同じサーバーを起動する、より短い方法:uvx doc2md-lite mcp。
以下からアプリを選んで、ブロックをコピーします。保存したらアプリを再起動してください。
Claude Desktop
Settings > Developer > Edit Config を開きます。claude_desktop_config.json が開きます。次を追加します。
{
"mcpServers": {
"doc2md-lite": {
"command": "uvx",
"args": ["--from", "doc2md-lite", "doc2md-lite-mcp"]
}
}
}
Claude が uvx を見つけられないと表示する場合は、which uvx(Mac/Linux)または where uvx(Windows)を実行し、そのフルパスを "command" に指定します。
Cursor
同じブロックを ~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1つのプロジェクト)に記述します。
{
"mcpServers": {
"doc2md-lite": {
"command": "uvx",
"args": ["--from", "doc2md-lite", "doc2md-lite-mcp"]
}
}
}
VS Code
VS Code では mcpServers ではなく servers を使います。プロジェクトの .vscode/mcp.json に記述するか、MCP: Open User Configuration を実行して、すべての場所で使えるようにします。
{
"servers": {
"doc2md-lite": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "doc2md-lite", "doc2md-lite-mcp"]
}
}
}
または、次のコマンドで追加します。
code --add-mcp '{"name":"doc2md-lite","type":"stdio","command":"uvx","args":["--from","doc2md-lite","doc2md-lite-mcp"]}'
Cline
Cline パネルで MCP Servers アイコンをクリックし、Configure を開いてから、Configure MCP Servers をクリックします。mcpServers の中に次を追加します。
{
"mcpServers": {
"doc2md-lite": {
"command": "uvx",
"args": ["--from", "doc2md-lite", "doc2md-lite-mcp"],
"disabled": false,
"autoApprove": []
}
}
}
Codex
コマンドを1つ実行します。
codex mcp add doc2md-lite -- uvx --from doc2md-lite doc2md-lite-mcp
または、~/.codex/config.toml に次を追加します。
[mcp_servers.doc2md-lite]
command = "uvx"
args = ["--from", "doc2md-lite", "doc2md-lite-mcp"]
Gemini CLI
このリポジトリは Gemini CLI 拡張機能でもあります。次のコマンドでインストールします。
gemini extensions install https://github.com/tidybytetools/doc2md-lite
ツール:convert_to_markdown(path, tables="lines", output_path="")。Markdown テキストを返します。output_path を設定すると、指定先にファイルを保存し、代わりにパスを返します。
GitHub Actions で使う
プッシュのたびに、リポジトリ内の PDF やウェブページを Markdown に変換します。Markdown は検索しやすく、プルリクエストで読みやすく、AI ツールでも使いやすい形式です。
name: Docs to Markdown
on: [push, pull_request]
permissions:
contents: read
jobs:
markdown:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: tidybytetools/doc2md-lite@v1
with:
files: docs/**/*.pdf
output-dir: markdown
artifact-name: docs-markdown # download the .md files from the run page
Markdown のコピーを同期した状態に保ちます。 各 PDF の隣に .md のコピーをコミットしていますか?チェックモードを使ってください。コピーがない場合や最新でない場合、該当ファイルを示してステップが失敗します。チェックモードでは何も書き込みません。
- uses: tidybytetools/doc2md-lite@v1
with:
files: docs/**/*.pdf
check: "true"
コピーを作成するには、コンピューターで doc2md-lite your.pdf を実行するか、check を指定せずにアクションを実行し、生成されたファイルをコミットします。出力が一致するように、両方の場所で同じバージョンの doc2md-lite を使ってください。このアクションでは pdfplumber と Beautiful Soup の固定バージョンをインストールするため、同じファイルは常に同じ Markdown に変換されます。
指定したタグと同じタグのコードが実行されます。API キーもアカウントも不要で、ファイルが GitHub の外部に送信されることもありません。Linux、Windows、Mac のランナーで動作します。スキャンされた PDF ページ(テキストのない画像のみのページ)は、警告を表示してスキップされます。代わりに失敗させるには、fail-on-scanned: "true" を設定します。
入力
| 入力 | デフォルト | 説明 |
|---|---|---|
files | **/*.pdf | 変換するファイル(.pdf、.html、.htm)。グロブパターンを1行に1つずつ、またはカンマ区切りで指定します。 |
exclude | node_modules/**, **/node_modules/**, vendor/** | スキップするパターンです。 |
output-dir | (空) | Markdown の保存先フォルダーです。フォルダー構成を維持します。空の場合、各ファイルの隣に .md を保存します。 |
tables | lines | PDF の表の形式です。lines(罫線あり)、text(スペースで位置を揃える形式も含む)、または off を指定します。 |
check | false | チェックのみを行います。Markdown のコピーがない場合や最新でない場合は失敗します。 |
fail-on-scanned | false | テキストのないスキャンページが PDF に含まれる場合に失敗します。 |
fail-if-no-files | true | 一致するファイルがない場合に失敗します。 |
artifact-name | (空) | 設定すると、指定した名前で Markdown をアーティファクトとしてアップロードします。output-dir が必要です。 |
python-version | (空) | セットアップする Python のバージョンです。空の場合はランナーの Python(3.10 以降)を使います。 |
出力
| 出力 | 内容 |
|---|---|
files | 条件に一致した PDF ファイルと HTML ファイルの数です。 |
converted | エラーなしで変換(またはチェック)されたファイルの数です。 |
changed | 新規または変更された Markdown ファイルの数です。チェックモードでは、存在しないファイルや古くなっているファイルの数です。 |
scanned-files | スキャンされたページを含む PDF の数です。 |
output-dir | 出力フォルダーです。 |
実行ページには、ファイルごとに 1 行の短いレポートも表示されます。Markdown の出力先と、検出された見出しおよびテーブルの数が記載されます。
AI エージェント向け
- 使用する場合: 選択可能なテキストを含むローカルの PDF、または保存済みの HTML ファイルがあり、読み取りや保存のために Markdown に変換したい場合。
- 使用しない場合: PDF がスキャン画像である場合、ファイルが .docx である場合、またはページ番号付きで多数のファイルやチャンクを処理する必要がある場合は使用しないでください。その場合は有料版を使用してください。
- 入力: ファイルパスと、任意の
tables(lines、text、off)。 - 出力: Markdown テキストです。テーブルは、先頭行をヘッダーとする Markdown テーブルです。
- CLI の終了コードは、成功時は 0、エラー時は 1 です(エラーメッセージは stderr に出力されます。または、
--jsonを指定すると{"ok": false, "error": ...}が出力されます)。llms.txtも参照してください。
Python
from doc2md_lite import convert
md, info = convert("report.pdf") # info: type, tables, headings, scanned_pages
テスト
pip install pdfplumber beautifulsoup4 reportlab "mcp<2"
python3 -m unittest discover tests
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。