Nutrient DWS MCP Server
NPM · @NUTRIENT-SDK/DWS-MCP-SERVER · SCANNED SEP 23
Nutrient Processor + Data Extraction MCP: convert, OCR, sign, redact, and extract PDFs/Office docs.
Available components
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. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 51 of 149 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 26 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2651 tokens (~378/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Nutrient DWS MCP Server server?
Nutrient DWS MCP Server runs locally as an npm package, launched with npx -y @nutrient-sdk/dws-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @nutrient-sdk/dws-mcp-server
claude mcp add pspdfkit-nutrient-dws-mcp-server -- npx -y @nutrient-sdk/dws-mcp-server
{
"mcpServers": {
"pspdfkit-nutrient-dws-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nutrient-sdk/dws-mcp-server"
]
}
}
} {
"servers": {
"pspdfkit-nutrient-dws-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nutrient-sdk/dws-mcp-server"
]
}
}
} codex mcp add pspdfkit-nutrient-dws-mcp-server -- npx -y @nutrient-sdk/dws-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"pspdfkit-nutrient-dws-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@nutrient-sdk/dws-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add pspdfkit-nutrient-dws-mcp-server --command npx --arg -y --arg @nutrient-sdk/dws-mcp-server
mcp_servers:
pspdfkit-nutrient-dws-mcp-server:
command: "npx"
args: ["-y", "@nutrient-sdk/dws-mcp-server"] {
"McpServers": {
"pspdfkit-nutrient-dws-mcp-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@nutrient-sdk/dws-mcp-server"
]
}
}
} assistant mcp add pspdfkit-nutrient-dws-mcp-server -t stdio -c npx -a -y @nutrient-sdk/dws-mcp-server
{
"mcpServers": {
"pspdfkit-nutrient-dws-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nutrient-sdk/dws-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 23 Sept 26 +1
- Stability: 0.97 → pass security
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Sept 2026 · Analysed npm/@nutrient-sdk/dws-mcp-server@0.1.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 149 packages
| Packages resolved | 149 |
|---|---|
| Stale | 51 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ai_redactor ~394
Detect and permanently redact sensitive content using the Nutrient AI Redaction API. Reads input files from the local file system or sandbox (if enabled) and writes redacted output back locally. Automatically detects and permanently removes sensitive information from documents using AI analysis. Detected content types include: • Personally identifiable information (names, addresses, phone numbers) • Financial data (credit card numbers, bank accounts, SSNs) • Email addresses and URLs • Protected health information (PHI) • Any custom criteria you specify By default (when neither stage nor apply is set), redactions are detected and immediately applied. Set stage to true to detect and stage redactions without applying them. Set apply to true to apply previously staged redactions.
| Name | Type | Req | Description |
|---|---|---|---|
| apply | boolean | – | Applies previously staged redactions. By default (when neither stage nor apply is set), redactions are detected and immediately applied. Mutually exclusive with stage. Typical workflow: run once with… |
| criteria | string | – | What sensitive information to redact. The AI will detect and remove matching content. Examples: "All personally identifiable information", "Social security numbers and credit card numbers", "Names, e… |
| filePath | string | yes | The path to the document to redact. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| outputPath | string | yes | Path for the redacted output file. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| stage | boolean | – | Stages redactions without applying them. By default (when neither stage nor apply is set), redactions are detected and immediately applied. Mutually exclusive with apply. Typical workflow: run once w… |
No output schema declared.
No examples provided.
check_credits ~57
Check your Nutrient DWS API credit balance and usage for the current billing period. This is a read-only account lookup. It does not upload any document content. Returns: subscription type, total credits, used credits, and remaining credits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
directory_tree ~83
Browse local files when sandbox mode is disabled. This is a read-only local filesystem operation, but it can inspect any path visible to the current user. Sandbox mode is strongly recommended.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | The path to the directory to analyze to find documents or files a user has referenced. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
No output schema declared.
No examples provided.
document_processor ~172
Process, convert, and transform documents using the Nutrient API. Reads input files from the local file system or sandbox (if enabled) and writes results back locally. Features: • Import XFDF annotations • Flatten annotations • OCR processing • Page rotation • Watermarking (text/image) • Redaction creation and application Output formats: PDF, PDF/A, images (PNG, JPEG, WebP), Office (DOCX, XLSX, PPTX) For structured data extraction (typed JSON or Markdown with bounding boxes and confidence scores), use the dedicated parse_document tool instead.
| Name | Type | Req | Description |
|---|---|---|---|
| instructions | object | yes | Build instructions. |
| outputPath | string | yes | A path to the output file to. (if required) Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
No output schema declared.
No examples provided.
document_signer ~302
Digitally sign PDF files using the Nutrient Sign API. Reads input files from the local file system or sandbox (if enabled) and writes signed output back locally. Signature types: • CMS/PKCS#7 (standard digital signatures) • CAdES (advanced electronic signatures) Appearance options: • Visible or invisible signatures • Multiple display modes (signature only, description only, or both) • Customizable elements (signer name, reason, location, date) • Support for watermarks and custom graphics Positioning: • Place on specific page coordinates • Use existing signature form fields
| Name | Type | Req | Description |
|---|---|---|---|
| filePath | string | yes | The path to the file to be signed. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| graphicImagePath | string | – | The path to the graphic image to be used as part of the signature's appearance. Optional. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| outputPath | string | yes | A path to the output file to. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| signatureOptions | object | – | Options for creating the digital signature. If not provided, defaults will be used. |
| watermarkImagePath | string | – | The path to the watermark image to be used as part of the signature's appearance. Optional. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
No output schema declared.
No examples provided.
extract_fields ~814
Pull specific named fields out of a document into a JSON shape you define, using the Nutrient DWS Data Extraction API. Reads the input file from the local file system or sandbox (if enabled), or fetches it directly from a URL — provide exactly one of filePath or url. Unlike parse_document, which parses a whole document into elements or Markdown, extract_fields takes a JSON schema (root type: "object", with properties) and returns only the values matching it — e.g. { invoiceNumber, total, lineItems: [...] } — each with a per-field citation (bounding box, confidence, and match quality) tying it back to where it was found. Processing modes (cost per page, parse component only — no text mode here): structure = OCR spatial parse (1.5 credits); understand = AI-augmented, default (9 credits); agentic = VLM-augmented (18 credits). Total cost per page is this parse component plus a fixed extract component, billed in Data Extraction credits — a separate balance from the Processor API credits reported by check_credits. output.data (the extracted values) is always returned inline. Per-field citations and page geometry are large and are only kept when outputPath is provided; otherwise a note says they were omitted.
| Name | Type | Req | Description |
|---|---|---|---|
| filePath | string | – | Path to the document to extract from (PDF, image, or Office file). Exactly one of filePath or url is required. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| includeCitations | boolean | – | Include per-field citations (bounding box, confidence, match quality) in output.metadata. Server default: true. Leave unset to keep that default — passing false here disables citations. |
| instructions | string | – | Free-text guidance for the extraction, e.g. clarifying an ambiguous field. Max 10000 characters. |
| language | – | – | OCR language(s) — full name (e.g. "german"), ISO code (e.g. "deu"), or array for multilingual docs. Leave unset for auto-detection. |
| maxLanguages | integer | – | Maximum number of languages to auto-detect. Only valid when language is left unset. Server default: 2. |
| maxScripts | integer | – | Maximum number of scripts to auto-detect. Only valid when language is left unset. Server default: 2. |
| mode | string | – | Parse mode feeding the extraction (cost/quality trade-off). No text mode — schema-guided extraction needs the structural parse (OCR/layout) that text mode skips. structure: OCR-based spatial parse (1… |
| multimodal | boolean | – | Use multimodal (vision) extraction for higher accuracy on visual fields. Increases cost and latency. Server default: false. |
| outputPath | string | – | Where to write the full response (data, per-field citations, and pages). Resolves to sandbox path if enabled. output.data is always returned inline regardless of this option; set it to also keep the… |
| schema | object | yes | JSON Schema describing the fields to extract. Root must be type: "object" with properties. Schemas are closed — do NOT set additionalProperties yourself, the API rejects a schema that sets it. Limits… |
| strict | boolean | – | Fail the extraction if a required field cannot be found, instead of returning a partial result. Server default: false. |
| url | string | – | URL of the document to extract from — fetched directly by the API instead of uploading a local file. Exactly one of filePath or url is required. |
No output schema declared.
No examples provided.
parse_document ~829
Extract structured data from a document using the Nutrient DWS Data Extraction API. Reads the input file from the local file system or sandbox (if enabled), or fetches it directly from a URL — provide exactly one of filePath or url. Output formats: • spatial — typed elements (paragraphs, tables, key-value pairs, formulas, pictures, handwriting) with bounding boxes, confidence scores, and reading order. Written to outputPath (the list can be large). • markdown — whole-document Markdown. Returned inline, or written to outputPath when provided (recommended for large documents). Good for RAG and search indexing. • Both at once via formats: ["spatial", "markdown"] — a second format costs no extra credits, so ask for both up front instead of extracting twice. Processing modes (cost per page): text = fast Markdown, no OCR (1 credit); structure = OCR spatial (1.5 credits); understand = AI-augmented, default (9 credits); agentic = VLM-augmented (18 credits). Note: markdown output and any extracted content are returned into this conversation and may be logged by the host. For sensitive documents, prefer spatial output to a file plus targeted extract_fields calls.
| Name | Type | Req | Description |
|---|---|---|---|
| enableSemanticBlockFormatting | boolean | – | Markdown only. Group related content into semantic blocks. Server default: true. |
| extractWordsFromPictures | boolean | – | Markdown only. Extract words found inside pictures into the Markdown output. Server default: false. |
| filePath | string | – | Path to the document to extract from (PDF, image, or Office file). Exactly one of filePath or url is required. Resolves to sandbox path if enabled, otherwise resolves to the local file system. |
| format | string | – | Single output format. Defaults to markdown for text mode and spatial for all other modes. Mutually exclusive with formats. |
| formats | array | – | Request multiple output formats in one call, e.g. ["spatial", "markdown"] — both output.elements and output.markdown are returned, billed the same as a single format (no extra credits). Mutually excl… |
| includeHeadersAndFooters | boolean | – | Markdown only. Include page headers and footers in the Markdown output. Server default: false. |
| includeWords | boolean | – | Include word-level bounding boxes in spatial output. Server default: false. Ignored for markdown output. |
| language | – | – | OCR language(s) — full name (e.g. "german"), ISO code (e.g. "deu"), or array for multilingual docs. Only applies to structure/understand/agentic modes; ignored for text mode. Leave unset for auto-det… |
| maxLanguages | integer | – | Maximum number of languages to auto-detect. Only valid when language is left unset (auto-detect), and not in text mode, which does no OCR. Server default: 2. |
| maxScripts | integer | – | Maximum number of scripts to auto-detect. Only valid when language is left unset (auto-detect), and not in text mode, which does no OCR. Server default: 2. |
| mode | string | – | Processing mode (cost/quality trade-off). text: fast Markdown from digital-born documents, no OCR (1 credit/page). structure: OCR-based spatial elements (1.5 credits/page). understand: AI-augmented s… |
| outputPath | string | – | Where to write spatial JSON output. Required when spatial is among the requested formats (the element list can be large and is kept out of the conversation). Resolves to sandbox path if enabled. |
| url | string | – | URL of the document to extract from — fetched directly by the API instead of uploading a local file. Exactly one of filePath or url is required. |
| useHtmlTables | boolean | – | Markdown only. Render tables as HTML instead of Markdown table syntax. Server default: true. |
No output schema declared.
No examples provided.
What is the Nutrient DWS MCP Server server?
Nutrient DWS MCP Server is listed in the public MCP registry as io.github.PSPDFKit/nutrient-dws-mcp-server. Nutrient Processor + Data Extraction MCP: convert, OCR, sign, redact, and extract PDFs/Office docs. This page covers its npm package (@nutrient-sdk/dws-mcp-server).
Is the Nutrient DWS MCP Server server safe to use?
Nutrient DWS MCP Server scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Nutrient DWS MCP Server server expose?
Nutrient DWS MCP Server exposes 7 tools: document_processor, document_signer, ai_redactor, check_credits, parse_document, and 2 more. Their descriptions and schemas cost roughly 2,651 tokens of context every time the server is loaded.
Is the Nutrient DWS MCP Server server still maintained?
Nutrient DWS MCP Server is still listed as active in the MCP registry. We last reached this channel on 23 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Nutrient DWS MCP Server server under?
Nutrient DWS MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.