HTPD について
HTPDはPDFを構造化された`.htpd`文書に変換し、AIが推測せずにページ番号付きの原文を取得できるようにします。長いマニュアルやレポートを扱う人向けで、章、表、図、OCRで読み取ったスキャン文字を保持します。
主な機能
- 01PDFを構造化されたセクションに変換
- 02ページ番号、表、図を保持
- 03OCRでスキャンページを読み取り
- 04原文の検索と取得
- 05記載がない場合にその旨を回答
- 06ローカルリーダーとMCPツール
活用シーン
- 01長い技術マニュアルから仕様を検索
- 02PDFのページ番号で回答を照合
- 03OCRテキストからスキャン文書を検索
- 04エージェントに大規模なPDF文書群を参照させる
MCP 対応
`htpd-mcp`サーバーは、文書バンドルの一覧表示、内容確認、セクション表示、検索、質問、図の取得、ファイル検査のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 6 日前に更新
このツールにパラメーターはありません。
詳細
長い PDF を、AI が正確に読み取れるドキュメントに変換します。テキストは原文どおり、回答にはページ番号が付いています。
かんたんに説明すると · 動作を見る · インストール · AI で使う · 開発者向け · 品質
平易な言葉で
長い PDF をお持ちだとします。300 ページのデータシート、5000 ページのリファレンスマニュアル、ポリシー、レポートなどです。それについて質問があるとき、PDF 全体を渡すと、AI は回答に時間がかかったり、詳細を見落としたり、表を混同したり、回答の根拠を示せなかったりすることがあります。
HTPD は、AI が扱いやすいように文書を準備します。 コンバーターは PDF を 1 つの .htpd ファイルに変換します。そこには元の文章が一字一句そのまま、文書独自の章や節ごとに分割されて収録され、すべての段落にページ番号が付き、表は行として、図は画像として保存されます。AI は質問に必要なわずかな節だけを読み、正確な文章に基づいてページ番号付きで回答するため、内容を確認できます。
| 得られるもの | そのメリット |
|---|---|
| 正確な文章 | 値、部品番号、レジスター名は PDF とまったく同じです。要約や書き換えは一切ありません。 |
| すべての事実にページ番号 | 元の文書のどこに記載されているか、すべての回答を数秒で確認できます。 |
| 誠実な回答 | 文書に答えが記載されていない場合、HTPD は推測せず、その旨を伝えます。 |
| 表と図 | 表は列を保ったまま行として保存され、図や写真はキャプション付きの画像として保存されます。 |
| スキャンページにも対応 | スキャン画像や写真に含まれるテキストは OCR(無料の Tesseract)で読み取られ、OCR による読み取りだと分かるように示されます。 |
| プライベートで無料 | ご自身のコンピューターで動作します。GPU もアカウントもクラウドも不要です。オープンソースです。 |
ブラウザーで試す: HTPD Studio。
動作を見る
一般公開されている 109 ページのデータシート(NXP i.MX 93)で実行したコマンドと出力です(長い部分は短縮しています)。
1. PDF を一度だけ変換 - 100 ページなら約 1 秒です。
2. 自分の言葉で質問 - 文書内の正確な一文を、ページ番号と節名とともに確認できます。
3. 図は画像のまま - 画像を認識できる AI が図そのものを確認します。
普段の利用では、これらのコマンドを入力する必要はありません。.htpd ファイルを AI に渡すか、プラグイン、スキル、MCP サーバーに処理を任せられます。
1 分でインストール
| ご利用の環境 | 操作 |
|---|---|
| Claude Code | /plugin marketplace add narendrachampaneri/htpd の後に /plugin install htpd@htpd を実行します。PDF を変換して、その内容に基づいて回答します。MCP サーバーが含まれています。 |
| Claude app およびスキル対応アプリ | Customize → Skills から htpd-skill.zip を追加します。 |
| 任意の MCP クライアント(Antigravity、Codex、Cursor など) | pip install htpd-reader を実行し、続けて htpd-mcp --bundles <folder> を実行します。または、MCP レジストリで io.github.narendrachampaneri/htpd を探します。 |
| ChatGPT、Gemini | .htpd ファイルをアップロードするか、すぐに使える指示を使ってカスタム GPT / Gem を作成します。 |
コンバーター(PDF → .htpd) | ダウンロードして htpd-0.1.2-linux-x64.tar.gz(Linux、WSL を使う Windows)を入手し、./htpd convert manual.pdf --single を実行します。 |
コンバーターとリーダーはお使いのコンピューター上で動作します。AI に渡るのは、AI に提供したテキストだけです。
AI で使う
あらゆる AI チャットで使えます — ファイルをアップロードするだけ
htpd convert manual.pdf --single を実行すると、1 つの .htpd ファイルが作成されます。最初にモデル向けの読み取りルールが記載されています。このファイルだけを根拠に回答し、すべての事実にページ番号を付け、回答が記載されていない場合はその旨を伝えるというルールです。続いて、目次と各ページ番号付きのすべてのセクションが収録されます。
PDF の代わりに Claude、ChatGPT、Gemini、その他のアシスタントにアップロードしてください。アプリがこの拡張子に対応していない場合は、manual.htpd.txt に名前を変更してください。プレーンテキスト形式です。いつでもドキュメントを参照できる ChatGPT のカスタム GPT や Gemini Gem については、貼り付けるだけで使える手順を docs/AI-APPS.md でご覧ください。
チャットに収まるドキュメント(数百ページのデータシートなど)に最適です。非常に大きなマニュアルには、以下のスキル、プラグイン、または MCP をお使いください。
Claude アプリとスキル対応アプリ — htpd スキル
| アプリ | 追加方法 |
|---|---|
| Claude アプリ | Customize → Skills を開き、htpd-skill.zip をアップロードして、有効にします(コード実行をオンにする必要があります)。その後、.htpd ファイルをチャットにアップロードして質問してください。 |
| Claude Code | プラグイン(以下を参照)をインストールするか、~/.claude/skills/ に解凍します。 |
SKILL.md を読み込むその他のエージェント | スキルフォルダーに解凍します。 |
このスキルは Python のみで動作する小さなスクリプトを実行します。パッケージもモデルも必要ありません。該当するセクションを見つけ、[page, section] 付きの正確な行を返します。AI がスクリプトの返した内容だけを読むため、数千ページのマニュアルでも機能します。
Claude Code — htpd プラグイン
/plugin marketplace add narendrachampaneri/htpd
/plugin install htpd@htpd
その後、「datasheet.pdf を htpd に変換して」「datasheet.htpd で最大 NPU 周波数はいくつ?」のように普通の言葉で依頼するか、/htpd:convert datasheet.pdf --single を実行してください。初回の変換時に、リリース済みのコンバーターが一度だけダウンロードされます(Linux および WSL 用、約 4 MB、SHA-256 で検証)。PDF がコンピューターの外に送信されることはありません。
MCP 対応エージェント — htpd-mcp サーバー
pip install htpd-reader # htpd-read and htpd-mcp, nothing else needed
claude mcp add htpd -- htpd-mcp --bundles ~/manuals # Claude Code
Antigravity、Codex、Cursor、または任意の MCP クライアントでは、コマンドに htpd-mcp、引数に --bundles /path/to/your/htpd/files を指定してください。このサーバーは公式 MCP レジストリにも io.github.narendrachampaneri/htpd として登録されています(クライアントは uvx htpd-reader で起動します)。ツール:list_bundles、contents、open_section、search、ask、figure(図の画像)、check。
開発者向け
仕組み
flowchart LR
PDF["📄 PDF<br/>scanned or digital"] -->|htpd convert| H["HTPD<br/>sections · pages · tables · figures"]
H -->|upload| CHAT["AI chat<br/>(file + reading rules)"]
H -->|skill · plugin · MCP| AGENT["AI agent<br/>(Claude, Antigravity, Codex)"]
CHAT --> ANS["Answer from the exact text<br/>with page numbers"]
AGENT --> ANS
| 部品 | 機能 |
|---|---|
コンバーター htpd(C++23、PDFium) | 位置とフォントを含めてすべての文字を読み取り、ヘッダーとフッターを除去し、見出し(ブックマーク、印刷された目次、番号、フォントサイズ)を検出して、テキストをセクションに分割します。表は行として、コードはコードとして保持し、図はキャプション付きの PNG として保存し、スキャン画像は OCR で読み取ります。 |
リーダー htpd-read(Python、標準ライブラリのみ) | 質問に答えるセクションを見つけ(単語検索、タイトルのツリー、小規模な学習済み再ランキングモデルを使用)、該当するテキストとページ番号だけをまとめて、回答を示す正確な行を選び、ファイルで回答できない場合はその旨を伝えます。スキル、プラグイン、MCP サーバーとしても利用できます。 |
リリースページからダウンロードできます(ビルド不要)。
tar xzf htpd-0.1.2-linux-x64.tar.gz
cd htpd-0.1.2-linux-x64
./htpd convert manual.pdf --single # writes manual.htpd
sudo apt install tesseract-ocr # optional: read scanned pages too
ソースからビルド - Linux(Ubuntu 24.04、WSL も対応)、g++ 13 以降、make または CMake、Python 3.10 以降:
git clone https://github.com/narendrachampaneri/htpd.git && cd htpd
./scripts/get_pdfium.sh # the PDF engine, once (about 4 MB)
make # builds build/htpd
make test # the C++ tests
変換して質問する:
./build/htpd convert manual.pdf --single # one file: manual.htpd (for AI chats)
./build/htpd convert manual.pdf # a folder: manual.htpd/ (for tools and agents)
pip install htpd-reader # or: python3 -m pip install -e .
htpd-read ask examples/single-file/sample.htpd "What is the maximum bus voltage?"
[page 2, 2.1.1 Limits]
Parameter | Min | Typ | Max | Unit
Bus voltage | 200 | 400 | 480 | V
回答の各行は、ファイルから一字一句そのままコピーされます。--context を指定すると、AI にセクション全体が追加されます。その他のコマンド:contents、section、search、figure、check - 詳しくは
reader/README.mdをご覧ください。
形式
HTPD ドキュメントは、いくつかのフィールドを含む Markdown のプレーン UTF-8 テキストです。どのモデル、エディター、grep でも読み取れます。
HTPD ファイルの 1 セクション(短縮版)
## [S14] 4.1.5 Maximum frequency of main modules
Path: 4 Electrical characteristics > 4.1 Chip-level conditions > 4.1.5 Maximum frequency of main modules - page 18
```text
Cortex®-A55 cores | 0.9 GHz | 1.4 GHz | 1.7 GHz
DRAM | 933 MHz | 1400 MHz | 1866 MHz
NPU | 500 MHz | 800 MHz | 1000 MHz
```
- セクションはドキュメント自体の見出しに従ってツリーを形成し、親、子、前、次の関係を持ちます。
- ページマーク `` は各ページのテキストの前に置かれます。
- 表はセルを
|で区切った行で構成されます。コードとリストの間隔はそのまま保持されます。 - 図はキャプションとページ番号を含む PNG 画像で、ファイル内に保存されます。
- 2 つの形式で同じ内容を保持: 単一の
.htpdファイル(チャット用)と、セクションごとに 1 ファイルを含むフォルダー(ツール用)。後者は有効なオープンナレッジ形式バンドルでもあります。
仕様の全文はdocs/FORMAT.mdをご覧ください。
例:examples/single-file/sample.htpdおよび
examples/sample.htpd/。
品質
速度とサイズ - 図と OCR を有効にした単一ファイル、2 コアのクラウドマシンでの測定:
| ドキュメント | ページ数 | セクション数 | 図の数 | PDF → .htpd | 時間 |
|---|---|---|---|---|---|
| NXP i.MX 93 Automotive Data Sheet | 109 | 114 | 53 | 1.7 MB → 2.5 MB | 1.2 s |
| NXP i.MX 93 Reference Manual | 5 652 | 5 929 | 637 | 56.3 MB → 39.8 MB | 67 s |
| RISC-V Debug Specification | 119 | 164 | 3 | 2.4 MB → 0.7 MB | 3.4 s |
| Arm AAPCS64 | 65 | 125 | 5 | 0.4 MB → 0.3 MB | 0.3 s |
| RISC-V Unprivileged ISA | 670 | 760 | 25 | 4.5 MB → 2.8 MB | 4.9 s |
図を含むファイルでは、その大部分を占めるのがファイル末尾の画像です。テキストはその前にあります。--figures off を指定すると、図は除外されます。
回答の検索 - 2 つの公開マニュアルに関するテスト質問 133 件(評価ハーネスが作成。詳細はeval/report.md):
| 最初に正しいセクションを特定 | 上位 5 件以内に正しいセクション | 正しいページ | AI 用テキスト内に回答がある | |
|---|---|---|---|---|
| HTPD リーダー | 0.78 | 0.95 | 0.64 | 0.86 |
| HTPD セクションの単純な単語検索 | 0.64 | 0.87 | 0.55 | 0.83 |
| 500 トークンのチャンクに対する単純な単語検索 | 0.32 | 0.72 | 0.51 | 0.83 |
AI に渡すテキストはドキュメント全体の約 6 % です。また、マニュアルに答えがない質問の 95 % に対して、リーダーは「このファイルにはありません」と正しく回答します。
さまざまな PDF に対応 - Word、LaTeX、Chrome、wkhtmltopdf、スライドソフトウェアで作成された、既知のテキストを含む 45 件の PDF。スキャンしたものや、文字が図形として描画されたものも含みます(tests/zoo):テキストの 99 % が順序どおり、見出しの 96 %、表の行の 89 % が完全に一致します。
堅牢性 - 2 段組み、横向きの表、回転したページ、1500 ページ、暗号化、途中で切り詰められたファイル、破損したファイルなど、難しい PDF 34 件でストレステストを実施:クラッシュやハングはなく、すべてのファイルが有効で、単語の欠落もありません。変更のたびに C++ テスト 102 件と Python テスト 155 件を実行します。
プロジェクトの構成
フォルダーとドキュメント
include/ src/ cli/ the converter (C++23, PDFium is used in one file only)
reader/htpd_reader/ the reader: bundle, check, search, retriever, re-ranker, packer, answer, MCP server
skills/htpd/ the skill for AI apps (scripts/build_skill.py packs it)
skills/convert/ the plugin's skill that converts PDFs
.claude-plugin/ the Claude Code plugin and its marketplace (this repository is both)
eval/ evaluation harness, baselines, report
model/ the training of the re-ranker
tests/ C++ tests, test PDFs, the stress test, the document zoo
docs/ FORMAT.md · CONVERTER.md · READER.md · AI-APPS.md · BACKGROUND.md
examples/ a converted document in both forms
| ドキュメント | 対象 |
|---|---|
docs/FORMAT.md | フォーマット:誰でもこれをもとにリーダーを作成できます |
docs/CONVERTER.md | ビルド方法、オプション、コンバーターの仕組み、テスト内容、制限事項 |
reader/README.md | リーダー、そのコマンドと Python API |
docs/READER.md | リーダーが回答を見つける方法と、その評価方法 |
docs/AI-APPS.md | ChatGPT のカスタム GPT と Gemini Gem |
docs/BACKGROUND.md | HTPD がこのような設計になっている理由 |
AGENTS.md | コントリビューターとコーディングエージェント向けのルール |
貢献
イシューやプルリクエストを歓迎します。変更を加える前に、
AGENTS.md をお読みください。要点は次のとおりです。
- 変更をマージする前に、すべてのテストに合格する必要があります:
make testとpython3 -m pytest。 - コードに新しいルールを追加する場合は、そのルールがなければ失敗するテストも追加してください。
- テキストを失わせたり、テキストを捏造したりしないでください。
- HTPD ファイルへの書き込み内容を変更する場合は、同じコミットで
docs/FORMAT.mdも更新してください。
ライセンス
HTPD は Apache License 2.0 に基づくオープンソースです。著作権表示とライセンス表示(NOTICE)を保持し、変更内容を明記すれば、商用製品を含め、使用、変更、共有できます。
このライセンスには、すべてのコントリビューターによる特許の使用許諾が含まれています。
コンバーターが使用する PDFium はこのリポジトリには含まれておらず、独自のライセンス(BSD スタイルで、Apache-2.0 の条項を含む)があります。scripts/get_pdfium.sh の実行後、そのライセンス文書は
third_party/pdfium/licenses/ にあります。libpdfium.so とともにこのプログラムを他の人に渡す場合は、これらのファイルも渡してください。
Narendra Champaneri 作成 · HTPD Studio · リリース · PyPI
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。