paperless-ngx-mcp
Paperless-NGX MCP Server
A comprehensive Model Context Protocol (MCP) server for Paperless-NGX document management. This server enables Claude AI to interact with your Paperless-NGX instance through natural language.
Features
50 Tools for complete Paperless-NGX management
Dual Mode: Works with both Claude Desktop (stdio) and Claude.ai (HTTP/OAuth)
Web UI: Dashboard, setup wizard, and tool reference
Full CRUD: Create, read, update, delete operations for all entities
OAuth 2.0: Secure remote access with Google Workspace authentication
Quick Start
Installation
npm install paperless-ngx-mcpOr install globally:
npm install -g paperless-ngx-mcpClaude Desktop (Local Mode)
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"paperless": {
"command": "npx",
"args": [
"paperless-ngx-mcp",
"https://your-paperless-url.com",
"your-api-token"
]
}
}
}Get your API token from: Paperless-NGX > Settings > API Tokens > Add Token
Claude.ai (Remote Mode with OAuth)
Clone the repository:
git clone https://github.com/your-username/paperless-ngx-mcp.git cd paperless-ngx-mcp npm installConfigure environment variables (see Configuration)
Start the server:
npm run serverOpen http://localhost:8081 to access the web UI
Add the MCP server URL to Claude.ai's remote MCP settings
Configuration
Create a .env file or set environment variables:
# Required: Paperless-NGX Connection
PAPERLESS_URL=https://paperless.example.com
PAPERLESS_TOKEN=your-api-token
# Optional: OAuth (for remote mode with Claude.ai)
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
ALLOWED_DOMAIN=example.com # Restrict to Google Workspace domain
# Optional: Server Settings
MCP_SERVER_URL=https://mcp.example.com # Public URL for OAuth callbacks
JWT_SECRET=your-jwt-secret # Auto-generated if not provided
PORT=8081Available Tools (50 Total)
Documents (14 tools)
Tool | Description |
| List all documents with filtering and pagination |
| Get document details by ID |
| Full-text search across documents |
| List documents with a specific tag |
| Download document file |
| Upload a new document |
| Update document metadata |
| Delete a document |
| Get AI suggestions for tags/correspondent |
| Get file metadata (checksum, size) |
| Get notes on a document |
| Add a note to a document |
| Get audit history |
| Bulk operations on multiple documents |
Tags (5 tools)
Tool | Description |
| List all tags |
| Get tag by ID |
| Create a new tag |
| Update a tag |
| Delete a tag |
Correspondents (5 tools)
Tool | Description |
| List all correspondents |
| Get correspondent by ID |
| Create a new correspondent |
| Update a correspondent |
| Delete a correspondent |
Document Types (5 tools)
Tool | Description |
| List all document types |
| Get document type by ID |
| Create a new document type |
| Update a document type |
| Delete a document type |
Storage Paths (5 tools)
Tool | Description |
| List all storage paths |
| Get storage path by ID |
| Create a new storage path |
| Update a storage path |
| Delete a storage path |
Custom Fields (5 tools)
Tool | Description |
| List all custom fields |
| Get custom field by ID |
| Create a new custom field |
| Update a custom field |
| Delete a custom field |
Saved Views (5 tools)
Tool | Description |
| List all saved views |
| Get saved view by ID |
| Create a new saved view |
| Update a saved view |
| Delete a saved view |
Share Links (4 tools)
Tool | Description |
| List all share links |
| Get share link by ID |
| Create a shareable link |
| Revoke a share link |
System (2 tools)
Tool | Description |
| Get server status |
| Get document statistics |
Web UI
The HTTP server includes a web interface:
Dashboard (
/) - Connection status and quick start guideSetup (
/setup) - Configuration wizardTools (
/tools) - Complete tool reference with parametersLogs (
/logs) - Server activity logs
Example Prompts
Once connected, you can ask Claude things like:
"Search for documents about taxes from 2024"
"List all my invoices from last month"
"Create a new tag called 'Important' with red color"
"What correspondents do I have?"
"Download document 123"
"Add a note to document 456 saying 'Review needed'"
"Get suggestions for document 789"
"Show me storage usage statistics"
OAuth Setup for Claude.ai
Go to Google Cloud Console
Create a new project (or select existing)
Create OAuth 2.0 credentials (Web application)
Add authorized redirect URI:
https://your-mcp-server.com/callbackCopy Client ID and Client Secret to your
.envfileOptionally set
ALLOWED_DOMAINto restrict access to your organization
Development
# Install dependencies
npm install
# Run in development mode (with auto-reload)
npm run dev
# Run stdio mode (for testing)
npm start https://paperless.example.com your-tokenLicense
MIT License - see LICENSE file.
Acknowledgments
Paperless-NGX - The excellent document management system
Model Context Protocol - The protocol enabling AI tool use
LiteMCP - Lightweight MCP server framework