# Nutrient Document Engine MCP Server

Connect Claude Code to a self-hosted Nutrient Document Engine and let an agent search, extract, edit, and annotate documents.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 62
- Author: PSPDFKit
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/PSPDFKit/nutrient-document-engine-mcp-server
- Updated: 2026-08-27
- HTML: https://affpapa.org/en/nevibecode/mcp/nutrient-document-engine-mcp-server

## What it does

The server exposes tools for searching documents and retrieving text, form values, and table data. Agents can split files, fill PDF forms, add watermarks or annotations, and apply redactions using preset patterns or a custom regular expression.

You need a running Nutrient Document Engine and Node.js 18+; the MCP server starts through `npx`. Docker Compose can run the engine locally. Evaluation mode comes with limitations and watermarks. For HTTP access on a non-loopback host, set a nonempty `MCP_HTTP_AUTH_TOKEN` or the server will refuse to start. The stdio transport does not require that token.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `DOCUMENT_ENGINE_BASE_URL`, `DOCUMENT_ENGINE_API_AUTH_TOKEN`, `DASHBOARD_USERNAME`, `DASHBOARD_PASSWORD`, `LOG_LEVEL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DOCUMENT_ENGINE_BASE_URL=<DOCUMENT_ENGINE_BASE_URL> --env DOCUMENT_ENGINE_API_AUTH_TOKEN=<DOCUMENT_ENGINE_API_AUTH_TOKEN> --env DASHBOARD_USERNAME=<DASHBOARD_USERNAME> --env DASHBOARD_PASSWORD=<DASHBOARD_PASSWORD> --env LOG_LEVEL=<LOG_LEVEL> --transport stdio nutrient-document-engine-mcp-server -- npx -y @nutrient-sdk/document-engine-mcp-server
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add nutrient-document-engine-mcp-server --env DOCUMENT_ENGINE_BASE_URL=<DOCUMENT_ENGINE_BASE_URL> --env DOCUMENT_ENGINE_API_AUTH_TOKEN=<DOCUMENT_ENGINE_API_AUTH_TOKEN> --env DASHBOARD_USERNAME=<DASHBOARD_USERNAME> --env DASHBOARD_PASSWORD=<DASHBOARD_PASSWORD> --env LOG_LEVEL=<LOG_LEVEL> -- npx -y @nutrient-sdk/document-engine-mcp-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "nutrient-document-engine-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@nutrient-sdk/document-engine-mcp-server"
            ],
            "env": {
                "DOCUMENT_ENGINE_BASE_URL": "<DOCUMENT_ENGINE_BASE_URL>",
                "DOCUMENT_ENGINE_API_AUTH_TOKEN": "<DOCUMENT_ENGINE_API_AUTH_TOKEN>",
                "DASHBOARD_USERNAME": "<DASHBOARD_USERNAME>",
                "DASHBOARD_PASSWORD": "<DASHBOARD_PASSWORD>",
                "LOG_LEVEL": "<LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "nutrient-document-engine-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@nutrient-sdk/document-engine-mcp-server"
            ],
            "env": {
                "DOCUMENT_ENGINE_BASE_URL": "<DOCUMENT_ENGINE_BASE_URL>",
                "DOCUMENT_ENGINE_API_AUTH_TOKEN": "<DOCUMENT_ENGINE_API_AUTH_TOKEN>",
                "DASHBOARD_USERNAME": "<DASHBOARD_USERNAME>",
                "DASHBOARD_PASSWORD": "<DASHBOARD_PASSWORD>",
                "LOG_LEVEL": "<LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DOCUMENT_ENGINE_BASE_URL=<DOCUMENT_ENGINE_BASE_URL> -e DOCUMENT_ENGINE_API_AUTH_TOKEN=<DOCUMENT_ENGINE_API_AUTH_TOKEN> -e DASHBOARD_USERNAME=<DASHBOARD_USERNAME> -e DASHBOARD_PASSWORD=<DASHBOARD_PASSWORD> -e LOG_LEVEL=<LOG_LEVEL> nutrient-document-engine-mcp-server npx -y @nutrient-sdk/document-engine-mcp-server
```
Replace <…> with your own values

## When to use it
- extract text and tables from documents
- search PDFs for specific information
- split a document into sections
- fill out PDF forms
- redact sensitive data with a pattern or regular expression

## Example prompts
- Find the documents in Nutrient Document Engine and extract the text from the contract.
- Split this PDF contract into separate sections.
- Find social security numbers in the tax forms and redact them.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
