Paperless-ngx MCP server
io.github.tobee89/mcp-paperless-ngx·v0.1.1·2 starsMCP server for Paperless-ngx 3.x — full REST API coverage, schema-aware, token-frugal.
2 stars2.1k downloads/wk
Reviews
Write oneNobody has reviewed Paperless-ngx yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Paperless-ngx tools (76, 23 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
acknowledge_tasksMark finished or failed tasks as acknowledged so they stop showing in the UI.
bulk_download_documentsDownload several documents as one zip archive, written to the download directory.
bulk_edit_documentsApply one operation to many documents at once. Far cheaper than looping update_document, and the
bulk_edit_metadata_objectswrite actionDelete or set permissions on many tags, correspondents, document types or storage paths at once.
create_custom_fieldwrite actionDefine a new custom field. The data type cannot be changed afterwards, so pick it deliberately.
create_document_notewrite actionAttach a free-text note to a document. Use this to record context that belongs with the document rather than in the conversation — why it was kept, what was agreed, what to do next.
create_saved_viewwrite actionSave a filter preset that shows up in the user's Paperless sidebar.
create_share_linkwrite actionCreate a public, unauthenticated URL for a document. Anyone holding the link can read the
create_share_link_bundlewrite actionPublish several documents behind one public link. Same warning as create_share_link: this is
create_workflowwrite actionCreate an automation rule. Workflows run automatically against future documents, so a mistake
delete_custom_fieldwrite actionDelete a custom field definition and every value stored in it, across all documents.
delete_documentwrite actionMove a document to the trash. It stays recoverable until the trash is emptied or the retention
delete_document_notewrite actionRemove a note from a document. Not recoverable.
delete_documentswrite actionMove several documents to the trash at once. Recoverable until the trash is emptied.
delete_saved_viewwrite actionRemove a saved view. Documents are unaffected.
delete_share_linkwrite actionRevoke a share link immediately. Anyone still holding the URL loses access at once; the document itself is untouched.
delete_share_link_bundlewrite actionRevoke a share link bundle immediately. Every document in the bundle stops being publicly reachable; the documents themselves are untouched.
delete_workflowwrite actionDelete an automation rule permanently. Consider update_workflow with enabled:false instead.
download_documentSave a document's file to disk on the machine running this MCP server and return the path.
edit_pdfReorder, rotate, remove or split out pages of a single document, producing a new document.
email_documentswrite actionSend one or more documents by email from the Paperless instance. This sends real mail to real
empty_trashPermanently destroy trashed documents. There is no recovery after this — the files are gone.
get_active_tasksTasks executing right now. Tells you whether the instance is busy.
get_configurationThe instance's application configuration: OCR defaults, output type, barcode settings, AI
get_custom_fieldOne custom field definition including its select options, if any.
get_documentFetch one document's metadata by ID: title, correspondent, type, tags, dates, custom fields, notes
get_document_ai_suggestionsSuggestions from the instance's configured LLM backend (Paperless-ngx 3.x, only if AI features are
get_document_contentReturn the OCR/extracted text of one document. Deliberately a separate tool: this is the most
get_document_historyAudit trail of changes to a document — who changed which field, and when. Requires audit logging
get_document_metadataTechnical file metadata for a document: checksums, byte sizes, MIME type, stored filename, whether
get_document_suggestionsPaperless' own suggestions for a document — correspondents, tags, document types and dates its
get_document_thumbnailReturn the document's thumbnail image inline so it can actually be looked at.
get_logRead one of the instance's log files. Returns the tail by default — logs are long and mostly
get_mail_accountOne mail account in full: server, port, username, folder and security settings. Passwords are never returned by the API.
get_mail_ruleOne mail rule in full: which messages it matches, what metadata it assigns, and what it does with the message afterwards (leave, mark read, move, delete).
get_metadata_overviewOne compact snapshot of all tags, correspondents, document types and storage paths with their
get_next_asnThe next free archive serial number, for filing a physical document alongside its scan.
get_profileThe profile of the user whose API token this server is using. Confirms which account you are
get_remote_versionThe latest Paperless-ngx release, and whether an update is available.
get_saved_viewOne saved view including its filter rules, so you can reproduce it as a search.
get_selection_dataFor a set of document IDs, return how many of them carry each tag, correspondent, document type and
get_server_statusInstance health: Paperless version, database and index status, whether Redis and the task
get_statisticsTotals for the archive: document count, inbox count, characters, file type breakdown.
get_taskOne background task by database ID, including its result. Use this to find out whether an
get_userOne user record by ID, including group membership and permission flags. Use it to resolve an owner ID to a human name.
get_workflowOne workflow with its full trigger and action definitions.
global_searchSearch across every object type at once — documents, tags, correspondents, document types,
list_custom_fieldsCustom fields defined on this instance, with their IDs, data types and how many documents use
list_document_notesNotes attached to a document, with authors and timestamps. Notes hold context the OCR text does
list_document_share_linksExisting share links for one document — check this before creating another.
list_groupsPermission groups with their IDs and member counts, for use in set_permissions payloads.
list_logsNames of the log files available, e.g. 'paperless' and 'mail'.
list_mail_accountsIMAP accounts Paperless fetches documents from. Passwords are not returned.
list_mail_rulesRules deciding which messages become documents, and what metadata they get.
list_processed_mailMessages Paperless has already handled, with their status. The place to look when a mail
list_saved_viewsSaved views are the filter presets the user built in the Paperless web UI. Reading them is the
list_share_link_bundlesShare link bundles (Paperless-ngx 3.x) expose several documents behind a single public link.
list_share_linksEvery share link on the instance, with its slug, target document and expiry.
list_tasksBackground tasks — consumption, merges, reprocessing — with their state and result.
list_trashDocuments in the trash, with the date each was deleted and when it will be purged for good.
list_usersUsers on this instance with their IDs and permissions. You need these IDs to set document
merge_documentsMerge several documents into one new PDF, in the order given. The originals stay unless
process_mail_accountTrigger an immediate fetch for one mail account instead of waiting for the next scheduled run.
remove_pdf_passwordwrite actionDecrypt password-protected PDFs so Paperless can OCR them. The password is sent to your Paperless
reprocess_documentsRe-run OCR and the archive generation for the given documents, e.g. after changing OCR settings.
restore_from_trashBring deleted documents back. The safe counterpart to delete_document.
rotate_documentsRotate every page of the given documents clockwise by 90, 180 or 270 degrees.
search_autocompleteCompletions for a partial search term, ranked by importance in the full-text index.
search_documentsFind documents by full-text search, metadata filters, or both. This is the main entry point for
test_storage_pathRender a storage path template against an existing document to see the resulting file path.
update_custom_fieldwrite actionRename a custom field or adjust its extra_data (e.g. add select options).
update_documentwrite actionChange metadata on a single document. Only the fields you pass are modified.
update_mail_rulewrite actionChange a mail rule. Rules run unattended against a live mailbox, so a wrong filter can consume
update_saved_viewwrite actionChange a saved view's name, sorting, visibility or filter rules.
update_workflowwrite actionUpdate a workflow. Passing `triggers` or `actions` replaces the existing list wholesale — fetch
upload_documentwrite actionHand a file to Paperless for consumption. Provide either `path` (a file on the machine running
Public scan report
scanner v0.1.10 · 2026-11-02 · same rubric, same numbers if you re-run it
- Code scan25 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 73 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Paperless-ngx compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 78/100
- higher than 57% of 48,255 servers
- Tools
- 76
- the typical server has 7
- Tools that change things
- 30%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 75% of 28,688 servers
- Downloads a week
- 2,101
- more than 95% of 12,191 servers with a package
What its tools let an agent do: 51 read · 7 create · 8 change · 9 delete · 1 send or post
Install Paperless-ngx in Claude Code, Cursor or VS Code
Runs npx -y mcp-paperless-ngx on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-paperless-ngx -- npx -y mcp-paperless-ngx
What the publisher says
From the Paperless-ngx repository's README, as published. We do not edit it. Read it on GitHub
mcp-paperless-ngx
A Model Context Protocol server for Paperless-ngx 3.x Full REST API coverage, schema-aware, token-frugal.
Built against REST API version 10, with three things it does differently:
listed in src/tools/coverage.ts with a written reason for leaving it out. A test enforces this, so a Paperless release that adds an endpoint fails CI instead of quietly going unsupported.
- Accounted coverage. Every one of the 92 documented endpoints is either exposed as a tool or
default and a single search can exhaust the model's context. Here, list results are trimmed server-side via ?fields=, the text lives behind its own paginated tool, and no list endpoint hands the raw API response through — a test enforces that. See Context cost.
- Token discipline. A Paperless document carries its full OCR text. Naive wrappers return it by
given client needs, and --read-only removes every write path entirely.
- Scoped surface. 99 tools would drown a model's tool list. Toolsets let you expose only what a
Paperless-ngx 2.x is not supported: API version 10 introduced endpoints (nested tags, document versions, sharelinkbundles, the split PDF operations) that this server assumes exist.
Quick start
npx -y mcp-paperless-ngx --check # verify connectivity, then exitClaude Code
claude mcp add paperless --scope user \
--env PAPERLESS_URL=https://paperless.example.com \
--env PAPERLESS_TOKEN=your-api-token \
-- npx -y mcp-paperless-ngxClaude Desktop, Cursor, Cline, and other MCP clients
{
"mcpServers": {
"paperless": {
"command": "npx",
"args": ["-y", "mcp-paperless-ngx"],
"env": {
"PAPERLESS_URL": "https://paperless.example.com",
"PAPERLESS_TOKEN": "your-api-token"
}
}
}
}Getting an API token
Paperless web UI → your username (top right) → My Profile → the circular arrow button next to the API token field.
Configuration
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Paperless-ngx: common questions
- Is Paperless-ngx MCP server safe?
- Mostly: it is graded B (78/100). Read the Paperless-ngx safety report
- How do I install Paperless-ngx?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Paperless-ngx need an API key?
- Yes. The registry entry asks for
PAPERLESS_TOKEN. - Is Paperless-ngx maintained?
- The last commit was 75 days ago (2026-08-21). The latest release is v0.1.1.
- How does Paperless-ngx compare with other MCP servers?
- safety score 78/100 (higher than 57% of 48,255 servers); tools 76 (the typical server has 7); tools that change things 30% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.