Skip to content
Agentmart
Submit a tool

Paperless MCP

Paperless-NGX over MCP: search, read, upload and tag documents; manage correspondents and types.

Connector by pvliesdonk · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)Remote (HTTP)★ 1
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/pvliesdonk-paperless-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Paperless-NGX over MCP: search, read, upload and tag documents; manage correspondents and types.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
27 read · 12 write · 9 delete · 1 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 49

Read from the source code; the running server may list different tools.

Read 27 · Look things up without changing anything.

  • get_correspondent
  • get_custom_field
  • get_document
  • get_document_content
  • get_document_history
  • get_document_metadata
  • get_document_notes
  • get_document_suggestions
  • get_document_thumbnail
  • get_document_type
  • get_remote_version
  • get_saved_view
Show 15 more tools
  • get_share_link
  • get_statistics
  • get_storage_path
  • get_tag
  • get_task
  • list_correspondents
  • list_custom_fields
  • list_document_types
  • list_documents
  • list_saved_views
  • list_share_links
  • list_storage_paths
  • list_tags
  • list_tasks
  • search_documents

Write 12 · Create, change, send or run things.

  • add_document_note
  • bulk_edit_documents
  • create_correspondent
  • create_custom_field
  • create_document_type
  • create_tag
  • update_correspondent
  • update_custom_field
  • update_document
  • update_document_type
  • update_tag
  • upload_document

Delete 9 · Delete, drop, revoke or wipe things.

  • bulk_edit_correspondents
  • bulk_edit_document_types
  • bulk_edit_tags
  • delete_correspondent
  • delete_custom_field
  • delete_document
  • delete_document_note
  • delete_document_type
  • delete_tag

Not yet classified 1 · We could not tell from the name and description.

  • wait_for_task

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • PAPERLESS_MCP_API_TOKEN

Other settings (environment variables or headers).

  • PAPERLESS_MCP_DEFAULT_PAGE_SIZE
  • PAPERLESS_MCP_HTTP_RETRIES
  • PAPERLESS_MCP_HTTP_TIMEOUT_SECONDS
  • PAPERLESS_MCP_INSTANCE_DESCRIPTION
  • PAPERLESS_MCP_INSTRUCTIONS
  • PAPERLESS_MCP_INSTRUCTIONS_EXTRA
  • PAPERLESS_MCP_KV_STORE_URL
  • PAPERLESS_MCP_LOG_FORMAT
  • PAPERLESS_MCP_LOG_LEVEL
  • PAPERLESS_MCP_PAPERLESS_PUBLIC_URL
  • PAPERLESS_MCP_PAPERLESS_URL
  • PAPERLESS_MCP_SERVER_NAME
Show 7 more settings
  • PAPERLESS_MCP_TOOLS_ALLOW
  • PAPERLESS_MCP_TOOLS_DENY
  • PAPERLESS_MCP_TRANSFER_GRACE_TTL_S
  • PAPERLESS_MCP_TRANSFER_LEASE_S
  • PAPERLESS_MCP_TRANSFER_MAX_UPLOAD_BYTES
  • PAPERLESS_MCP_TRANSFER_TTL_DEFAULT_S
  • PAPERLESS_MCP_TRANSFER_TTL_MAX_S

Network hosts it talks to 6

  • api.github.com · found in code
  • docs.astral.sh · found in code
  • github.com · found in code
  • gofastmcp.com · found in code
  • pvliesdonk.github.io · found in code
  • vale.sh · found in code

Files it touches

  • /etc/paperless-mcp/tokens.toml
  • /opt/paperless-mcp
  • Any path the agent passes to its tools

Tools (49)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_document_note

    Add a note to a document; returns the new note with its id. Args: note: Text of the note.

  • bulk_edit_correspondents

    Set the owner and permissions of many correspondents, or delete them; returns OK when applied. Args: operation: set_permissions or delete.

  • bulk_edit_document_types

    Set the owner and permissions of many document types, or delete them; returns OK when applied. Args: operation: set_permissions or delete.

  • bulk_edit_documents

    Apply one operation to many documents at once; returns OK once Paperless accepts it. Metadata operations (set_*, add_tag, remove_tag, modify_tags, modify_custom_fields, set_permissions) are applied before the reply: list_documents and get_document show them at once, search_documents only after the bulk_update reindex task in list_tasks. delete, reprocess and the PDF operations run as their own background tasks. Args: operation: What to do to every document in ids. parameters: Arguments for the operation: set_correspondent {"correspondent": id}, set_document_type {"document_ty…

  • bulk_edit_tags

    Set the owner and permissions of many tags, or delete them; returns OK when applied. Args: operation: set_permissions or delete.

  • create_correspondent

    Create a correspondent; returns it with its id.

  • create_custom_field

    Define a new custom field; returns it with its id. Args: body: The field's name, type and, for select or monetary, extra_data.

  • create_document_type

    Create a document type; returns it with its id.

  • create_tag

    Create a tag; returns it with its id.

  • delete_correspondent

    Delete a correspondent and clear it from every document that names it.

  • delete_custom_field

    Delete a custom field and its value on every document.

  • delete_document

    Move a document to Paperless's trash, where a user can restore it until the trash is emptied.

  • delete_document_note

    Delete one note from a document. Args: note_id: Id of the note, from get_document_notes.

  • delete_document_type

    Delete a document type and clear it from every document of that type.

  • delete_tag

    Delete a tag and remove it from every document that carries it.

Show 34 more tools
  • get_correspondent

    Get one correspondent by id.

  • get_custom_field

    Get one custom field definition by id, with its select options.

  • get_document

    Get one document's metadata, notes and custom field values, without its text. Use get_document_content for the text.

  • get_document_content

    Read a document's text, up to 20,000 characters per call. A longer document comes back in sections: each opens with a marker naming the range returned, the full length and the offset of the next section. Text that fits is returned whole, with no marker. Args: max_chars: Most characters to return in this call. offset: Character position to start from; pass the offset a marker names to read the next section.

  • get_document_history

    List the changes made to a document: who changed which field, and when.

  • get_document_metadata

    Get a document's file details: original and archived file names, sizes, checksums and MIME type.

  • get_document_notes

    List the notes on a document, with their full text.

  • get_document_suggestions

    Get Paperless's suggested tags, correspondent, document type and dates for a document.

  • get_document_thumbnail

    Get a small image of a document's first page.

  • get_document_type

    Get one document type by id.

  • get_remote_version

    Check whether a newer Paperless-NGX release exists; returns the newest release. That is the newest release published upstream, not the version installed on this instance, with a flag saying whether it is newer. Use get_server_info for the installed version.

  • get_saved_view

    Get one saved view by id, with its filter rules and sort order.

  • get_share_link

    Get one share link by id, with its document, expiry and URL.

  • get_statistics

    Get counts for the whole archive: documents, inbox documents, tags, correspondents, types, characters and file types.

  • get_storage_path

    Get one storage path by id, with its path template.

  • get_tag

    Get one tag by id.

  • get_task

    Get one background task by id, with its status and result; returns null if there is none. Args: task_uuid: Task id, as returned by upload_document or listed by list_tasks.

  • list_correspondents

    List correspondents; returns one page with their ids and names. Each carries last_correspondence, the date of its newest document.

  • list_custom_fields

    List custom field definitions; returns one page with their ids, names and types.

  • list_document_types

    List document types; returns one page with their ids and names.

  • list_documents

    List documents filtered by their metadata; returns one page of metadata. Use search_documents to find documents by the words in them. Results leave out each document's text, note text and custom field values; get_document_content and get_document return them. Args: tags: Keep documents that carry any of these tag ids. correspondent: Keep documents from this correspondent id. document_type: Keep documents of this document type id. storage_path: Keep documents in this storage path id. custom_field: Keep documents that have this custom field.

  • list_saved_views

    List saved views, the named document filters users keep in Paperless; returns one page.

  • list_share_links

    List public share links for documents; returns one page with each link's document, expiry and URL. Args: document_id: Keep only the links to this document.

  • list_storage_paths

    List storage paths, the folder layouts Paperless files documents into; returns one page.

  • list_tags

    List tags; returns one page with their ids and names.

  • list_tasks

    List Paperless background tasks such as consuming uploads and reindexing; returns one page, newest first. Args: status: Keep tasks in this state. task_type: Keep tasks of this kind; bulk_update is the reindex that bulk_edit_documents' metadata operations start. acknowledged: Keep only acknowledged (true) or unacknowledged (false) tasks. include_acknowledged: Also list tasks already acknowledged; by default only unacknowledged ones are listed.

  • search_documents

    Search the full text and metadata of documents; returns one page, best match first. Use list_documents to filter by tag, correspondent or type alone. Results leave out each document's text, note text and custom field values; get_document_content and get_document return them. Args: query: Words that must all appear, in any order, in a document's text, title, correspondent, type or tags. Also accepts AND and OR, field terms such as tag:unpaid or created:[2024 to 2025], and notes.note:word for note text. Pass "" with more_like. more_like: Document id; return docu…

  • update_correspondent

    Change a correspondent's name or matching rule; returns the updated correspondent. Args: patch: Only the fields to change.

  • update_custom_field

    Rename a custom field or change its options; returns the updated field. Args: patch: Only the fields to change.

  • update_document

    Change a document's metadata; returns the updated document without its text. Use bulk_edit_documents to change many documents at once. Args: patch: Only the fields to change.

  • update_document_type

    Change a document type's name or matching rule; returns the updated document type. Args: patch: Only the fields to change.

  • update_tag

    Change a tag's name, colour, inbox flag or matching rule; returns the tag. Args: patch: Only the fields to change.

  • upload_document

    Upload a file for Paperless to consume; returns the consume task's id. The document appears once the task finishes; wait_for_task waits for it and its result names the new document. For large files, use create_upload_link where it is available. Args: filename: File name, with the extension that tells Paperless its type. content_base64: The file's bytes, base64-encoded. title: Title; omit to let Paperless derive one. correspondent: Correspondent id. document_type: Document type id. tags: Tag ids to add. created: Creation date, YYYY-MM-DD or ISO 8601. archive_se…

  • wait_for_task

    Wait for a background task to finish; returns the task with its final status and result. Args: task_uuid: Task id, as returned by upload_document or listed by list_tasks. timeout_seconds: Longest time to wait, up to 600 seconds.

Signals

Stars
1
Forks
0
Open issues
8
Weekly downloads
111
Last commit
Sep 28, 2026 (1 month ago)
Last release
Sep 21, 2026 (1 month ago)
Last package publish
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.pvliesdonk/paperless-mcp
Version
3.0.0
Auth
API key
Packages
pypi pvliesdonk-paperless-mcpoci ghcr.io/pvliesdonk/paperless-mcp:v3.0.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from pvliesdonk

Cite this page

Paperless MCP. Agent Mart. https://agentmart.dev/connectors/pvliesdonk-paperless-mcp (last updated 2026-10-24)