mcpField
P
pdfstudio

pdfstudio

本地服务
github.com/Kayforkind生产力11 天前更新

关于 pdfstudio

PDF Studio 是本地 PDF 编辑器,提供 MCP 服务和 CLI,供文档工作流使用。其 10 个 Agent 工具共用同一引擎,文档内容不会通过网络发送。

主要功能

  1. 01改写 PDF 内容流中的现有文本
  2. 02填写表单并添加签名或批注
  3. 03删除敏感内容并验证导出文件
  4. 04运行 OCR 和可选的设备端 AI
  5. 05比较 PDF 并管理页面

适用场景

  1. 01不上传文件即可修改合同文本
  2. 02删除敏感内容并检查导出结果
  3. 03通过本地 OCR 搜索扫描页面

MCP 相关

`pdfstudio-mcp` 服务通过 stdio 暴露 10 个 PDF 工具。它使用同一本地引擎,不会通过网络发送文档内容。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kayforkind-pdfstudio": {
"command": "npx",
"args": [
"-y",
"pdfstudio-mcp"
]
}
}
}
启动命令npx -y pdfstudio-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpdfstudio-mcp1.0.2

工具

10

收录的工具列表 · 更新于 1 周前

参数类型必填说明
pathstring是相对于服务端根目录的 PDF 路径

详细介绍

PDF Studio

一款无需后端的 PDF 编辑器。它会在浏览器中重写文件的内容流。

▶ 在线试用 — 无需安装、无需上传、无需账号

直接使用引擎。 MCP 服务通过 npm 安装;CLI 从仓库构建。

npx pdfstudio-mcp --root ./docs --read-only  # MCP: 10 PDF tools over stdio, no API key
npx pdfstudio info contract.pdf              # CLI — from a clone, after `npm run build:packages`

MIT · TypeScript · 零服务器 · 整个处理流程都可以在此仓库中审查。

▶ 在线试用 许可证:MIT CI 版本发布 GHCR 文档 测试:88 项通过

🎬 观看实际演示(31 秒)——原位编辑文本、真正涂黑内容、添加便笺、高亮、比较两份 PDF 并打印。录制自在线应用;任何内容都不会离开浏览器。

演示 — 打开演示文档,按 E,点击任意一行文本,然后重新输入

真实录制:上方的标语是实时重新输入的——文件中的原始文本操作符被重写,而非叠加在上方。

觉得有用?点击页面顶部的星标,可以帮助其他人发现它。


快速开始

在浏览器中使用,无需安装: navigatorslab.com/pdf-studio

使用 Docker 自托管,一条命令:

docker run -p 8080:80 ghcr.io/kayforkind/navigatorslab-pdf-studio:latest
# → http://localhost:8080

从源代码使用 CLI(三条命令):

git clone https://github.com/Kayforkind/NavigatorsLab-PDF-Studio && cd NavigatorsLab-PDF-Studio
npm install && npm run build:packages
npx pdfstudio info contract.pdf

问题

大多数“免费”PDF 编辑器都采用同一种做法:把你的合同或身份证上传到别人的服务器,编辑三页,然后在你按下保存的那一刻,弹出付费墙、水印、页数限制或注册页面。(坦诚的例外是可自托管的工具——但那需要你自己运行基础设施。)真正能修改现有文本的桌面编辑器则需要订阅。

解决方案

PDF Studio 100% 在浏览器中运行。你的文件在自己的设备上打开、编辑和保存——没有服务器需要上传文件。与大多数免费编辑器不同,它不会假装能编辑:编辑工具会直接重写页面的内容流。文件中的原始文本会被删除,你输入的替换内容会作为真正的矢量文本写入。不是叠加层,也不是覆盖在上方的文本框。旧字节不复存在。

30 秒即可试用:打开在线应用,拖入任意 PDF,按 E,点击任意一行已有文本,然后重新输入。


功能介绍

✏️ 真正的文本编辑点击任意一行或表格单元格,然后重新输入。导出为真正的矢量文本,可搜索且打印清晰。
📝 表单填写真正的 AcroForms(文本框、复选框、单选按钮、下拉框),然后将其扁平化,让其他人无法更改你的答案。
🖋️ 签名和批注签名板、高亮、画笔、箭头、形状、便签、图像印章——全部是真正的矢量内容。
🖤 涂黑真正的涂黑——导出时,被遮盖的文本会从文件中删除,而非仅仅覆盖。(白色遮盖仅有视觉效果;敏感数据请使用涂黑功能。)
🔠 OCR通过设备端 Tesseract,将扫描页面转换为可编辑文本(EN/ES/FR/DE)。绝不上传。
🤖 设备端 AI针对文档提问;真正的大模型通过 WebAssembly 在浏览器中运行。你的数据绝不会离开设备。
⚖️ 修订对比添加两个版本,即可获得逐行差异。付款条款是否有变化?现在你就能知道。
📄 页面重新排序、旋转、合并、拆分、复制、删除。在导出时添加页码、水印、页眉和页脚。
📱 随处使用PWA——可安装到手机或桌面设备,支持离线使用,并会自动保存和恢复你的会话。
截图 — 上述功能均为运行中的应用实际截图

完整编辑器——永久免费,设计上注重隐私 PDF Studio — 完整编辑器,永久免费,设计上注重隐私

编辑提示——原文中的每一行都是可点击的目标 编辑提示——原文中的每一行都是可点击的目标

批注——带颜色和不透明度控件的下划线工具 带颜色和不透明度控件的下划线工具

真正的涂黑——被遮盖的文本会从文件中删除,而非仅仅覆盖 真正的涂黑——被遮盖的文本会从文件中删除,而非仅仅覆盖

签名板——使用鼠标、触控板或触摸屏绘制 签名板——使用鼠标、触控板或触摸屏绘制

签名——已盖到页面上 已盖到页面上的签名

表单——值已写入真正的 AcroForm 字段 填写表单字段——值已写入真正的 AcroForm 字段

对比——两个版本的逐行差异 对比两个 PDF——两个版本的逐行差异

导出——页面范围、拆分、印章、文档属性 导出对话框——页面范围、拆分、印章、文档属性

设备端 AI——针对文档提问,无需上传 设备端 AI 助手——针对文档提问,无需上传

移动端——底部工具栏、全宽页面 移动端布局——底部工具栏、全宽页面


工作原理

所有操作都在浏览器中完成——文件会在你自己的设备上打开、编辑和保存。处理流程如下:

  1. 打开 — PDF 会载入浏览器内存,不会上传任何内容。
  2. 编辑 —“编辑”工具会重写页面的内容流:从文件中删除原始文本,并将替换内容作为真正的矢量文本写入。
  3. 填写并签名 — 将值填入实际的 AcroForm 字段;签名会绘制在页面上。导出时将表单扁平化,以固定内容。
  4. OCR — 扫描页面会通过设备端 Tesseract 添加文本层,使其可搜索、可编辑,也可涂黑。
  5. 涂黑 — 在需要删除的内容上绘制方框。在编辑器中,这些方框只是标记为待涂黑(带斜线):这是一种承诺,并非真正删除。此时尚未删除任何内容。
  6. 导出 — 文件会从头重建。涂黑会在这一步销毁内容:完全被覆盖的文本会从内容流中删除(递归处理嵌套的表单对象);任何无法确认可安全移除的内容(部分覆盖的文本、图像、特殊字体)都会导致相应页面被渲染为像素图,并将方框直接烧录到图像中,原始内容则会丢弃;方框下的表单值、注释、无障碍树文本、元数据、XMP、附件、JavaScript 和缩略图都会被清除。随后会扫描成品文件,检查多种编码中的所有被覆盖字符串——如果仍能恢复任何已涂黑内容,就不会交付文件;导出会明确失败,而不会交给你一个仍会泄露内容的文件。

导出后,应用会显示验证报告(已涂黑区域、已检查字符串数、可恢复内容:零)。相比之下,白色遮盖仅改变视觉效果——它会覆盖内容,但不会将其移除。敏感数据请使用涂黑功能。

完整说明:工作原理 — 文档


对比

PDF Studio 是一款无需设置的工具,提供完整编辑器,并且绝不会上传你的文件。

PDF StudioAdobe Acrobat ProStirling-PDF免费网页编辑器¹
价格免费,MIT约 US$19.99/月(按年订阅,按月付费)²开放核心,可免费自托管免费版有限制,且含广告
文档存放位置无处可去——文件绝不会离开浏览器Adobe 的服务器你自己的服务器它们的服务器
真正的原位文本编辑支持支持Alpha不支持——只能批注/叠加
涂黑删除字节,并在导出前验证支持(Pro)支持因产品而异——请自行验证
面向 Agent 的 CLI + MCP支持——同一引擎,100% 本地运行不支持不支持不支持
无需设置支持不支持不支持(需要 Docker)支持
离线使用支持(PWA)仅桌面端你的服务器不支持
开源MIT不开源开放核心不开源

¹ Smallpdf、iLovePDF、PDF24 等。各产品彼此不同;此行描述的是这一类别,而非某个具体产品。² Adobe 公布的方案,核对日期为 2026-10-08——价格和方案可能变化。

完整且附有来源的对比:COMPARISONS.md · 网页版本。

**开发者视角的区别:**这里的涂黑不是一种承诺,而是一道关卡。导出器会扫描自己的输出,检查 UTF-8、UTF-16BE/LE 和十六进制编码中的所有被覆盖字符串,并同时检查交付的字节和解压后重新序列化的内容。如果仍有任何内容可恢复,就不会生成文件。


需要如实说明的限制

PDF Studio 目前还无法做到以下几点:

  • 文本编辑需要实际的文本层。扫描页面需先经过设备端 OCR 处理。
  • 替换文本使用 Helvetica 字体度量,因此对于特殊的嵌入字体,只能做到近似匹配,无法保证字形完全一致。
  • 设备端 AI 使用小型模型(0.5B 到 1B)。它能很好地总结文档并回答相关问题,但并非前沿模型。
  • 不支持实时协作,也不提供云同步。自动保存仅保存在你使用的浏览器中。
  • 签名是绘制后放置在页面上的签名,不是经认证的数字签名。

隐私——从架构上确保绝对隐私

问题答案
我的文件会被发送到哪里?不会发送到任何地方。 没有上传端点。编辑时打开开发者工具:文档字节永远不会离开你的设备。
会收集我的任何数据吗?不会。 没有账户,也不会分析你的文档。会话会在你的浏览器本地自动保存。
会下载什么?应用本身,以及可选的公共 AI/OCR 模型权重(首次获取后会缓存)。你的文档不会经过网络传输。
可以断网隔离使用吗?基本可以。 应用和 OCR 引擎已打包,可离线运行。只有可选的 AI 助手会下载模型权重(首次使用时从 Hugging Face 下载)。在离线网络中请跳过 AI 助手;目前还不能将模型源改为内部镜像。

安全性

安全性:A-

安全评估——2026-09-28——总体评级 A−。 每项声明都已对照源代码核实。完整评估:SECURITY_ASSESSMENT.md · Agentic(CLI/MCP)补充说明 · 报告政策。

剩余风险(如实说明): 自动保存的内容以明文形式存储在你的磁盘上,因此在共用设备上使用后请清除;AI 模型权重通过 TLS 从 HuggingFace 获取,但未经哈希验证。这两种情况都不会让数据离开你的设备。

发现问题了吗?请私下报告——参见 SECURITY.md。


面向开发者

git clone https://github.com/Kayforkind/NavigatorsLab-PDF-Studio
cd NavigatorsLab-PDF-Studio
npm install
npm run dev        # http://localhost:5199
npm test           # 88 app tests
npm run test:packages   # core, CLI, and MCP tests (builds packages first)
npm run build      # → dist/ (relative base: works at domain root, subpath, or CDN)

技术栈: TypeScript · React 19 · Vite · pdf.js(渲染)· pdf-lib(写入)· Tesseract.js(OCR)· WebLLM(AI)· vite-plugin-pwa。零后端。

三个接口,一个引擎: 浏览器应用、pdfstudio CLI(9 个命令)和 pdfstudio-mcp(10 个工具,可独立发布——参见 packages/mcp)。 三者都使用 pdf.js 解析,并以相同方式重写内容流;它们都不会在网络调用中发送文档字节。

额外工具: packages/redact-check——拖入 PDF,查看黑框下仍隐藏的文本。这是一个小巧、独立的示例,说明仅在文本上涂黑的“涂黑”毫无意义。

有趣的工程设计: 每个标记都位于页面的 PDF 用户空间中——屏幕上的叠加层和导出器共用同一套感知 CropBox 的变换计算(src/lib/viewport.ts),并通过针对 pdf.js 自有 PageViewport 的测试进行验证,其中包括偏移的 MediaBox/CropBox 原点;这些原点会导致大多数自制编辑器出错。文本编辑通过内容流分词器处理:删除原始字形的显示文本运算符,并使用 TJ 字距调整写回替换文本,以重现原始间距。Tesseract、pdf.js workers 和 WASM 都在严格的内容安全策略下运行,处理文档数据时不进行任何网络调用。

测试套件(88 项): i18n(语言检测、切换、持久化、清除、es/de/fr/pt 目录完整性)· 文档模型操作与撤销语义 · 在 0/90/180/270° 下与 pdf.js 保持视口一致 · 使用 pdf.js 重新解析的导出往返测试 · LCS 差异引擎 · 内容流分词器 + 深层文本重写/矢量涂黑往返测试 · 表格单元格命中拆分。

适合新手的问题会标记为 good first issue——参见 CONTRIBUTING.md。

帮助翻译

PDF Studio 提供英语、西班牙语、德语、法语和葡萄牙语版本(葡萄牙语是机器起草的初稿,等待母语人士审核),整个 UI 都可本地化——应用内置了翻译,因此切换语言完全可以离线完成。如果你懂其他语言,也可以帮忙:

  • **无需编写代码:**翻译由 Crowdin 管理(链接见置顶议题)——在浏览器中翻译或为字符串投票。
  • **通过代码参与:**编辑 src/locales/<lang>/translation.json(从 src/locales/en/translation.json 复制英语键,保留所有 {{placeholder}} 和 <b>/<code> 标签),然后运行 npm test -- src/lib/i18n.test.ts——目录完整性测试会逐个键与英语文件进行比对。

创建 JSON 文件并在 src/i18n.ts 的 LANGUAGES 中注册语言后,系统会自动启用新语言。

Agent 使用

PDF Studio 提供两个原生 Agent 接口,它们与应用使用完全相同的内容流引擎。无需新增解析代码,不进行网络调用,文档字节不会离开本机。

npm install
npm run build:packages

在仓库根目录中运行 npx pdfstudio … 使用 CLI,或者通过 npm link -w packages/cli 全局安装,然后在任意位置调用 pdfstudio。构建后,MCP 服务位于 packages/mcp/dist/index.js。

CLI 和 MCP 参考

所有命令和工具均已记录在文档网站中:CLI 参考 · MCP 参考。

主要 CLI 命令:pdfstudio info、extract-text、search、edit-text、redact、merge、split、rotate、pages。MCP 服务提供对应的 pdf_* 工具。为遵循最小权限原则,--read-only 只注册三个读取工具。路径会在 --root 内解析为真实路径,并拒绝通过符号链接逃逸。

约定:- 从标准输入读取,-o - 向标准输出写入,报告输出到标准错误。退出代码:0 表示成功,1 表示错误,2 表示没有匹配项或没有任何更改。读取命令可使用 --json 进行脚本处理。

以下示例建议默认使用 --read-only。它只注册三个读取工具(pdf_info、pdf_extract_text、pdf_search_text),因此 Agent 无法修改文件。只有当 Agent 需要编辑工具时才移除此标志。

Claude Code:

claude mcp add pdfstudio -- node /path/to/NavigatorsLab-PDF-Studio/packages/mcp/dist/index.js --root /path/to/your/docs --read-only

Cursor / Cline / 任意 MCP 客户端(mcp.json):

{
  "mcpServers": {
    "pdfstudio": {
      "command": "node",
      "args": ["/path/to/NavigatorsLab-PDF-Studio/packages/mcp/dist/index.js", "--root", "/path/to/your/docs", "--read-only"]
    }
  }
}

**Agent 隐私保证:**CLI 和 MCP 服务不会进行任何网络调用。与 Web 应用一样,解析(pdf.js)、编辑(内容流重写)和写入(pdf-lib)都在进程内完成。脱敏会从文件中删除文本操作符,并重建输出文件,以一并清除孤立字节。

**提示词注入说明:**PDF 内容是不可信输入。提取和搜索结果会以分隔符标记为数据。Agent 应将文档文本视为数据,而非指令。如果你的 Agent 框架会将工具输出回显到上下文中,请注意这一边界。

使用 Docker 自托管

无需后端,因此只需一条命令即可自托管。每次发布时都会将镜像推送到 GHCR:

docker run -d -p 8080:80 --name pdf-studio ghcr.io/kayforkind/navigatorslab-pdf-studio:latest
# → http://localhost:8080

或者自行构建:

docker build -t pdf-studio .
docker run -d -p 8080:80 pdf-studio

容器通过 nginx 提供静态 dist/ 构建版本——你的文档仍不会离开运行该容器的机器。


构建者

Kazim Raza(@Kayforkind)——PDF Studio 的创建者和 NavigatorsLab 的创始人。


常见问题

  • 真的免费吗?有什么隐情吗? — 免费,采用 MIT 许可,没有隐情。无需账号,没有水印,没有上限,也没有“专业版”。你可以分叉、自托管并发布。
  • 这和其他免费 PDF 编辑器有什么不同? — 其他编辑器只能让你添加注释(在内容上叠加文本框)。PDF Studio 会重写内容流:从文件中删除原始文本运算符,并将替换内容作为真正的矢量文本写入。
  • 有哪些实际限制? — 编辑文本需要文本层(纯扫描件需要使用 OCR 工具)。替换文本使用 Helvetica 度量数据——效果近乎一致,但无法与特殊嵌入字体的字形完全吻合。本地设备上的 AI 运行小型模型(0.5B–1B):很擅长总结文档,但不是前沿模型。

许可证

MIT — 可免费用于个人用途、商业用途以及两者之间的任何用途。这正是我们的初衷:LICENSE。

免费。开源。凭架构保障隐私,而非依赖政策。

立即使用 · navigatorslab.com

评论

支持 Markdown

第一次接触 MCP?

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

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