paperless-ngx MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_HOST | No | Interface to bind. Set a bearer token before widening this. | 127.0.0.1 |
| MCP_HTTP_PATH | No | Path the MCP endpoint is mounted at. | /mcp |
| MCP_HTTP_PORT | No | Port to listen on. | 8765 |
| MCP_TRANSPORT | No | `stdio` or `http`. | stdio |
| PAPERLESS_URL | Yes | Base URL of the install. A trailing /api is stripped, so either form works. | |
| MCP_AUTH_TOKEN | No | When set, requests must send Authorization: Bearer <token>. /healthz stays open. | |
| PAPERLESS_TOKEN | No | API token. Takes precedence over username/password. | |
| MCP_ALLOWED_HOSTS | No | Comma-separated Host allowlist (DNS-rebinding protection). * disables the check. | localhost |
| PAPERLESS_PASSWORD | No | Basic-auth alternative to a token. | |
| PAPERLESS_USERNAME | No | Basic-auth alternative to a token. | |
| MCP_ALLOWED_ORIGINS | No | Comma-separated Origin allowlist. * disables the check. | localhost |
| PAPERLESS_READ_ONLY | No | When set, every tool that would modify the archive refuses to run — no request is even sent. | false |
| PAPERLESS_TIMEOUT_MS | No | Per-request timeout. | 30000 |
| PAPERLESS_API_VERSION | No | Pin the API version (Accept: …; version=N). Leave unset unless you have a reason. | |
| PAPERLESS_UPLOAD_DIRS | No | Comma-separated list of directories paperless_upload_document may read from. | $PAPERLESS_DOWNLOAD_DIR |
| PAPERLESS_DOWNLOAD_DIR | No | The only directory paperless_download_document may write into. Created 0700. | $TMPDIR/paperless-mcp |
| NODE_TLS_REJECT_UNAUTHORIZED | No | Set to 0 to disable certificate checking for the whole process (e.g., for self-signed certificates). | 1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| paperless_search_documentsA | Find documents in paperless-ngx. Combine full-text search with structured filters.
|
| paperless_get_documentA | Fetch one document by id: metadata with names resolved, plus its extracted text, notes and custom field values. Use this after |
| paperless_download_documentA | Save a document’s file to local disk and return the path. Use |
| paperless_upload_documentA | Upload a local file into paperless-ngx for consumption (OCR, tagging, filing). The file must live in one of the directories this server is allowed to read (PAPERLESS_UPLOAD_DIRS). Returns the consumption task id; consumption is asynchronous, so set |
| paperless_update_documentA | Change one document’s metadata. Only the fields you pass are touched. |
| paperless_bulk_edit_documentsA | Apply one operation to many documents at once. Supply only the parameters the chosen |
| paperless_get_document_suggestionsA | Ask paperless what it would file a document as, based on its trained matching. Returns suggested correspondents, tags, document types, storage paths and dates. Useful before |
| paperless_document_notesA | List, add or delete the free-text notes attached to a document. |
| paperless_list_objectsA | List the objects documents are filed under, with their ids and document counts. Call this first when you need an id for a tag, correspondent, document type, storage path or custom field — the document tools take ids, not names. Also reaches saved views, users, groups, mail accounts, mail rules, workflows and share links. |
| paperless_create_objectA | Create a tag, correspondent, document type, storage path or custom field. Matching algorithm: 0 none, 1 any word, 2 all words, 3 exact, 4 regex, 5 fuzzy, 6 auto (trained classifier). Storage paths need a |
| paperless_update_objectA | Rename or reconfigure an existing tag, correspondent, document type, storage path or custom field. Only the fields you pass are changed. |
| paperless_delete_objectsA | Permanently delete tags, correspondents, document types or storage paths. Documents themselves are not deleted, but they lose the association. Requires |
| paperless_get_statisticsA | Totals for the whole library: document count, documents in the inbox, characters indexed, counts of tags/correspondents/document types, and a breakdown by file type. A good first call to see how big the library is before searching it. |
| paperless_get_system_statusA | Health of the paperless-ngx install: version, database and index status, Redis/Celery connectivity, plus the API version this server is talking to. Use this to check connectivity and diagnose failures. |
| paperless_list_tasksA | Inspect paperless’ background tasks — document consumption, index rebuilds, and so on. Use this to follow up on an upload: pass the |
| paperless_api_requestA | Escape hatch for any paperless-ngx REST endpoint the other tools do not cover — workflows, share links, mail rules, trash, document merge/rotate/edit_pdf, permissions, and so on. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| taxonomy | Every tag, correspondent, document type, storage path and custom field with its id. |
| statistics | Document counts, inbox size and file-type breakdown for the library. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/patrickcylai/paperless-ngx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server