Labsco
barryw logo

PaperlessMCP

β˜… 24

from barryw

MCP server for Paperless-ngx document management. 43 tools for AI-powered document organization - full CRUD on documents, tags, correspondents, document types, storage paths, and custom fields.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup

PaperlessMCP

Stop manually organizing your documents. Let AI do it.

Build Status Latest Release License: MIT

You've got a Paperless-ngx instance. You've got hundreds (thousands?) of documents. You know you should tag them, set correspondents, organize them properly. But who has time for that?

PaperlessMCP connects your Paperless-ngx to any MCP-compatible AI. Now instead of clicking through the UI, you just ask:

"Find all my tax documents from 2023"

"Tag these 50 invoices as 'Business Expense' and set the correspondent to 'Acme Corp'"

"Upload this receipt and figure out what it is"

"What documents am I missing from my insurance folder?"

It's Paperless-ngx on LLM steroids. An interface designed specifically for AI to manage your documents while you do literally anything else.


What Can AI Do With Your Paperless?

Everything. Full CRUD on every entity type:

You SayAI Does
"Find receipts from Amazon over $100"Searches documents with filters
"Tag all 2024 invoices as 'Tax Year 2024'"Bulk updates dozens of docs at once
"Upload this PDF and file it appropriately"Uploads, auto-tags, sets correspondent
"Delete all documents tagged 'Junk'"Removes with confirmation (dry-run by default)
"Create a tag for medical records, make it red"Creates tag with color
"Who sends me the most documents?"Lists correspondents by document count
"Set up a storage path for legal documents"Creates organized folder structure

43 tools covering:

  • Documents β€” search, upload, download, update, delete, bulk operations, OCR reprocessing
  • Tags β€” full CRUD with colors and matching rules
  • Correspondents β€” track who sends you stuff
  • Document Types β€” classify invoices, receipts, contracts, whatever
  • Storage Paths β€” organize files with smart templates
  • Custom Fields β€” add your own metadata (dates, amounts, URLs, etc.)

All destructive operations require explicit confirmation and default to dry-run mode. AI can't nuke your archive by accident.


Is PaperlessMCP Right For You?

Yes, if:

  • You run Paperless-ngx (self-hosted or cloud)
  • You use any AI assistant that speaks MCP (Claude, or anything else supporting the protocol)
  • You have a backlog of untagged documents and feel guilty about it
  • You'd rather say "organize this" than click 47 buttons
  • You want to query your documents in plain English
  • You think computers should work for you, not the other way around

No, if:

  • You don't use Paperless-ngx (this isn't a general document tool)
  • You enjoy manually tagging documents (weirdo, but respect)
  • You don't trust AI with your files (fair, but you can dry-run everything first)

The sweet spot: You've got Paperless running, you've got an MCP-compatible AI, and you want them to be friends.


The Full Toolbox

43 tools, organized by what they touch. Every entity supports full CRUD.

<details> <summary><strong>Documents</strong> β€” the main event</summary>
ToolWhat it does
paperless.documents.searchFind documents with full-text search and filters
paperless.documents.getGet a document by ID with all metadata
paperless.documents.uploadUpload a document (base64)
paperless.documents.upload_from_pathUpload from a file path
paperless.documents.updateUpdate title, tags, correspondent, etc.
paperless.documents.deleteDelete a document (requires confirmation)
paperless.documents.bulk_updateUpdate multiple documents at once
paperless.documents.downloadGet download URL for original file
paperless.documents.previewGet preview URL
paperless.documents.thumbnailGet thumbnail URL
paperless.documents.reprocessRe-run OCR on a document
</details> <details> <summary><strong>Tags</strong> β€” organize everything</summary>
ToolWhat it does
paperless.tags.listList all tags
paperless.tags.getGet a tag by ID
paperless.tags.createCreate a tag with optional color and matching rules
paperless.tags.updateUpdate a tag
paperless.tags.deleteDelete a tag
paperless.tags.bulk_deleteDelete multiple tags
</details> <details> <summary><strong>Correspondents</strong> β€” who sends you stuff</summary>
ToolWhat it does
paperless.correspondents.listList all correspondents
paperless.correspondents.getGet a correspondent by ID
paperless.correspondents.createCreate with optional matching rules
paperless.correspondents.updateUpdate a correspondent
paperless.correspondents.deleteDelete a correspondent
paperless.correspondents.bulk_deleteDelete multiple correspondents
</details> <details> <summary><strong>Document Types</strong> β€” invoices, receipts, contracts...</summary>
ToolWhat it does
paperless.document_types.listList all document types
paperless.document_types.getGet a document type by ID
paperless.document_types.createCreate with optional matching rules
paperless.document_types.updateUpdate a document type
paperless.document_types.deleteDelete a document type
paperless.document_types.bulk_deleteDelete multiple document types
</details> <details> <summary><strong>Storage Paths</strong> β€” where things live</summary>
ToolWhat it does
paperless.storage_paths.listList all storage paths
paperless.storage_paths.getGet a storage path by ID
paperless.storage_paths.createCreate with path template
paperless.storage_paths.updateUpdate a storage path
paperless.storage_paths.deleteDelete a storage path
paperless.storage_paths.bulk_deleteDelete multiple storage paths
</details> <details> <summary><strong>Custom Fields</strong> β€” your own metadata</summary>
ToolWhat it does
paperless.custom_fields.listList all custom field definitions
paperless.custom_fields.getGet a custom field by ID
paperless.custom_fields.createCreate a field (string, date, number, monetary, etc.)
paperless.custom_fields.updateUpdate a field definition
paperless.custom_fields.deleteDelete a field
paperless.custom_fields.assignAssign a field value to a document
</details> <details> <summary><strong>Health</strong> β€” is it alive?</summary>
ToolWhat it does
paperless.pingCheck connectivity and auth
paperless.capabilitiesList supported features
</details>

Support the Project

If PaperlessMCP saves you time, consider supporting development:

GitHub Sponsors Ko-fi

Every bit helps keep the lights on and the commits flowing.


Contributing

Yes please. We use trunk-based development with conventional commits.

git clone https://github.com/barryw/PaperlessMCP.git
cd PaperlessMCP
dotnet build
dotnet test

The rules:

  • Conventional commits (feat:, fix:, docs:, etc.) β€” versions bump automatically
  • Tests pass or it doesn't merge
  • Destructive operations need confirm=true and dry-run by default

See CONTRIBUTING.md for the full rundown.


License

MIT β€” do whatever you want, just don't blame me.


Acknowledgments

  • Paperless-ngx β€” the document system that makes this worth building
  • Model Context Protocol β€” the glue between AI and everything else
  • Everyone who's ever felt guilty about their untagged documents