mcpField
H
HTPD

HTPD

ローカル
github.com/narendrachampaneriメモリ・ナレッジ25 日前に更新

HTPD について

HTPDはPDFを構造化された`.htpd`文書に変換し、AIが推測せずにページ番号付きの原文を取得できるようにします。長いマニュアルやレポートを扱う人向けで、章、表、図、OCRで読み取ったスキャン文字を保持します。

主な機能

  1. 01PDFを構造化されたセクションに変換
  2. 02ページ番号、表、図を保持
  3. 03OCRでスキャンページを読み取り
  4. 04原文の検索と取得
  5. 05記載がない場合にその旨を回答
  6. 06ローカルリーダーとMCPツール

活用シーン

  1. 01長い技術マニュアルから仕様を検索
  2. 02PDFのページ番号で回答を照合
  3. 03OCRテキストからスキャン文書を検索
  4. 04エージェントに大規模なPDF文書群を参照させる

MCP 対応

`htpd-mcp`サーバーは、文書バンドルの一覧表示、内容確認、セクション表示、検索、質問、図の取得、ファイル検査のツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"narendrachampaneri-htpd": {
"command": "uvx",
"args": [
"htpd-reader"
]
}
}
}
起動コマンドuvx htpd-reader

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

パッケージ
pypihtpd-reader0.1.2.post1

ツール

7

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

このツールにパラメーターはありません。

詳細

HTPD - ハイパーテキスト・ポータブル・ドキュメント

リリース PyPI MCP レジストリ テスト Apache-2.0

長い PDF を、AI が正確に読み取れるドキュメントに変換します。テキストは原文どおり、回答にはページ番号が付いています。

HTPD Studio を開く   ダウンロード

かんたんに説明すると  ·  動作を見る  ·  インストール  ·  AI で使う  ·  開発者向け  ·  品質  

PDF が HTPD ファイルに変わり、質問に必要なセクションだけが使われ、ページ番号付きの正確なテキストで回答します


平易な言葉で

長い PDF をお持ちだとします。300 ページのデータシート、5000 ページのリファレンスマニュアル、ポリシー、レポートなどです。それについて質問があるとき、PDF 全体を渡すと、AI は回答に時間がかかったり、詳細を見落としたり、表を混同したり、回答の根拠を示せなかったりすることがあります。

HTPD は、AI が扱いやすいように文書を準備します。 コンバーターは PDF を 1 つの .htpd ファイルに変換します。そこには元の文章が一字一句そのまま、文書独自の章や節ごとに分割されて収録され、すべての段落にページ番号が付き、表は行として、図は画像として保存されます。AI は質問に必要なわずかな節だけを読み、正確な文章に基づいてページ番号付きで回答するため、内容を確認できます。

正確な文章 - すべての事実にページ番号 - 誠実な回答 - 100 % ローカル

得られるものそのメリット
正確な文章値、部品番号、レジスター名は PDF とまったく同じです。要約や書き換えは一切ありません。
すべての事実にページ番号元の文書のどこに記載されているか、すべての回答を数秒で確認できます。
誠実な回答文書に答えが記載されていない場合、HTPD は推測せず、その旨を伝えます。
表と図表は列を保ったまま行として保存され、図や写真はキャプション付きの画像として保存されます。
スキャンページにも対応スキャン画像や写真に含まれるテキストは OCR(無料の Tesseract)で読み取られ、OCR による読み取りだと分かるように示されます。
プライベートで無料ご自身のコンピューターで動作します。GPU もアカウントもクラウドも不要です。オープンソースです。

ブラウザーで試す: HTPD Studio。


動作を見る

一般公開されている 109 ページのデータシート(NXP i.MX 93)で実行したコマンドと出力です(長い部分は短縮しています)。

1. PDF を一度だけ変換 - 100 ページなら約 1 秒です。

htpd convert が 109 ページのデータシートを 1.2 秒で 1 つの .htpd ファイルに変換します

2. 自分の言葉で質問 - 文書内の正確な一文を、ページ番号と節名とともに確認できます。

htpd-read が目次を表示し、正確な表の行とページ番号を添えて 2 つの質問に回答します

3. 図は画像のまま - 画像を認識できる AI が図そのものを確認します。

htpd-read figure がデータシートのブロック図を画像として表示します

普段の利用では、これらのコマンドを入力する必要はありません。.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 サーバーとしても利用できます。

PDF のページが、ドキュメント内の位置とページ番号付きの整った HTPD セクションになります

### クイックスタート

リリースページからダウンロードできます(ビルド不要)。

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 Sheet109114531.7 MB → 2.5 MB1.2 s
NXP i.MX 93 Reference Manual5 6525 92963756.3 MB → 39.8 MB67 s
RISC-V Debug Specification11916432.4 MB → 0.7 MB3.4 s
Arm AAPCS646512550.4 MB → 0.3 MB0.3 s
RISC-V Unprivileged ISA670760254.5 MB → 2.8 MB4.9 s

図を含むファイルでは、その大部分を占めるのがファイル末尾の画像です。テキストはその前にあります。--figures off を指定すると、図は除外されます。

回答の検索 - 2 つの公開マニュアルに関するテスト質問 133 件(評価ハーネスが作成。詳細はeval/report.md):

最初に正しいセクションを特定上位 5 件以内に正しいセクション正しいページAI 用テキスト内に回答がある
HTPD リーダー0.780.950.640.86
HTPD セクションの単純な単語検索0.640.870.550.83
500 トークンのチャンクに対する単純な単語検索0.320.720.510.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.mdChatGPT のカスタム GPT と Gemini Gem
docs/BACKGROUND.mdHTPD がこのような設計になっている理由
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

コメント

MCP は初めてですか?

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

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