mcp-paperless-ngx
Allows managing documents, tags, correspondents, document types, and workflows in a Paperless-ngx instance.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-paperless-ngx
MCP server for Paperless-ngx using the streamable HTTP transport protocol.
Features
Resources
URI | Description |
| Full OpenAPI spec for the Paperless-ngx REST API |
| Configured server base URL |
| API auth token |
Tools (read-only)
list_documents— list documents with filters (tag, correspondent, document type, full-text query)get_document— retrieve a single document with all metadataget_document_content— retrieve extracted text content of a documentget_document_suggestions— AI-generated metadata suggestions for a documentlist_tags— list all tagslist_correspondents— list all correspondentslist_document_types— list all document typeslist_workflows— list all sorting workflowslist_workflow_triggers— list all workflow triggerslist_workflow_actions— list all workflow actions
Tools (write — metadata and workflow creation)
create_tag— create a new tagcreate_correspondent— create a new correspondentcreate_document_type— create a new document typecreate_workflow_trigger— create a workflow trigger (conditions)create_workflow_action— create a workflow action (assignments)create_workflow— create a complete workflow linking triggers and actions
Prompts
get_inbox_documents— formatted overview of all inbox documentsget_document_data_for_rule_creation(document_id)— detailed document data to help design a sorting rulecreate_sorting_rule(document_id?)— guided walkthrough for creating a sorting workflow
Related MCP server: paperlessngx-mcp
Configuration
Create ~/.config/mcp-paperless-ngx/config.toml:
[paperless]
server_url = "http://your-paperless-server:8000"
token = "your-api-token"
inbox_tag_id = 1 # ID of the tag used for the inbox viewOverride the config path with the PAPERLESS_MCP_CONFIG environment variable.
Running
# Install dependencies
uv sync
# Start the server (listens on 0.0.0.0:8000/mcp)
uv run mcp-paperless-ngxThe MCP endpoint is available at http://localhost:8000/mcp (streamable HTTP).
Docker
Quick start
# Pull and run (replace values in the environment or mount a config file)
docker run -d \
--name mcp-paperless-ngx \
-p 8000:8000 \
-v ./config:/config:ro \
ghcr.io/Code-Omega-Solutions/mcp-paperless-ngx:latestCreate ./config/config.toml before starting (see Configuration above).
docker-compose
# 1. Create the config directory and file
mkdir config
cat > config/config.toml <<'EOF'
[paperless]
server_url = "http://your-paperless-server:8000"
token = "your-api-token"
inbox_tag_id = 1
EOF
# 2. Start the service
docker compose up -d
# 3. Check it is healthy
docker compose psThe docker-compose.yml in this repository mounts ./config as read-only and
includes a health check that verifies the server is accepting TCP connections on
port 8000.
Building locally
docker build -t mcp-paperless-ngx .
docker run -d -p 8000:8000 -v ./config:/config:ro mcp-paperless-ngxPublished image
Pre-built images for linux/amd64 and linux/arm64 are available at:
ghcr.io/Code-Omega-Solutions/mcp-paperless-ngx:latestTags follow Semantic Versioning — v1.2.3, 1.2, latest.
Getting an API token
In Paperless-ngx, go to Settings → Profile and generate an API token, or use:
curl -X POST http://your-server/api/token/ \
-d '{"username": "your-user", "password": "your-password"}' \
-H "Content-Type: application/json"Connecting from Open WebUI
To use this MCP server with Open WebUI:
Open Settings → Functions
Click "+" to add a new function
Configure the MCP connection:
Name: Paperless Assistant (or your preferred name)
Type: MCP
URL:
http://host.docker.internal:8000/mcpIf Open WebUI runs in Docker on the same host as mcp-paperless-ngx, use
host.docker.internalIf running on different hosts, replace with the actual hostname/IP
Critical: The port (
:8000) and/mcppath are required
Auth: None ⚠️
Do NOT use "Bearer" — the server authenticates to Paperless internally using credentials from
config.tomlOpen WebUI does not need to provide additional auth tokens
Description: (Optional) "Access Paperless-ngx documents"
Click Save
Test the connection by asking: "Show me documents in my inbox"
Common Issues
404 errors: Verify the URL includes
/mcpat the endConnection refused: Ensure the port
:8000is included and the server is running (uv run mcp-paperless-ngx)Authentication errors: Confirm Auth is set to "None", not "Bearer"
This server cannot be deployed
Maintenance
Related MCP Connectors
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Your IMAP mailbox as an MCP server: read, search and (if you allow it) organize mail. Open source.
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
Related MCP Servers
- AlicenseBqualityAmaintenanceAn 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.44565 npm148TypeScriptISC
- FlicenseAqualityBmaintenanceA privacy-first MCP server for Paperless-ngx that lets an LLM agent search, organize, tag, and reference documents without exposing full text unless explicitly requested.13-
- FlicenseAqualityCmaintenanceMCP server for Paperless-ngx document management. Enables AI models to search, retrieve, update documents and manage metadata.7-
- AlicenseAqualityBmaintenanceA read-only MCP server for your paperless-ngx document archive that lets an AI assistant search documents by full text, tags, correspondents, and dates, and read the text of any document.72MIT