Model Context Protocol (MCP) server for Paperless-NGX. Lets AI assistants manage documents, tags, correspondents, document types, custom fields
Paperless MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. Model Context Protocol (MCP) server for Paperless-NGX. Lets AI assistants manage documents, tags, correspondents, document types, custom fields, saved views, storage paths, workflows, share links, notes, trash, and tasks via the.
Works with Paperless-ngx 2.x and 3.x. Where the two differ on the wire the server adapts automatically, so the same tools work against either.
Installation goes through your MCP client rather than a global install: point it at paperless-ngx-mcp on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Once Paperless is connected, these are the calls the assistant has available:
Configuration — CLI flags (--baseUrl, --token, --publicUrl, --http, --port) take precedence over environment variablesDocuments — The Documents tool exposed by this serverTags — The Tags tool exposed by this serverCorrespondents — The Correspondents tool exposed by this serverWorkflows — The Workflows tool exposed by this servertriage_inbox — Walks the assistant through inbox triage: gather existing tags / correspondents / document types, propose metadata for each inbox documentedit_documents_bulk — Parameters: - documents: array of document IDs - method: one of set_correspondent, set_document_type, set_storage_path, add_tag, remove_tagpost_document — Parameters: file, filename, plus optional title, created, correspondent, document_type, storage_path, tags, archive_serial_number, custom_fieldsYou will need 3 environment variables: PAPERLESS_URL, PAPERLESS_API_KEY, PAPERLESS_PUBLIC_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
This sits in the file and storage access group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Paperless's toolset — Configuration, Documents, Tags and 5 more — is a fair guide to whether it matches your workflow. It is maintained by GitHub Actions; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Paperless's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| Configuration | CLI flags (--baseUrl, --token, --publicUrl, --http, --port) take precedence over environment variables. |
| Documents | The Documents tool exposed by this server. |
| Tags | The Tags tool exposed by this server. |
| Correspondents | The Correspondents tool exposed by this server. |
| Workflows | The Workflows tool exposed by this server. |
| triage_inbox | Walks the assistant through inbox triage: gather existing tags / correspondents / document types, propose metadata for each inbox document **preferring existing items**, present a confirmation table, and only apply chang |
| edit_documents_bulk | Parameters: - documents: array of document IDs - method: one of set_correspondent, set_document_type, set_storage_path, add_tag, remove_tag, modify_tags, modify_custom_fields, delete, reprocess, set_permissions, merge, s |
| post_document | Parameters: file, filename, plus optional title, created, correspondent, document_type, storage_path, tags, archive_serial_number, custom_fields, poll, poll_timeout_seconds. |
{
"mcpServers": {
"paperless-ngx": {
"command": "npx",
"args": ["-y", "paperless-ngx-mcp"],
"env": {
"PAPERLESS_URL": "your-value",
"PAPERLESS_API_KEY": "your-value",
"PAPERLESS_PUBLIC_URL": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| PAPERLESS_URL | Endpoint or connection string the server talks to. | Yes |
| PAPERLESS_API_KEY | Credential the server authenticates with. | Yes |
| PAPERLESS_PUBLIC_URL | Endpoint or connection string the server talks to. | Yes |
Scoped local file access — read, write, search and reorganise files in directories you explicitly allow.
Search and read your Drive — Docs, Sheets and files become context your assistant can actually use.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Chat with your second brain — search, read and write vault notes through the Local REST API.
Connects AI models to an Obsidian knowledge base for direct access and manipulation of notes and folders.