mcpField
P
pdf-table-pull-lite

pdf-table-pull-lite

ローカル
github.com生産性04 日前に更新

pdf-table-pull-lite について

pdf-table-pull-liteは、テキスト層のあるPDFから表を抽出し、表ごとにCSVで保存するローカルのコマンドラインツールです。AIクライアント向けのMCPサーバーを備え、ページや抽出方式を指定できます。

主な機能

  1. 01テキストPDFから表を抽出
  2. 02表ごとのCSV保存
  3. 03処理ページの指定
  4. 04表の抽出方式の選択または自動判定
  5. 05スキャンページの警告

活用シーン

  1. 01PDFレポートの表の書き出し
  2. 02明細書の指定ページの処理
  3. 03GitHub ActionsでのPDF表抽出

MCP 対応

組み込みのMCPサーバーは`extract_pdf_tables`ツールを公開し、CSVテキストを返すか指定ディレクトリに保存します。PDFパス、任意のページ指定、抽出方式を受け取ります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"tidybytetools-pdf-table-pull-lite": {
"command": "uvx",
"args": [
"pdf-table-pull-lite"
]
}
}
}
起動コマンドuvx pdf-table-pull-lite

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipdf-table-pull-lite1.2.1

ツール

1

掲載時のツール一覧 · 4 日前に更新

パラメーター型必須説明
pathstringはい
pagesstringいいえ
strategystringいいえ
output_dirstringいいえ

詳細

Tidy Byte Tools

pdf-table-pull-lite

License: MIT Python 3.10+ MCP server MCP Registry PyPI downloads Glama score Action test

無料。API キー不要。自分のコンピューター上で動作するため、PDF は手元に置いたままです。

テキスト PDF から表を抽出し、それぞれを CSV ファイルとして保存するツールです。 Excel 出力、スキャンした PDF、複数ページにまたがる表が必要ですか?有料版なら対応しています:Gumroad の pdf-table-pull

自分のコンピューター上で動作するため、PDF が外部にアップロードされることはありません。MIT ライセンス。Windows、Mac、Linux で Python 3.10 以降が必要です。

インストール

pip install pdf-table-pull-lite

または、専用の環境にインストールできる pipx を使用してください:

pipx install pdf-table-pull-lite

GitHub の最新コードを使いたい場合:

pip install git+https://github.com/tidybytetools/pdf-table-pull-lite

使い方

pdf-table-pull-lite statement.pdf                 # CSVs go in statement_tables/
pdf-table-pull-lite statement.pdf -o out/ -p 2-5  # only pages 2 to 5
pdf-table-pull-lite statement.pdf -s text         # tables with no border lines

実行例:

Found 2 table(s).
  page1_table1: 2 rows x 3 columns
  page1_table2: 2 rows x 2 columns
Saved: statement_tables/page1_table1.csv
Saved: statement_tables/page1_table2.csv

表ごとに 1 つの CSV が生成され、ページ番号に基づいた名前が付けられます。CSV は UTF-8 BOM 付きで保存されるため、Excel でそのまま開くことができ、アクセント記号も正しく表示されます。

--strategy(-s):罫線のある表には lines、空白で位置合わせされた表には text を指定します。auto(デフォルト)は最初に lines を試し、次に text を試します。

ターミナルで実行すると、有料版についての短い案内が最後に表示されます。--quiet で非表示にできます。また、出力がパイプまたはリダイレクトされている場合は表示されません。

既知の制限

  • スキャンした PDF。 ページが画像のみ(テキストレイヤーなし)の場合はスキップされ、対象のページが通知されます。
  • 次のページに続く表。 ページごとに個別の CSV として出力されます。
  • 特殊なレイアウト。 セルが結合されている表や、列がはっきりしていない表では、セルの位置がずれる場合があります。CSV を確認してください。
  • CSV のみ。 Excel や JSON には出力できず、数値の補正も行いません(そのため、(40) はテキストのままです)。パスワード保護された PDF にも対応していません。

Lite 版と有料版の比較

lite(無料)pdf-table-pull
テキスト PDF、罫線付きまたは空白で区切られた表対応対応
CSV 出力対応対応
Excel(表ごとに 1 シート)および JSON 出力非対応対応
スキャンした PDF(OCR)非対応対応
複数ページにまたがる表の結合非対応対応
数値の補正(1,200 → 1200、(40) → -40)非対応対応
パスワード保護された PDF非対応対応

他の無料ツールとの比較

すべて無料のオープンソースです。ご自身に合うものをお選びください。

pdf-table-pull-litepdfplumberCamelottabula-py
概要コマンドラインツールPython ライブラリPython ライブラリ+CLITabula 用の Python ラッパー
Java が必要いいえいいえいいえはい
1 つのコマンドで CSV を取得はいいいえ。コードを書く必要がありますはいはい
枠線モードと間隔モードを自動選択はい(auto)いいえいいえはい(推測)
スキャンされたページを通知はいいいえいいえいいえ
AI アプリ向け MCP サーバーを内蔵はいいいえいいえいいえ
調整項目が豊富いいえはいはい一部あり

このツールは pdfplumber を基盤にしています。独自のコードで完全に制御したい場合は、pdfplumber または Camelot を直接お使いください。

AI アプリで使う(MCP)

小規模な無料の MCP サーバーが組み込まれています。AI アプリに extract_pdf_tables というツールを 1 つ提供します。API キーやアカウントは不要です。uv が必要です。uv を使うと uvx コマンドを利用できます。

起動することを確認するため、手動で実行します(アプリからの接続を静かに待ち受けます)。

uvx --from pdf-table-pull-lite pdf-table-pull-lite-mcp

同じサーバーを起動する、より短い方法:uvx pdf-table-pull-lite mcp。

以下からお使いのアプリを選び、設定ブロックをコピーしてください。保存した後、アプリを再起動します。

Claude Desktop

Settings > Developer > Edit Config を開きます。claude_desktop_config.json が開きます。次の内容を追加してください。

{
  "mcpServers": {
    "pdf-table-pull-lite": {
      "command": "uvx",
      "args": ["--from", "pdf-table-pull-lite", "pdf-table-pull-lite-mcp"]
    }
  }
}

Claude が uvx を見つけられない場合は、which uvx(Mac/Linux)または where uvx(Windows)を実行し、そのフルパスを "command" に指定してください。

Cursor

同じ設定ブロックを ~/.cursor/mcp.json(すべてのプロジェクト向け)または .cursor/mcp.json(1 つのプロジェクト向け)に記述します。

{
  "mcpServers": {
    "pdf-table-pull-lite": {
      "command": "uvx",
      "args": ["--from", "pdf-table-pull-lite", "pdf-table-pull-lite-mcp"]
    }
  }
}
VS Code

VS Code では mcpServers ではなく servers を使います。プロジェクト内の .vscode/mcp.json に記述するか、MCP: Open User Configuration を実行してすべての場所で使えるようにします。

{
  "servers": {
    "pdf-table-pull-lite": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "pdf-table-pull-lite", "pdf-table-pull-lite-mcp"]
    }
  }
}

または、1 つのコマンドで追加します。

code --add-mcp '{"name":"pdf-table-pull-lite","type":"stdio","command":"uvx","args":["--from","pdf-table-pull-lite","pdf-table-pull-lite-mcp"]}'
Cline

Cline パネルで MCP Servers アイコンをクリックし、Configure を開いてから、Configure MCP Servers をクリックします。mcpServers の中に次の内容を追加してください。

{
  "mcpServers": {
    "pdf-table-pull-lite": {
      "command": "uvx",
      "args": ["--from", "pdf-table-pull-lite", "pdf-table-pull-lite-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Codex

コマンド 1 つで設定できます。

codex mcp add pdf-table-pull-lite -- uvx --from pdf-table-pull-lite pdf-table-pull-lite-mcp

または、次の内容を ~/.codex/config.toml に追加します。

[mcp_servers.pdf-table-pull-lite]
command = "uvx"
args = ["--from", "pdf-table-pull-lite", "pdf-table-pull-lite-mcp"]
Gemini CLI

このリポジトリは Gemini CLI の拡張機能でもあります。次のコマンドでインストールできます。

gemini extensions install https://github.com/tidybytetools/pdf-table-pull-lite

ツール:extract_pdf_tables(path, pages="", strategy="auto", output_dir="")。各テーブルの CSV テキストを含むリストを返します。output_dir を設定すると、CSV をその場所に保存し、代わりにファイルパスを返します。

GitHub Actions で使う

リポジトリ内の PDF や、ワークフローがダウンロードする PDF レポートから、実行のたびにテーブルを抽出できます。テーブルごとに CSV が 1 つ作成され、実行ページにはプレビューが表示されます。

name: PDF tables
on: [push, workflow_dispatch]
permissions:
  contents: read
jobs:
  tables:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: tidybytetools/pdf-table-pull-lite@v1
        with:
          files: reports/**/*.pdf
          artifact-name: pdf-tables   # download the CSVs from the run page

各 PDF の CSV は、pdf-tables/ 内に PDF のパスに基づく名前のフォルダーを作成して保存されます。たとえば reports/june.pdf の場合、pdf-tables/reports/june/page1_table1.csv が作成されます。

選択したタグと同じバージョンのコードを、固定バージョンの pdfplumber で実行します。API キーやアカウントは不要で、PDF が GitHub の外部に送信されることもありません。Linux、Windows、Mac のランナーで動作します。スキャンされたページ(テキストがなく、画像だけのページ)は警告とともにスキップされます。

入力
入力デフォルト内容
files**/*.pdf読み込む PDF。glob パターンを 1 行に 1 つずつ指定するか、カンマで区切って指定します。
excludenode_modules/**, **/node_modules/**, vendor/**除外するパターン。
output-dirpdf-tablesCSV ファイルの保存先フォルダー。
pages(empty)各 PDF で読み込むページ。1,3-5 のように指定します。空欄の場合は全ページを読み込みます。
strategyautolines(罫線のある表)、text(スペースで位置合わせされた表)、または auto(まず lines、次に text)。
fail-if-no-tablesfalsePDF に表がない場合に失敗します。
fail-on-scannedfalseテキストのないスキャンページが PDF に含まれている場合に失敗します。
fail-if-no-filestrue一致するファイルがない場合に失敗します。
artifact-name(empty)設定すると、CSV をこの名前のアーティファクトとしてアップロードします。
python-version(empty)セットアップする Python。空欄の場合はランナーの Python(3.10 以降)を使用します。
出力
出力内容
files読み込んだ PDF の数。
tablesCSV として保存した表の数。
scanned-filesスキャンページを含む PDF の数。
output-dirCSV ファイルが保存されているフォルダー。

AI エージェント向け

  • 使用する場合: 実際のテキストが含まれるローカル PDF(単語を選択できる)があり、表を行として取得する必要がある場合。
  • 使用しない場合: PDF がスキャンまたは写真である場合、パスワードが設定されている場合、または Excel が必要な場合。これらのページはスキップされます。その場合は有料版を使用してください。
  • 入力: ファイルパスと、任意の pages(1,3-5 など)および strategy(auto、lines、text)。
  • 出力: CSV 文字列のリスト。表ごとに 1 つで、先頭行がヘッダーです。空のリストは表が見つからなかったことを意味します。
  • CLI の終了コードは、成功時は 0、エラー時は 1 です(メッセージは stderr に出力されます)。llms.txt も参照してください。

テスト

pip install pdfplumber "mcp<2"
python3 -m unittest discover tests

ライセンス

MIT。LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。