MCP server for terminal commands, file operations, and process management
Tanod Docs is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Documents: DOCX template fill, Office to PDF, any file to Markdown, PDF to Word, OCR, PDF pipeline.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http tanod-docs-mcp https://tanod.dev/mcp/docs
# 2 — ask your agent for something these tools do
# extract_pdf, ocr_image, extract_pdf_tables and 36 more
Tanod Docs costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http tanod-docs-mcp https://tanod.dev/mcp/docsReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
39 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
sitepeek: extract the text of a public PDF. Input: url and optional max_pages. Returns pages, extracted_pages, metadata (title, author, producer, created, modified), text (at most 200k characters, truncated when cut or when pages were skipped) and encrypted. Password-protected PDFs, files that are not PDFs and private addresses are a 422 (not charged). Scanned PDFs without a text layer ret
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Public http(s) URL of a PDF (at most 20 MB). |
| max_pages | integer | no | Pages to extract, from the first (1-200). |
sitepeek: OCR the text in a public image. Input: url and optional lang. Returns width, height, format, text (lines and paragraphs kept), words and confidence_mean (0-100, mean word confidence). Non-images, oversize images and private addresses are a 422 (not charged). Typically 1-5 s. Price: USD 0.0025. Free: 5 static renders per IP per UTC day; JS and screenshot renders and link checks are no
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Public http(s) URL of a PNG, JPEG, WebP, GIF or single-page TIFF image (at most 10 MB and 40 megapixels). |
| lang | string | no | Tesseract language code (installed: eng). |
pdfpeek: Use when an agent must pull the tables out of a PDF as JSON, CSV or XLSX for analysis. Returns every table of the selected pages (at most 200): page, bbox, method, header and rows of strings; format json (default), csv (a file per table) or xlsx (one workbook). Input: url or file_base64, optional pages and format. Text PDFs only: a scanned PDF is a 422 no_text_layer (r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The PDF as base64 (at most 10 MB decoded); or use url. | |
| pages | no | Pages to read (default all; at most 200 per call): N, N-M, N- (to the end), -M, last; comma separated, e.g. 1-5,9. | |
| format | string | no | json (default: every table with its page, box, header and rows), csv (one CSV file per table) or xlsx (one workbook, a sheet per table). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Use when an agent must turn a PDF bank statement into dated transactions for bookkeeping or import. Returns transactions (date, description, signed amount, balance, row_ok), opening and closing balance, totals, currency and a confidence 0-1; every row is checked against the running balance. format json, csv, xlsx, ofx or qif. Input: url or file_base64, optional pages
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The PDF as base64 (at most 10 MB decoded); or use url. | |
| pages | no | Pages to read (default all; at most 200 per call): N, N-M, N- (to the end), -M, last; comma separated, e.g. 1-5,9. | |
| format | string | no | json (default: the transactions with their reconciliation), csv, xlsx (a Transactions and a Summary sheet), ofx (OFX 1.0.2) or qif (Quicken, dates as MM/DD/YYYY). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Convert a Word, Excel, PowerPoint, OpenDocument or RTF file to PDF. Returns the document as a PDF made by LibreOffice, base64 in file, with format, pages and active_content_removed. No options. Input: url or file_base64, and optional filename. Reads DOCX, XLSX, PPTX, ODT, ODS, ODP, RTF and text, detected from the content; a PDF, images, legacy .doc / .xls / .ppt, HTML and EP
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the document (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The document as base64 (at most 10 MB decoded); or use url. DOCX, XLSX, PPTX, ODT, ODS, ODP, RTF or plain text, detected from the content. | |
| filename | no | Optional original file name (printable, at most 255 characters). The format is detected from the content; the name only matters for text that looks like HTML, which a .txt or .md name keeps as plain t | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Read an Excel workbook into structured rows as JSON, or one CSV file per sheet. Returns the .xlsx/.xlsm workbook read into sheets of string rows. json returns sheets (name, columns, row_count, truncated, rows); csv returns one formula-guarded CSV per sheet. A formula cell is its last cached value (empty if uncached); trailing empty cells and rows are dropped. Input: url or `file_base6
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the workbook (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The workbook as base64 (at most 10 MB decoded; .xlsx or .xlsm); or use url. | |
| format | string | no | json (default: each sheet with its name and rows, cells as strings) or csv (one formula-safe CSV file per sheet). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Use when an agent must read a Word, Excel, PowerPoint, PDF, HTML or EPUB file as Markdown text. Returns the document as Markdown (markitdown): headings, lists, links and tables kept, images skipped. markdown is cut at 500,000 characters (truncated); format, characters and, where known, pages, sheets, slides, title. Input: url or file_base64, and optional filename. Re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the document (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The document as base64 (at most 10 MB decoded); or use url. DOCX, XLSX, PPTX, PDF, HTML, EPUB, CSV or plain text, detected from the content. | |
| filename | no | Optional original file name (printable, at most 255 characters). The format is detected from the content; the name only breaks ties between text formats (a .csv name makes two delimited lines a table, |
pdfpeek: Use when an agent must convert a PDF to Word (.docx) for editing. Add output=url for a 24 h link. Returns a Word (.docx) file made by LibreOffice, base64 in file, plus pages_without_text and warnings: one positioned text box per line, not reflowable paragraphs. At most 50 pages (pages converts in parts). Input: url or pdf_base64 and optional pages. Layout fidelity varies: ta
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| pages | no | Pages to convert (default all; at most 50 per call): N, N-M, N- (to the end), -M, last; comma separated, e.g. 1-50. Pages come out in document order. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Fill the {{placeholders}} of a Word template with JSON data, as DOCX or PDF. Returns the filled document, base64 in file (DOCX, or PDF with output=pdf; delivery=url gives a 24 h link), with placeholders_filled, missing (names with no value, left as written) and unmatched_loop_tags. Input: the template as url or file_base64, data and optional output. {{name}} and dotted pat
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the DOCX template (at most 20 MB; private, internal and IP-literal hosts are refused); or use file_base64. | |
| file_base64 | no | The DOCX template as base64 (at most 10 MB decoded); or use url. | |
| data | object | yes | The values, a JSON object (at most 1 MB, 12 levels deep). {{name}} reads data["name"], {{customer.name}} data["customer"]["name"], {{items.0}} the first element of a list. A table row holding {{#items |
| output | string | no | docx (default) or pdf (the filled file rendered by LibreOffice; priced higher). |
| delivery | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Generate a PowerPoint deck from JSON slides: titles, bullets, speaker notes. Returns the deck as a .pptx, base64 in file (output=url gives a 24 h link), with slides and output_bytes. Input: slides, optional deck title and optional theme. Slides: title, bullets (max 20), notes, layout (title, title_and_content, section, blank); theme font and accent_color. Text only, no images.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | no | Deck title: the file's title property and its file name (default presentation.pptx). | |
| slides | array | yes | 1-100 slides, in order. |
| theme | no | Optional font and title colour. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Build a styled Excel workbook from JSON sheets, columns and rows. Returns the workbook, base64 in file (.xlsx; output=url gives a 24 h link), with sheets, rows, cells, formula_like_strings and sheet_summary. Input: sheets and an optional filename. Rows are arrays or objects; a column type (string, number, integer, date, datetime, boolean, currency, percent) sets the form
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sheets | array | yes | The sheets, in order: 1-20, each with a unique name, optional typed columns and rows (at most 50,000 cells in all). |
| filename | no | Name of the returned file (default workbook.xlsx; .xlsx is added when missing; only letters, digits, space, dot, dash and underscore are kept). | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Use when an agent must combine several PDFs into one file, optionally taking only selected pages of each. Returns one PDF made of 2-20 input PDFs in order, each optionally cut to a page selection (pages, e.g. 1-3,5); at most 500 pages out; bookmarks are not carried over. Input: inputs: 2-20 objects, each url or pdf_base64 plus optional pages. Output: base64 file (or files);
| Parameter | Type | Required | Notes |
|---|---|---|---|
| inputs | array | yes | 2-20 PDFs, each {url} or {pdf_base64}, with optional pages. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Split a PDF by page ranges or every N pages. Returns a PDF split into several files: one per comma part of ranges (mode=ranges, e.g. 1-3,4-6,7-) or one every every pages (mode=every); at most 50 files. Input: url or pdf_base64, mode and ranges or every. More than 50 files is a 413 too_many_files (not charged). Output: base64 file (or files); over 15 MB is a 413 (not char
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| mode | string | no | ranges (one file per comma part of ranges) or every (a file every every pages). |
| ranges | no | mode=ranges: e.g. 1-3,4-6,7-. | |
| every | no | mode=every: pages per file. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Extract pages from a PDF. Returns a new PDF with the selected pages in the order given (repeats allowed). Pages are 1-based: N, N-M, N- (to the end), -M and last, comma separated; an out-of-range or reversed part is a 422 page_out_of_range (never clamped). Pages not selected are really gone (no orphan objects). Input: url or pdf_base64 and pages. Output: base64 file (or files);
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| pages | string | yes | 1-based: N, N-M, N- (to the end), -M, last; comma separated, in this order. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Remove pages from a PDF. Returns the PDF without the selected pages (1-based: N, N-M, N-, -M, last); removed pages and everything only they reference are really gone. Removing every page is a 422 empty_result. Input: url or pdf_base64 and pages. Output: base64 file (or files); over 15 MB is a 413 (not charged). Active content (JavaScript, actions, embedded files, XFA) is always
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| pages | string | yes | 1-based pages to remove: N, N-M, N- (to the end), -M, last; comma separated. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Rotate the pages of a PDF by 90, 180 or 270 degrees. Returns the PDF with its pages (or a pages selection) rotated clockwise by angle (90, 180, 270 or -90), added to each page's current rotation. Input: url or pdf_base64, angle and optional pages. Output: base64 file (or files); over 15 MB is a 413 (not charged). Active content (JavaScript, actions, embedded files, XFA) is
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| angle | integer | yes | Clockwise degrees, added to the current rotation. |
| pages | no | Pages to rotate (default all). | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Compress a PDF to shrink its file size. Returns a smaller PDF: level lossless (structure only), recommended (images re-encoded as JPEG q75 at most 150 dpi) or extreme (q50, 96 dpi), with optional image_quality and max_image_dpi; bytes_before, bytes_after and saved_percent. It never returns a larger file: when it cannot win it returns the input unchanged (unchanged: true, not sanit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| level | string | no | lossless: structure only; recommended: images JPEG q75 at most 150 dpi; extreme: q50 at most 96 dpi. |
| image_quality | no | Override the level's JPEG quality. | |
| max_image_dpi | no | Override the level's image dpi ceiling. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Convert PDF pages to PNG or JPEG images. Returns each selected page rendered to PNG or JPEG (PDFium, no JavaScript) at dpi 36-300, optionally grayscale; at most 20 pages per call (a page over 36 megapixels at a lower dpi, reported per image). Input: url or pdf_base64, optional format, dpi, pages, jpeg_quality and grayscale. Priced on pages: a closed selection of at most
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| format | string | no | png (default) or jpeg. |
| dpi | integer | no | 36-300 (default 150). |
| pages | no | Pages to render (default all; at most 20 per call). A closed selection of at most 5 pages is the lower price. | |
| jpeg_quality | integer | no | JPEG quality (30-95, default 85). |
| grayscale | boolean | no | Render in grayscale. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Rasterize a PDF: every page rendered to an image, rebuilt as one PDF. Returns a new image-only PDF: each selected page rendered (PDFium, no JavaScript) at dpi 36-300, optional grayscale, re-embedded as JPEG or PNG; no selectable text, forms or active content; at most 20 pages. Input: url or pdf_base64, optional format, dpi, pages, jpeg_quality and grayscale. Priced on `pag
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| format | string | no | jpeg (default, smaller) or png (lossless). |
| dpi | integer | no | 36-300 (default 150). |
| pages | no | Pages to keep (default all; at most 20 per call). A closed selection of at most 5 pages is the lower price. | |
| jpeg_quality | integer | no | JPEG quality (30-95, default 85). |
| grayscale | boolean | no | Render in grayscale. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Convert 1-30 images into a PDF. Returns one PDF page per image (PNG, JPEG or WebP; JPEGs embedded byte for byte, EXIF orientation honoured, transparency flattened on white), sized to each image or to A4 / letter with orientation and margin; at most 30 images, each at most 40 megapixels. Input: images: 1-30 objects, each url or image_base64; optional page_size, orientation an
| Parameter | Type | Required | Notes |
|---|---|---|---|
| images | array | yes | 1-30 images (PNG, JPEG, WebP), each {url} or {image_base64}. |
| page_size | string | no | fit (each page is its image's size), a4 or letter. |
| orientation | string | no | a4/letter only. |
| margin | number | no | Points (1/72 in) around each image. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Add a text watermark to a PDF. Returns the PDF with a text watermark on every page (or a pages selection): Latin text in one of 6 built-in fonts, size, opacity, angle, one of 9 positions, colour, over or under the content; upright on rotated pages. The original content is never rewritten. Text outside Windows-1252 is a 422 unsupported_text. Input: url or pdf_base64, text and optio
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| text | string | yes | Windows-1252 (Latin) text, drawn with a built-in PDF font. |
| font | string | no | Built-in PDF font: helvetica, helvetica-bold (default), times, times-bold, courier or courier-bold. |
| font_size | number | no | Points (6-300, default 48). |
| opacity | number | no | 0.05 (faint) to 1 (opaque); default 0.3. |
| angle | number | no | Counter-clockwise degrees. |
| position | string | no | center (default), top-left, top-center, top-right, middle-left, middle-right, bottom-left, bottom-center or bottom-right. |
| color | string | no | Text colour as #rrggbb (default #808080, grey). |
| layer | string | no | over (default: on top of the page content) or under (behind it; hidden where the page is opaque). |
| margin | number | no | Points from the edge for non-center positions. |
| pages | no | Pages to stamp (default all). | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Add page numbers to a PDF. Returns the PDF with page numbers in a format such as "Page {n} of {N}" at one of 6 positions, with font, size, colour, opacity, margin, start_number and a pages selection (e.g. 2- skips a cover; numbering counts the stamped pages). Input: url or pdf_base64 and optional format, position, font, font_size, color, opacity, margin, `start_num
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| format | string | no | {n} = this page's number, {N} = the last number. |
| position | string | no | top-left, top-center, top-right, bottom-left, bottom-center (default) or bottom-right. |
| font | string | no | Built-in PDF font: helvetica (default), helvetica-bold, times, times-bold, courier or courier-bold. |
| font_size | number | no | Points (4-72, default 10). |
| color | string | no | Text colour as #rrggbb (default #000000, black). |
| opacity | number | no | 0.05 (faint) to 1 (opaque, default). |
| margin | number | no | Points (1/72 in) from the page edge (0-144, default 28). |
| start_number | integer | no | Number printed on the first numbered page. |
| pages | no | Pages to number (default all), e.g. 2- to skip a cover. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Password-protect a PDF. Returns the PDF encrypted with AES-256: user_password opens it; owner_password lifts the permissions (all allowed by default; without an owner password a random one nobody knows is used). Input: url or pdf_base64, user_password, optional owner_password and permissions. Passwords are never logged, stored or echoed. Output: base64 file (or files);
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| user_password | string | yes | Needed to open the PDF; never logged. |
| owner_password | no | Lifts the restrictions; default: a random one nobody knows. | |
| permissions | object | no | What a user-password holder may do (default: everything). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Unlock a password-protected PDF. Returns the PDF decrypted, only with a password that opens it (the user or owner password, or "" for a file restricted by an owner password only), with opened_with. A wrong password is a 422 invalid_password, an unencrypted file a 422 not_encrypted, public-key (PubSec) encryption a 422 unsupported_encryption. Input: url or pdf_base64 and password.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| password | string | yes | User or owner password; "" opens owner-password-only PDFs; never logged. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Read, edit or strip the metadata of a PDF. Returns a PDF's document metadata (title, author, subject, keywords, creator, producer, created and modified as ISO 8601, PDF version, XMP present); with set it writes fields ("" deletes one) and with strip removes all document metadata first, returning the new file only when something changed. Input: url or pdf_base64, optional set and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| set | no | Fields to write ("" deletes one); omit to only read. | |
| strip | boolean | no | Remove ALL document metadata (Info, XMP, page-level) first. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Convert a web page URL to PDF. Returns a public web page printed to PDF in a sandboxed headless browser: paper (a4, letter, legal, a3, a5, tabloid), landscape, margin_mm, print_background, scale and wait_ms after load. The page can reach only its own host (other hosts and IP literals are blocked); private and internal targets are refused (422, not charged). A page that cannot
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Public http(s) URL of the page to print. |
| paper | string | no | Paper size: a4 (default), letter, legal, a3, a5 or tabloid. |
| landscape | boolean | no | Landscape orientation (default false: portrait). |
| margin_mm | object | no | Margins in mm (0-50 each, default 10). |
| print_background | boolean | no | Print background colours and images (default true). |
| scale | number | no | Print scale of the page content (0.1-2.0, default 1.0). |
| wait_ms | integer | no | Extra settle time after the load event. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: OCR a scanned PDF into a searchable PDF. Returns a searchable PDF: tesseract OCR of the selected pages as an invisible text layer over the unchanged originals, plus the recognised text (at most 100,000 characters); skip_text (default true) leaves pages that have text alone. Input: url or pdf_base64, pages, optional lang, dpi and skip_text. At most 10 pages per call (200 dp
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| lang | string | no | Installed tesseract languages only, '+'-joined (eng today). |
| dpi | integer | no | 100-300 (default 200); at most 200 for more than 5 pages. |
| pages | string | yes | Pages to OCR, at most 10, each part N, N-M, -M or last (no open N- ranges), e.g. 1-3,7. At most 5 pages is the lower price. |
| skip_text | boolean | no | Leave pages that already have text alone. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Inspect a PDF: page sizes, text layer or scan, forms, attachments, JavaScript, bookmarks. Returns a report on one PDF (nothing changed): page count and version; per page the size in points (with the paper name), rotation, text layer or not and whether it looks scanned (no text, images covering 85%+); and document flags: forms (XFA, signatures), attachments, JavaScript and other active con
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. |
pdfpeek: Reorder, repeat or drop the pages of a PDF from a list of page numbers. Returns a new PDF made of the pages in order (1-based, at most 500), in that order: a page listed twice is copied, one not listed is left out (listed in the reply). Like extract-pages: bookmarks, forms and metadata are not carried over. Input: url or pdf_base64 and order. A page the document does not have is a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| order | array | yes | The new page order as 1-based page numbers (at most 500), e.g. [3, 1, 2]. A page may be listed more than once (it is copied); a page that is not listed is left out. A number the document does not have |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Crop the margins of a PDF. Returns the PDF with every page's (or a pages selection's) crop box set inside the page by top, right, bottom, left margins in points or percent of the page as displayed; new sizes listed. The content outside the box stays in the file: not redaction. Input: url or pdf_base64, at least one of top, right, bottom, left, and optional unit and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| top | number | no | Margin to cut from the top edge of the page as displayed, in unit (default 0). |
| right | number | no | Margin to cut from the right edge, in unit (default 0). |
| bottom | number | no | Margin to cut from the bottom edge, in unit (default 0). |
| left | number | no | Margin to cut from the left edge, in unit (default 0). |
| unit | string | no | pt (1/72 inch, default) or percent of the displayed page's width (left, right) and height (top, bottom). |
| pages | no | Pages to crop (default all), e.g. 1-3,5. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Resize PDF pages to A4, Letter, Legal or a custom size. Returns pages scaled to A4, Letter, Legal or a custom width x height (pt, mm, in): fit (whole page inside, centred, aspect ratio kept), fill (covered, overflow cut) or stretch; orientation auto keeps each page's. Scaled, not reflowed; links and form fields move with the page. Input: url or pdf_base64, size, optional mode, `or
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| size | string | yes | a4 (595.28 x 841.89 pt), letter (612 x 792), legal (612 x 1008) or custom (then width and height). |
| width | no | size=custom: one side of the page, in unit. | |
| height | no | size=custom: the other side, in unit (each side 36 to 14,400 pt). | |
| unit | string | no | Unit of width and height: pt (default), mm or in. |
| mode | string | no | fit (default): the whole page inside the new one, centred, aspect ratio kept; fill: the new page covered, aspect ratio kept, the overflow cut off; stretch: the page forced to the new size. |
| orientation | string | no | auto (default): each page keeps its orientation; or force portrait or landscape (the longer side of the size is vertical or horizontal). |
| pages | no | Pages to resize (default all), e.g. 1-3,5. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Read the bookmarks of a PDF as a nested tree. Returns the bookmarks as a nested tree of {title, page, open, children}; page is the 1-based target (null: nowhere or another file). At most 1,000 bookmarks and 8 levels (truncated); named destinations are resolved. Input: url or pdf_base64. Encrypted input is a 422 (unlock it first). Over about 78 s: a 503 (not charged). Typically under
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. |
pdfpeek: Write the bookmarks of a PDF from a nested tree. Returns the PDF with its bookmarks replaced by the outline tree {title, page, open?, children?} (at most 1,000 bookmarks, 8 levels; [] removes them all); each opens its page fit to the window. Input: url or pdf_base64 and outline. A page the document does not have is a 422 page_out_of_range. Output: base64 file (or files); over
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| outline | array | yes | The new bookmarks as a tree of {title, page, open?, children?}: at most 1,000 in all and 8 levels deep; an empty list removes every bookmark. They replace the ones the PDF has. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: List the form fields of a PDF. Returns the form's fields in reading order: name (for fill-form), type (text, checkbox, radio, choice, button, signature), value, required, read_only, page, tooltip as description, options (and labels) of radio and choice fields, max_length, multiline, comb. Input: url or pdf_base64. At most 1,000 fields listed, a form over 5,000 is a 422. XFA is flagged
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. |
pdfpeek: Fill the form fields of a PDF from a JSON object. Returns the PDF with its form filled from fields (names from form-fields): strings or numbers, true / false for checkboxes, an option for radio and choice fields (a list for multi-select), null clears. Appearances are drawn so every viewer shows the values; flatten bakes them in and removes the form. Input: url or pdf_base64, `fiel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| fields | object | yes | Field name -> value, the names as listed by form-fields (at most 500 fields). Text fields: a string (or a number); checkbox: true / false (or its on value); radio group: one of its options; choice fie |
| flatten | boolean | no | Bake the values into the pages and remove the form (default false: the form stays fillable). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Flatten the form fields and annotations of a PDF into the page content. Returns the PDF with form fields and annotations merged into the pages (mode all, screen or print; annotations a mode does not flatten are removed). Fields with a value but no appearance are drawn first; links stay; in mode all, empty signatures and buttons are dropped. Input: url or pdf_base64 and optional `mod
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| mode | string | no | all (default): every visible annotation and form field; screen: what a viewer shows; print: what is marked for printing. Annotations the mode does not flatten are removed. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Repair a damaged PDF. Returns the PDF opened with qpdf's recovery (bad or missing xref, cut-off file, junk before the header) and written again, with qpdf's warnings; linearize also writes it for fast web view. Structure, not damaged page data. Input: url or pdf_base64 and optional linearize. A file that cannot be read at all is a 422. Output: base64 file (or files); over 15
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| linearize | boolean | no | Also write the file for fast web view (linearized; default false). |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: List, extract or add the file attachments of a PDF. Returns the PDF's file attachments by action: list (default: name, filename, media type, size, description), extract (one by name, base64, at most 10 MB) or add (file_base64 as name, at most 5 MB; the existing ones are kept). Input: url or pdf_base64 and action with name, file_base64, mime_type, description. Extract
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| action | string | no | list (default): names, sizes and media types; extract: one attachment by name, base64; add: attach file_base64 as name (the attachments the PDF has are kept). |
| name | no | extract / add: the attachment's name (add: a new one; no / or \). | |
| file_base64 | no | add: the file to attach as base64 (at most 5 MB decoded; with an inline PDF the two together at most 10 MB). | |
| mime_type | no | add: its media type (default: guessed from the name). | |
| description | no | add: a short description stored with the attachment. | |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
pdfpeek: Run up to 10 PDF operations in sequence on one PDF in a single call. Returns a PDF put through up to 10 steps [{op, params}] in order, the output of each the input of the next: rotate, remove-pages, extract-pages, reorder, crop, resize, set-outline, flatten, repair (params as on that operation's own route); inspect or outline may be last (JSON report). One price for all steps. Input:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | no | Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64. | |
| pdf_base64 | no | The PDF as base64 (at most 10 MB decoded per request); or use url. | |
| steps | array | yes | The operations to run in order, 1 to 10 of {op, params}: the output of each is the input of the next. inspect and outline return a report and can only be last. The whole call has one 70 s time budget. |
| output | string | no | base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Tanod Docs or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.5.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Tanod Docs can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.