Papyrio PDF Tools

io.github.atabekdemurtaza由 GitHub 帳號 atabekdemurtaza 發布v0.1.4更新於 Oct 29, 2026

Compress, convert, merge, split and OCR PDFs from an assistant, using local files.

已驗證STDIO僅桌面效率與工作流檔案與儲存

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理透過 Papyrio API 在使用者電腦上壓縮、合併、拆分、OCR 與轉換 PDF 及 Office 檔案。

可以做什麼
  • 壓縮、合併、拆分 PDF,以及用密碼加密或解鎖 PDF
  • 擷取 PDF 文字,並為掃描檔加上可搜尋的文字層(OCR)
  • 把 PDF 轉成 Word 或 JPG,把 Office 文件或圖片轉成 PDF
  • 用無頭瀏覽器把公開網頁渲染成 PDF
  • 在一次請求中串接多個步驟,例如 OCR 一批掃描檔、合併並壓縮
適用情境
適合讓助理處理本機檔案的日常 PDF 工作:把檔案壓小以便寄送、合併掃描檔或發票、先 OCR 再閱讀掃描檔,或把文件轉成其他格式,不必在每個步驟之間手動上傳下載。
執行需求
透過 npx(需 Node.js)以 stdio 在本機執行,或使用 Claude Desktop 一鍵安裝包。可選環境變數 PAPYRIO_API_KEY(RapidAPI 訂閱金鑰);未提供時使用免費訪客額度,每個 IP 每天三次操作。需要連線至 Papyrio API 的網路。工具要求絕對檔案路徑。
安裝前請注意
檔案會上傳到 Papyrio API 處理,機密內容會離開本機。多數工具會寫入 output_path 並覆蓋該位置既有檔案。protect_pdf 與 unlock_pdf 涉及文件密碼,密碼會傳給該服務。訪客額度每天僅三次操作,常態使用可能需要付費 RapidAPI 訂閱。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Papyrio PDF Tools,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

papyrio-mcp

[npm] [Listed on mcpservers.org] [Glama score]

An MCP server for the Papyrio PDF API. Setup for Claude, Cursor and VS Code: papyrio.net/mcp. It lets an assistant compress, merge, OCR and convert PDFs on your own machine, reading and writing local files, so multi-step work does not mean uploading and downloading between every step.

OCR every scan in ~/invoices, merge them into one PDF, compress it under 5 MB

is four tool calls the assistant makes by itself.

Install

Claude Desktop, one click

[Watch: add PDF tools to Claude Desktop in one click (47 s)]

Download papyrio-mcp.mcpb and double-click it. Claude Desktop opens an install screen; leave the API key empty for the free guest tier or paste a RapidAPI key (see below). You can change it later under Settings, Extensions.

By hand, or any other client

Add this to your Claude Desktop config:

macOS ~/Library/Application Support/Claude/claude_desktop_config.json Windows %APPDATA%\Claude\claude_desktop_config.json

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

Restart Claude Desktop. The tools appear under the connector icon.

API key

The server works without one, metered as ordinary free web traffic: three operations a day per IP address. Enough to see whether it is useful.

For real use, subscribe on RapidAPI and pass the key:

json
{  "mcpServers": {    "papyrio": {      "command": "npx",      "args": ["-y", "papyrio-mcp"],      "env": { "PAPYRIO_API_KEY": "your-rapidapi-key" }    }  }}

The free RapidAPI tier is 50 requests a month and needs no card.

Tools

ToolDoesWrites
compress_pdfShrinks a PDF, 30–80% on image-heavy files.pdf
merge_pdfsJoins 2–10 PDFs in order.pdf
split_pdfSeparates every page into its own file.zip
extract_pdf_textReturns the text layer as UTF-8.txt
pdf_to_wordRebuilds the document as an editable .docx.docx
pdf_to_jpgRenders every page as a JPG.zip
ocr_pdfAdds a searchable text layer to a scan, up to 15 pages per call; lang picks English, Russian, Spanish, Italian, Uzbek or Kazakh.pdf
office_to_pdfWord, PowerPoint or Excel to PDF.pdf
image_to_pdfWraps a JPG, PNG or WebP in a PDF page.pdf
webpage_to_pdfRenders a public URL in a headless browser.pdf
protect_pdfEncrypts with AES-256.pdf
unlock_pdfRemoves a password you already know.pdf

Every tool takes absolute paths. output_path is optional and defaults to the input name with a -papyrio suffix — except webpage_to_pdf, which has no input file to derive a name from and so requires it.

Adding a tool

Add an entry to src/tools.ts. The MCP tool, its input schema and the HTTP call are all generated from it.

Testing

bash
npm run buildPAPYRIO_API_KEY=your-key node smoke.mjs

Drives all twelve tools over the real MCP protocol against the live API and checks the returned file's magic bytes, so a JSON error body named .pdf fails rather than passes. Without a key it runs on the guest tier, where three operations a day means most cases will hit rate_limit_exceeded.

Develop

bash
npm installnpm run build

Point your config at the local build while working on it:

json
{  "mcpServers": {    "papyrio": {      "command": "node",      "args": ["/absolute/path/to/mcp/dist/index.js"]    }  }}

Privacy: files are sent to the Papyrio API, processed in memory, and discarded when the response is sent. Nothing is stored.

Licence

MIT

來源:README.md,提交 7ed2471

工具

12

compress_pdf

Shrink a PDF by downsampling its images. Image-heavy files lose 30-80% of their size; text stays selectable. Use this when a PDF is too large to email or upload. Already-optimized files come back unchanged rather than larger. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填leveloutput_path

merge_pdfs

Combine 2 to 10 PDFs into one document, in the order given. Use this to join separate scans, chapters or invoices into a single file. Password-protected files must be unlocked first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數files必填output_path

extract_pdf_text

Return the text of a PDF as UTF-8, so it can be read or summarized. Fast and exact when the PDF already has a text layer. A scanned PDF has none — run ocr_pdf on it first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

ocr_pdf

Add an invisible text layer to a scanned PDF so its text can be searched, selected and extracted. Use this before extract_pdf_text or pdf_to_word on a scan or photographed document, and set lang when the text is not English. The page images are kept, so the output is about the same size as the input, and pages that already have text are left untouched. Takes roughly 2-10 seconds per page. Scans at 300 DPI or higher read well; below 150 DPI accuracy degrades badly. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填langoutput_path

pdf_to_word

Convert a PDF into an editable Word document. PDFs exported from Word, Google Docs or InDesign come through well. A scanned PDF is a picture of a page, so run ocr_pdf on it first. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

split_pdf

Separate every page of a PDF into its own file, returned as a ZIP archive. Use this to pull single pages out of a long document. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

pdf_to_jpg

Render every page of a PDF as a JPG image, returned as a ZIP archive. Use this when the pages are needed as pictures, for a thumbnail, a slide or an image pipeline. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

office_to_pdf

Convert a Word (.doc, .docx, .odt), PowerPoint (.ppt, .pptx) or Excel (.xls, .xlsx) document to PDF with LibreOffice, keeping fonts, tables, images and page layout; each slide or sheet becomes one or more pages. Use this to turn an Office file into a fixed, shareable PDF, not for files that are already PDFs. Large presentations can take 30 seconds or more. Password-protected Office files are not supported. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

image_to_pdf

Wrap a JPG, PNG or WebP image in a PDF page. Use this when an image needs to be submitted or printed as a PDF. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填output_path

webpage_to_pdf

Fetch a public URL and render the page to PDF in a headless browser. Use this to archive or print a web page. This tool takes a URL rather than a file, so output_path is required. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數url必填output_path必填

protect_pdf

Encrypt a PDF with AES-256 so it cannot be opened without the password. Use this before sending a document that contains anything private. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填password必填output_path

unlock_pdf

Remove the password from a PDF you already know the password for. This decrypts with the supplied password; it does not break or guess encryption. The input is uploaded to the Papyrio API, processed in memory and not stored. The result is written to output_path, replacing any file already there, and the call returns that path and the size in bytes. Inputs are limited to 50 MB, and each call counts as one operation against the daily quota.

輸入參數file必填password必填output_path

版本歷史

3
  1. v0.1.4最新Oct 22, 2026
  2. v0.1.3Oct 13, 2026
  3. v0.1.2Oct 13, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分