# PDF Triage (npm · pdf-triage-mcp)

Read local PDFs without uploading. Classifies first, flags untrustworthy text, bounds output.

- Trust score: 35/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `pdf-triage-mcp`: 35/100 (this document), [markdown](https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp.md), [page](https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp)

## Channel facts

- Registry: `npm`
- Package: `pdf-triage-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 88/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 0/100
  - Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.
- **Capabilities**: 0/100
  - Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.

**Unverified: 4 categories.** Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you.

## Install

### Claude

```bash
claude mcp add vishalmeena2211-pdf-triage-mcp -- npx -y pdf-triage-mcp
```

### Codex

```bash
codex mcp add vishalmeena2211-pdf-triage-mcp -- npx -y pdf-triage-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vishalmeena2211-pdf-triage-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "pdf-triage-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add vishalmeena2211-pdf-triage-mcp --command npx --arg -y --arg pdf-triage-mcp
```

### Hermes

```yaml
mcp_servers:
  vishalmeena2211-pdf-triage-mcp:
    command: "npx"
    args: ["-y", "pdf-triage-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "vishalmeena2211-pdf-triage-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pdf-triage-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 35)

First indexed and scored.

## MCP tools (4)

### `pdf_classify` (~135 tokens)

Classify a PDF

Triage a local PDF without extracting its text (typically 10-50ms). Returns whether the document is text-based, scanned, image-based or mixed, a confidence score, and the exact 1-indexed pages that need OCR. ALWAYS call this before pdf_extract on an unfamiliar or large document: it is cheap, and it tells you whether local extraction is worth attempting at all. If it reports scanned, image_based, or encoding issues, do not extract — route the document to an OCR service instead.

Input parameters:

- `path` (string, required): Absolute path, or path relative to an allowed root, of a .pdf file

### `pdf_extract` (~190 tokens)

Extract PDF to Markdown

Extract a local PDF to Markdown, preserving headings, lists and tables. Output is TRUNCATED by default to protect your context window — to read a long document, call repeatedly with the `pages` parameter rather than raising `maxChars`. Call pdf_classify first on unfamiliar documents. If the response carries a critical warning (encoding issues, no text layer, right-to-left script), the text is unreliable and must not be quoted as fact.

Input parameters:

- `compact` (boolean): Collapse dot leaders and source padding for token efficiency. Defaults to true.
- `maxChars` (integer): Truncation ceiling. Defaults to the server setting (40000).
- `pages` (array): 1-indexed page numbers to extract. Omit for the whole document. Prefer this over raising maxChars.
- `path` (string, required): Absolute path, or path relative to an allowed root, of a .pdf file

### `pdf_search` (~155 tokens)

Search inside a PDF

Find text inside a local PDF and return matching pages with surrounding context. Much cheaper than pdf_extract when you only need to locate something — use this first on long documents, then pdf_extract with the `pages` it reports.

Input parameters:

- `contextChars` (integer): Characters of surrounding context per match. Defaults to 200.
- `maxMatches` (integer): Maximum matches to return. Defaults to 25.
- `path` (string, required): Absolute path, or path relative to an allowed root, of a .pdf file
- `query` (string, required): Literal text to find, or a regular expression when `regex` is true
- `regex` (boolean): Treat `query` as a JavaScript regular expression. Defaults to false.

### `pdf_tables` (~133 tokens)

Extract tables from a PDF

Return only the tables from a local PDF as Markdown, skipping prose. Useful for invoices, financial statements and reports where the numbers are the point. Tables are detected from the PDF's own drawing operations and text alignment — the cell values are read directly from the document, not guessed by a model or OCR.

Input parameters:

- `maxChars` (integer): Truncation ceiling. Defaults to the server setting.
- `pages` (array): 1-indexed pages to search for tables. Omit for the whole document.
- `path` (string, required): Absolute path, or path relative to an allowed root, of a .pdf file

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp#diagnostics

## Score history

- 2026-08-03: 35

## Links

- npm package: https://www.npmjs.com/package/pdf-triage-mcp
- Socket report: https://socket.dev/npm/package/pdf-triage-mcp
- Repository: https://github.com/vishalmeena2211/pdf-triage-mcp
- Changelog RSS feed: https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/vishalmeena2211-pdf-triage-mcp/pdf-triage-mcp
