mcpField
U
Utilitly PDF

Utilitly PDF

本地服务
utilitly.com生产力02 周前更新

关于 Utilitly PDF

Utilitly PDF 是供 AI 应用调用的本地 MCP 服务,可在电脑上执行 PDF 页面操作。它限制文件访问范围,并将结果另存为新文件。

主要功能

  1. 01合并 PDF 文件
  2. 02按页码范围拆分 PDF
  3. 03提取、旋转、删除、重排或复制页面
  4. 04查看页数、文件大小和加密状态
  5. 05将文件访问限制在指定文件夹
  6. 06生成新文件而不覆盖原件

适用场景

  1. 01将每月报告合并为一个 PDF
  2. 02把手册拆分为多个章节
  3. 03旋转或删除扫描文档中的页面
  4. 04检查 PDF 页数和密码保护状态

MCP 相关

通过本地服务向 MCP 客户端提供 PDF 查询和编辑工具。文件在电脑上读写,PDF 内容不会上传。

配置

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

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

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

安装包
npm@utilitly/mcp0.1.1

工具

8

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

参数类型必填说明
pathstring是PDF 文件的绝对路径,或以 ~/ 开头的路径。

详细介绍

在 AI 聊天中,有人请求合并两份发票并删除空白页;merge_pdfs 和 delete_pages 工具运行后,新 PDF 出现在未修改的原文件旁边

@utilitly/mcp

Utilitly PDF MCP server

适用于 Claude、ChatGPT 桌面应用、Codex、Gemini CLI、Cursor 以及任何能运行本地 MCP 服务的应用的 PDF MCP 服务。让 AI 合并、拆分、旋转、删除、重新排序或复制页面,它就会在你自己的电脑上处理 PDF 文件。

该服务与 AI 应用一同在本地运行,并在文件所在位置进行编辑。它基于 Utilitly 的开源 PDF 引擎构建,这些引擎移植自 utilitly.com 上的免费工具;它绝不会替换文件:每个结果都是与原文件放在一起的新 PDF。

安装

你需要 Node.js 22 或更高版本。首次运行时会通过 npx 下载服务。

包名后面的文件夹是服务唯一可以读写的位置。请将其改为 PDF 文件所在的位置。

Claude Code

claude mcp add utilitly -- npx -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop

Claude Desktop:打开 Settings,然后依次选择 Developer 和 Edit Config,将以下内容添加到 claude_desktop_config.json。之后重启 Claude Desktop。

{
  "mcpServers": {
    "utilitly": {
      "command": "npx",
      "args": ["-y", "@utilitly/mcp", "~/Documents", "~/Downloads", "~/Desktop"]
    }
  }
}

Cursor:将相同的 mcpServers 块放入 ~/.cursor/mcp.json。

ChatGPT 桌面应用和 Codex 共用一套设置,因此将服务添加到其中一个应用后,也会添加到另一个应用。在 ChatGPT 应用中,打开 Settings,然后依次选择 MCP servers 和 Add server。选择 STDIO,输入命令 npx,参数为 -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop,保存并重启。使用 Codex CLI 时:

codex mcp add utilitly -- npx -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop

Gemini CLI:-- 后的所有内容都会传递给 npx,而 -s user 会让服务在你启动 Gemini 的每个文件夹中都可用。

gemini mcp add -s user utilitly npx -- -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop

其他任何能启动本地(stdio)MCP 服务的应用:命令为 npx,参数为 -y @utilitly/mcp,后面再接文件夹。

该服务也已列入官方 MCP Registry,名称为 com.utilitly/mcp,因此读取此注册表的应用和目录都能通过这个名称找到它。

关于文件夹列表

路径会在解析符号链接后进行检查,因此允许访问的文件夹中的链接无法指向其他位置。

如果不指定文件夹,服务可能会使用你有权访问的任何文件。它仍然不会覆盖或删除任何内容,也不会向 AI 显示 PDF 的内容。但是,被其他地方读取的信息误导的 AI 可能会将你的任意 PDF 复制到任意文件夹,因此除非你需要让它访问所有位置,否则请列出文件夹。

30 秒快速体验

安装完成后,用日常语言提出请求,并使用完整路径:

  • “合并 ~/Downloads/march.pdf 和 ~/Downloads/april.pdf。”
  • “删除 ~/Desktop/scan.pdf 中的第 3 页空白页。”
  • “将 ~/Documents/handbook.pdf 拆分为第 1–12 页、第 13–30 页,以及第 31 页到最后一页。”
  • “~/Desktop/scan.pdf 的第 2 到第 4 页是横着的;把它们转正。”
  • “~/Documents/contract.pdf 有多少页?它是否已锁定?”

工具

工具功能写入的新文件
pdf_info页数、文件大小、首页尺寸,以及 PDF 是否受密码保护。不做任何更改。无
merge_pdfs按给定顺序合并 PDF。<first>-merged.pdf
split_pdf每个范围生成一个文件,例如 "1-2, 3-end"。<name>-part1.pdf、-part2.pdf、……
extract_pages将选定页面按页码顺序合并为一个 PDF。<name>-pages.pdf
rotate_pdf将页面旋转 90 度的倍数。<name>-rotated.pdf
delete_pages删除页面;至少要保留一页。<name>-trimmed.pdf
reorder_pages按新的顺序排列所有页面。<name>-reordered.pdf
duplicate_pages在每页之后或文档末尾添加副本。<name>-duplicated.pdf

结果会保存在与输入文件相同的文件夹中。每个会写入文件的工具都接受可选的 output_path,而 split_pdf 还接受可选的 output_folder。页面选择格式如 "2"、"1-3, 5" 或 "4-end"。

出现问题时,AI 会收到简短的错误代码和可采取行动的说明,例如 NO_PAGES: "9" 不匹配任何页面。PDF 有 4 页。 或 ENCRYPTED: File 2 受密码保护。请先移除密码,然后重试。

它能处理和不能处理的内容

  • 它绝不会覆盖文件。如果 report-merged.pdf 已存在,结果文件名会变成 report-merged-2.pdf;如果 output_path 指向已存在的文件,则会被拒绝。
  • 输入文件只会被读取,不会被更改。
  • 路径必须是绝对路径或以 ~/ 开头,这样 AI 就不会因使用相对路径而误入错误文件夹。
  • 安装时列出的文件夹以外的内容无法读取或写入。
  • 遇到受密码保护的 PDF 时会拒绝处理,而不是修改它。pdf_info 会报告文件是否已锁定。
  • 一次调用最多可比输入文件总页数多添加 10,000 页;一次拆分最多写入 1,000 个文件(对于更长的 PDF,则每页生成一个文件)。对于一亿个副本之类的错误请求,会在开始处理前拒绝。

为什么不会上传任何内容

一项测试会阻止所有连接网络的途径,然后运行全部八个工具;每个工具都能完成,测试也会在未建立连接的情况下通过

PDF 处理在这项服务内部、你的机器上进行,其中不包含任何网络代码。每次更改时,test/network.test.ts 都会验证这一点:它会让建立连接、查询主机名和调用 fetch 全部抛出错误,然后运行每个工具,且它们都能成功运行。

你的 AI 应用仍会照常与模型通信。这段对话会包含你输入的所有内容(包括文件路径)以及每个工具的简短回复:它写入的路径、页数和文件大小。这项服务绝不会将 PDF 内容放入对话中。

须知

  • merge_pdfs、split_pdf、extract_pages、delete_pages、reorder_pages 和 duplicate_pages 会生成全新的 PDF,因此书签、文档属性和可正常使用的表单字段不会保留在结果中。rotate_pdf 会保留整个文档。
  • 在多个页面间共享的图像和字体仍会保持共享,因此结果文件不会膨胀。
  • 如需查看正在运行的版本,执行 npx -y @utilitly/mcp --version;执行 --help 可查看用法。

许可证

MIT。基于 @utilitly PDF engines 和 pdf-lib(两者均为 MIT 许可证),以及官方 MCP TypeScript SDK(Apache-2.0 许可证)构建。

评论

支持 Markdown

第一次接触 MCP?

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

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