Paperless MCP Server

Model Context Protocol (MCP) server for Paperless-NGX. Lets AI assistants manage documents, tags, correspondents, document types, custom fields

Local serverstdioTypeScript

What is the Paperless MCP server?

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.

What you get

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.

Setting it up

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.

What the assistant can call

Once Paperless is connected, these are the calls the assistant has available:

  • 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
  • edit_documents_bulk — Parameters: - documents: array of document IDs - method: one of set_correspondent, set_document_type, set_storage_path, add_tag, remove_tag
  • post_document — Parameters: file, filename, plus optional title, created, correspondent, document_type, storage_path, tags, archive_serial_number, custom_fields

Configuration and credentials

You 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.

Before you rely on it

  • 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.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the paperless mcp server does with a few real requests.

Choosing this one

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.

Available tools

ToolWhat it does
ConfigurationCLI flags (--baseUrl, --token, --publicUrl, --http, --port) take precedence over environment variables.
DocumentsThe Documents tool exposed by this server.
TagsThe Tags tool exposed by this server.
CorrespondentsThe Correspondents tool exposed by this server.
WorkflowsThe Workflows tool exposed by this server.
triage_inboxWalks 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_bulkParameters: - 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_documentParameters: file, filename, plus optional title, created, correspondent, document_type, storage_path, tags, archive_serial_number, custom_fields, poll, poll_timeout_seconds.

How to install the Paperless MCP server

{
  "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.

Configuration

VariableDescriptionRequired
PAPERLESS_URLEndpoint or connection string the server talks to.Yes
PAPERLESS_API_KEYCredential the server authenticates with.Yes
PAPERLESS_PUBLIC_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Paperless to Configuration.
  • Use Paperless to Documents.
  • Use Paperless to Tags.

Frequently asked questions

It connects Paperless to MCP-compatible AI assistants such as Claude and Cursor, exposing 8 tools (Configuration, Documents, Tags, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Paperless directly.