mcpField
S
StayPut

StayPut

本地服务
stayput.dev生产力01 天前更新

关于 StayPut

StayPut 是在本机处理 PDF 和照片的 MCP 服务,面向需要在 Claude、Cursor、VS Code 等客户端操作文件的用户。文件只从磁盘读取并写回磁盘,不会上传;工具会创建新文件而不修改输入文件。

主要功能

  1. 01合并、拆分和旋转 PDF
  2. 02提取、重排或删除 PDF 页面
  3. 03为 PDF 页面添加页码
  4. 04将 JPG 和 PNG 转为 PDF
  5. 05查看并清除照片元数据

适用场景

  1. 01合并本地账单 PDF
  2. 02提取合同中的指定页面
  3. 03为论文页面添加页码
  4. 04检查照片 GPS 并生成清理后的副本

MCP 相关

MCP 服务向兼容 MCP 的客户端提供本地 PDF 和照片处理工具。它在本机读写文件,不发起网络请求。

配置

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

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

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

安装包
npmstayput-mcp0.1.0

工具

9

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

参数类型必填说明
pathstring是PDF 的路径。
passwordstring否打开 PDF 时要求输入的密码。仅在此设备上使用。

详细介绍

Stayput MCP 服务

适用于 Claude、Cursor、VS Code 及所有支持 Model Context Protocol 的应用的本地 PDF 和照片工具。让助手合并 PDF、提取页面,或移除照片中的 GPS 位置,所有操作都在你自己的电脑上完成。

它运行的代码与浏览器版本 stayput.dev 相同。**文件从磁盘读取并写回磁盘;不会上传任何内容,服务也不会发起网络请求。**它免费且开源(MIT),无需账户或 API 密钥。

工具

工具功能
merge_pdfs按给定顺序合并多个 PDF
extract_pdf_pages仅保留部分页面、重新排序(“3,1,2”)或删除页面
split_pdf每页拆分为一个文件,或每 N 页拆分为一个文件
rotate_pdf将所有页面或指定页面旋转 90、180 或 270 度
number_pdf_pages添加页码,例如“第 {n} 页,共 {total} 页”
pdf_info页数、页面尺寸和标题
images_to_pdf将 JPG 和 PNG 图片合并为一个 PDF,每页一张图片,不重新压缩
inspect_image_metadata显示照片中的 GPS 位置、相机、拍摄时间及其他隐藏元数据
strip_image_metadata另存一份移除 EXIF、GPS、XMP 和注释的 JPG、PNG 或 WebP 文件,不重新编码

每个工具都会写入一个新文件并返回其路径。输入文件绝不会被修改,已有文件也绝不会被覆盖(会生成 file-1.pdf)。加密 PDF(银行对账单、受打印限制的表单)会通过 qpdf 在本地解密;对于打开时需要密码的 PDF,助手会在 password 参数中传入密码。

安装

需要 Node.js 20 或更高版本。

Claude Code

claude mcp add stayput -- npx -y stayput-mcp

Claude Desktop、Cursor、Windsurf 及其他 JSON 配置(claude_desktop_config.json、.cursor/mcp.json 等)

{
  "mcpServers": {
    "stayput": {
      "command": "npx",
      "args": ["-y", "stayput-mcp"]
    }
  }
}

VS Code

code --add-mcp '{"name":"stayput","command":"npx","args":["-y","stayput-mcp"]}'

然后可以提出如下请求:

  • “合并 ~/Downloads 中的 invoice-march.pdf 和 invoice-april.pdf”
  • “从 contract.pdf 中提取第 2 到第 5 页”
  • “IMG_2041.jpg 中包含位置信息吗?如果有,请另存一份并移除位置信息”
  • “为 thesis.pdf 添加页码,从第 3 页开始编号”

相对路径会从启动服务时所在的文件夹解析,因此最好提供绝对路径或 ~/... 路径。

此处不支持的功能

HEIC、WebP 和 AVIF 格式转换、压缩、PDF 转图片以及 PDF 签名需要浏览器引擎。这些功能可在 stayput.dev 使用,操作方式相同:在浏览器中完成,不会上传任何内容。

开发

cd mcp
npm install
npm test   # builds dist/index.js and runs the end-to-end tests

测试使用网站的测试样本;请先在仓库根目录运行 python3 tests/fixtures/make-fixtures.py && node tests/fixtures/make-pdf.mjs 生成测试样本(需要 Pillow 和 pillow-heif)。

服务从 ../src/lib 导入 PDF 和元数据代码,并使用 esbuild(build.mjs)打包。构建时会替换两个仅供浏览器使用的模块:src/unlock.ts 从 node_modules 加载 qpdf,而不是通过 <script> 标签加载;src/no-canvas.ts 则替代了仅供 PDF 压缩功能使用的 canvas 辅助程序。

评论

支持 Markdown

第一次接触 MCP?

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

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