mcpField
H
HTPD

HTPD

本地服务
github.com/narendrachampaneri记忆与知识25 天前更新

关于 HTPD

HTPD 将 PDF 转为结构化的 `.htpd` 文档,让 AI 系统检索带页码的原文,而非猜测答案。它面向处理长篇手册和报告的用户,并保留章节、表格、图片及标注过的 OCR 扫描文本。

主要功能

  1. 01将 PDF 转为结构化章节
  2. 02保留页码、表格和图片
  3. 03通过 OCR 读取扫描页面
  4. 04搜索并提取原文
  5. 05无相关内容时明确告知
  6. 06本地阅读器与 MCP 工具

适用场景

  1. 01查找长篇技术手册中的规格
  2. 02依据 PDF 页码核对答案
  3. 03通过 OCR 文本查询扫描文档
  4. 04让 Agent 访问大型 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 转换为一个 .htpd 文件:保留原文,一字不差,并按文档自身的章节和小节切分;标注每个段落所在的页码;将表格按行保存,并将插图保存为图片。随后,AI 只需读取回答问题所需的少数几个小节,就能根据原文作答,并提供页码,方便你核查。

原文精确无误 - 每条事实都标注页码 - 如实作答 - 100 % 本地运行

你能获得什么对你意味着什么
原文精确无误数值、部件编号和寄存器名称与 PDF 完全一致。不做摘要,也不改写。
每条事实都标注页码几秒钟内就能在原始文档中核查每个答案。
如实作答如果文档中没有答案,HTPD 会如实说明,而不是猜测。
表格和插图表格保留为行和列;示意图和照片会连同说明文字一起保存为图片。
扫描页也能处理扫描件和图片中的文字会通过 OCR(免费的 Tesseract)识别,并做出标记,方便你知晓。
私密且免费在你自己的电脑上运行。无需 GPU、账号或云服务。开源。

在浏览器中试用:HTPD Studio。


看看它如何工作

以下是针对一份公开的 109 页数据手册(NXP i.MX 93)的实际命令及其输出,较长内容已缩短。

1. 转换一次 PDF——100 页约需一秒:

htpd convert 在 1.2 秒内将 109 页数据手册转换为一个 .htpd 文件

2. 用自己的话提问——获取文档中的原文,并附上页码和章节:

htpd-read 显示目录,并针对两个问题给出对应的表格原文行和页码

3. 插图保留为图片——能识别图像的 AI 可以直接查看示意图:

htpd-read figure 将数据手册中的框图输出为图片

日常使用时,你无需输入这些命令:把 .htpd 文件交给 AI 即可,也可以让插件、技能或 MCP 服务代为处理。


一分钟内完成安装

你使用的工具操作方法
Claude Code运行 /plugin marketplace add narendrachampaneri/htpd,然后运行 /plugin install htpd@htpd——即可转换 PDF 并根据 PDF 回答问题;其中已包含 MCP 服务
Claude app 和其他支持技能的应用在 Customize → Skills 中添加 htpd-skill.zip
任何 MCP 客户端(Antigravity、Codex、Cursor 等)运行 pip install htpd-reader,然后运行命令 htpd-mcp --bundles <folder>;也可以在 MCP registry 中查找 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 聊天工具——只需上传文件

htpd convert manual.pdf --single 会生成 一个 .htpd 文件。文件开头包含模型的阅读规则——只根据此文件作答,注明每条事实所在的页码,如果文件中没有相关答案,请明确说明——之后是目录和每个带页码的章节。

将它上传到 Claude、ChatGPT、Gemini 或其他助手,而不是上传 PDF。如果应用不接受该扩展名,请将文件重命名为 manual.htpd.txt——它是纯文本。有关始终包含你的文档的 ChatGPT 自定义 GPT 或 Gemini Gem,请参阅 docs/AI-APPS.md (可直接粘贴的说明)。

最适合可在聊天中容纳的文档(例如几百页的数据手册)。对于非常大的手册,请使用下文的 skill、插件或 MCP。

Claude 应用和支持 skill 的应用——htpd skill
应用添加方法
Claude 应用在 Customize → Skills 中上传 htpd-skill.zip,然后启用它(必须开启代码执行)。接着将 .htpd 文件上传到聊天中并提问。
Claude Code安装插件(见下文),或解压到 ~/.claude/skills/。
其他可读取 SKILL.md 的 Agent解压到其 skills 文件夹中。

该 skill 运行一个小型脚本,只需要 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 的 Agent——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,仅使用标准库)查找能够回答问题的章节(词语搜索、标题树、小型训练重排器),仅提取相关文本及页码,选出准确的答案行,并在文件无法回答时予以说明。也可作为 skill、插件和 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 文档是纯 UTF-8 文本:采用 Markdown 格式,并包含少量字段。任何模型、 编辑器或 grep 都能读取。

HTPD 文件中的一个章节(已缩短)

## [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 图片,附带标题和页码,并存储在文件内。
  • **两种形式,内容相同:**单个 .htpd 文件(用于聊天)和每个章节一个文件的文件夹(用于工具);后者也是有效的 Open Knowledge Format 数据包。

完整规范见 docs/FORMAT.md。 示例:examples/single-file/sample.htpd 和 examples/sample.htpd/。


质量

速度和体积——单个文件,启用图示和 OCR,在 2 核云机器上:

文档页数章节图示PDF → .htpd耗时
NXP i.MX 93 汽车数据手册109114531.7 MB → 2.5 MB1.2 s
NXP i.MX 93 参考手册5 6525 92963756.3 MB → 39.8 MB67 s
RISC-V 调试规范11916432.4 MB → 0.7 MB3.4 s
Arm AAPCS646512550.4 MB → 0.3 MB0.3 s
RISC-V 非特权 ISA670760254.5 MB → 2.8 MB4.9 s

包含图示的文件中,大部分内容是位于文件末尾的图片;文本在前。--figures off 会将图片排除。

查找答案——针对两本公开手册的 133 个测试问题(eval/report.md,由评估工具编写):

首先找到正确章节前 5 个结果中包含正确章节找到正确页码提供给 AI 的文本中包含答案
HTPD reader0.780.950.640.86
在 HTPD 章节中进行普通词语搜索0.640.870.550.83
在 500-token 分块中进行普通词语搜索0.320.720.510.83

交给 AI 的文本约占整个文档的 6%;对于手册中没有答案的 95% 问题,reader 都能正确指出“此文件中没有”。

适用于多种 PDF——45 份包含已知文本的 PDF,由 Word、LaTeX、Chrome、wkhtmltopdf 和幻灯片软件生成,也包括扫描件和将字母绘制为形状的文件 (tests/zoo): 99% 的文本顺序正确,96% 的标题正确,89% 的表格行完全准确。

健壮性——对 34 份难处理的 PDF 进行压力测试(双栏、横向表格、旋转页面、1500 页、加密、截断和损坏文件):没有崩溃或卡住,所有文件均有效,没有丢失任何单词。每次变更都会运行 102 个 C++ 测试和 155 个 Python 测试。

项目结构

文件夹与文档
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贡献者和编码 Agent 的规则

参与贡献

欢迎提交问题和拉取请求。修改任何内容之前,请先阅读 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。