Paperless MCP Server

An MCP (Model Context Protocol) server for interacting with a Paperless-NGX API server. This server provides tools for managing documents, tags

Local serverstdioTypeScript

What is the Paperless MCP server?

An MCP (Model Context Protocol) server for interacting with a Paperless-NGX API server. This server provides tools for managing documents, tags, correspondents, and document types in your Paperless-NGX instance. That is what the paperless mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

Getting it running

Installation goes through your MCP client rather than a global install: point it at paperless-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.

The tools it exposes

The server publishes 13 tools. What each one is for:

  • Installation — 1. Install the MCP server: bash npm install -g paperless-mcp
  • list_documents — Parameters: - page (optional): Page number - page_size (optional): Number of documents per page
  • get_document — The get_document tool exposed by this server
  • search_documents — The search_documents tool exposed by this server
  • download_document — Parameters: - id: Document ID - original (optional): If true, downloads original file instead of archived version
  • bulk_edit_documents — Parameters: - documents: Array of document IDs - method: One of: - set_correspondent: Set correspondent for documents - set_document_type: Set
  • post_document — Parameters: - file: Base64 encoded file content - filename: Name of the file - title (optional): Title for the document - created (optional)
  • list_tags — The list_tags tool exposed by this server
  • create_tag — Parameters: - name: Tag name - color (optional): Hex color code (e.g. "#ff0000") - match (optional): Text pattern to match - matching_algorithm
  • list_correspondents — The list_correspondents tool exposed by this server
  • create_correspondent — Parameters: - name: Correspondent name - match (optional): Text pattern to match - matching_algorithm (optional): One of "any", "all", "exact"
  • list_document_types — The list_document_types tool exposed by this server

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 13 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Paperless.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of file and storage access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Paperless's toolset — Installation, list_documents, get_document and 10 more — is a fair guide to whether it matches your workflow. It is maintained by nloui; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
Installation1. Install the MCP server: bash npm install -g paperless-mcp
list_documentsParameters: - page (optional): Page number - page_size (optional): Number of documents per page
get_documentThe get_document tool exposed by this server.
search_documentsThe search_documents tool exposed by this server.
download_documentParameters: - id: Document ID - original (optional): If true, downloads original file instead of archived version
bulk_edit_documentsParameters: - documents: Array of document IDs - method: One of: - set_correspondent: Set correspondent for documents - set_document_type: Set document type for documents - set_storage_path: Set storage path for document
post_documentParameters: - file: Base64 encoded file content - filename: Name of the file - title (optional): Title for the document - created (optional): DateTime when the document was created (e.g. "2024-01-19" or "2024-01-19 06:15
list_tagsThe list_tags tool exposed by this server.
create_tagParameters: - name: Tag name - color (optional): Hex color code (e.g. "#ff0000") - match (optional): Text pattern to match - matching_algorithm (optional): One of "any", "all", "exact", "regular expression", "fuzzy"
list_correspondentsThe list_correspondents tool exposed by this server.
create_correspondentParameters: - name: Correspondent name - match (optional): Text pattern to match - matching_algorithm (optional): One of "any", "all", "exact", "regular expression", "fuzzy"
list_document_typesThe list_document_types tool exposed by this server.
create_document_typeParameters: - name: Document type name - match (optional): Text pattern to match - matching_algorithm (optional): One of "any", "all", "exact", "regular expression", "fuzzy"

How to install the Paperless MCP server

{
  "mcpServers": {
    "paperless-mcp-nloui": {
      "command": "npx",
      "args": ["-y", "paperless-mcp"]
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Example prompts to try

  • Use Paperless to Installation.
  • Use Paperless to list documents.
  • Use Paperless to get document.

Frequently asked questions

A running Paperless-NGX instance and a valid API token from that instance.