
Utilitly PDF
com.utilitly由 utilitly.com 发布v0.1.1更新于 Oct 29, 2026
Merge, split, rotate, delete, reorder and duplicate PDF pages on your computer. Nothing is uploaded.
概览
本地 MCP 服务器,让助手在你自己的电脑上合并、拆分、旋转、提取、删除、重排和复制 PDF 页面。
- 可以做什么
- 查看 PDF 的页数、文件大小、首页尺寸以及是否受密码保护
- 按指定顺序合并多个 PDF,或把一个 PDF 拆成多个页码范围
- 把选中的页面提取为一个新的 PDF
- 按 90 度的倍数旋转页面
- 删除、重排或复制页面
- 每个结果都写成输入文件旁的新文件,可选指定输出路径或文件夹
- 适用场景
- 适合把 PDF 保存在本地、想用自然语言整理文件的场景,例如合并月度账单、把手册拆成章节、把扫描件中方向不对的页面转正,而无需把文档上传到任何服务。
- 运行要求
- 需要 Node.js 22 或更高版本,首次运行会通过 npx 下载该包。作为本地 stdio 服务器在 AI 应用中配置。包名后的文件夹参数限定它可读写的目录;路径必须是绝对路径或以 ~/ 开头。无需账号、API 密钥或请求头。
安装
在 SourceWeft 中
- 打开 控制台中的 Utilitly PDF,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@utilitly/mcp
A PDF MCP server for Claude, the ChatGPT desktop app, Codex, Gemini CLI, Cursor and any other app that can run a local MCP server. Ask your AI to merge, split, rotate, delete, reorder or duplicate pages, and it does the work with PDF files on your own computer.
The server runs locally, next to the AI app, and edits files where they sit. It's built on Utilitly's open-source PDF engines, ported from the free tools on utilitly.com, and it never replaces a file: every result is a new PDF beside the original.
Install
You need Node.js 22 or newer. The first run downloads the server through npx.
The folders after the package name are the only places the server may read and write. Change them to wherever your PDFs live.
Claude Code
Claude Desktop: open Settings, then Developer, then Edit Config, and add this to claude_desktop_config.json. Restart Claude Desktop afterwards.
Cursor: put the same mcpServers block in ~/.cursor/mcp.json.
ChatGPT desktop app and Codex share one setup, so adding the server to either one adds it to both. In the ChatGPT app, open Settings, then MCP servers, then Add server. Choose STDIO, enter the command npx with the arguments -y @utilitly/mcp ~/Documents ~/Downloads ~/Desktop, save, and restart. From the Codex CLI:
Gemini CLI: everything after -- goes to npx, and -s user makes the server available in every folder you start Gemini in.
Anything else that can start a local (stdio) MCP server: the command is npx with the arguments -y @utilitly/mcp, followed by the folders.
The server is also listed in the official MCP Registry as com.utilitly/mcp, so apps and directories that read the registry can find it by that name.
About the folder list
The check happens after symlinks are resolved, so a link inside an allowed folder can't lead somewhere else.
Leave the folders out and the server may use any file you can. It still never overwrites or deletes anything, and it never shows the AI what's inside a PDF. But an AI misled by something it read elsewhere could copy any of your PDFs into any folder, so list folders unless you need it everywhere.
Try it in 30 seconds
Once it's installed, ask in plain words and use full paths:
- "Merge ~/Downloads/march.pdf and ~/Downloads/april.pdf."
- "Delete the blank page 3 from ~/Desktop/scan.pdf."
- "Split ~/Documents/handbook.pdf into pages 1-12, 13-30 and 31 to the end."
- "Pages 2 to 4 of ~/Desktop/scan.pdf are sideways; turn them the right way up."
- "How many pages does ~/Documents/contract.pdf have, and is it locked?"
Tools
Results land in the same folder as the input. Every writing tool also takes an optional output_path, and split_pdf an optional output_folder. Page selections read like "2", "1-3, 5" or "4-end".
Problems come back to the AI as a short code and a sentence it can act on, such as NO_PAGES: "9" doesn't match any page. The PDF has 4 pages. or ENCRYPTED: File 2 is password-protected. Remove the password first, then try again.
What it can and can't touch
- It never overwrites. If
report-merged.pdfalready exists, the result becomesreport-merged-2.pdf, and anoutput_paththat already exists is refused. - Input files are only read, never changed.
- Paths must be absolute or start with
~/, so the AI can't stumble into the wrong folder through a relative path. - With folders listed at install, nothing outside them can be read or written.
- Password-protected PDFs are refused rather than altered.
pdf_inforeports when a file is locked. - One call can add at most 10,000 pages beyond what its input files hold, and one split writes at most 1,000 files (or one per page for longer PDFs). A mistaken request, like a hundred million copies, is refused before anything is built.
Why nothing is uploaded
The PDF work happens inside this server, on your machine, with no network code anywhere in it. test/network.test.ts proves that on every change: it makes opening a connection, looking up a host name and calling fetch all throw, then runs every tool, and they all succeed.
Your AI app still talks to its model as usual. That conversation includes whatever you type, file paths included, and each tool's short reply: the paths it wrote, page counts and file sizes. This server never puts the contents of a PDF into the conversation.
Good to know
merge_pdfs,split_pdf,extract_pages,delete_pages,reorder_pagesandduplicate_pagesbuild fresh PDFs, so bookmarks, document properties and working form fields aren't carried into the result.rotate_pdfkeeps the whole document.- Images and fonts shared between pages stay shared, so results don't balloon in size.
- To check what's running,
npx -y @utilitly/mcp --versionprints the version and--helpthe usage.
License
MIT. Built on the @utilitly PDF engines and pdf-lib (both MIT), and the official MCP TypeScript SDK (Apache-2.0).
来源:README.md,提交 3bd8f85
工具
0版本历史
1- v0.1.1最新Oct 29, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分