paperless-ngx-mcp

MCPcon attestation
v3.2.1Oliver FueckertISCActualizado hoynpmGitHub

Model Context Protocol (MCP) server for Paperless-NGX. Lets AI assistants manage documents and their versions, tags, correspondents, document types, custom fields, saved views, storage paths, workflows, mail accounts and rules, share links and bundles, no

Funciona en
ClaudeCursorCopilotGemini

Inferido de los transportes que declara este listado (stdio). Que un cliente no aparezca aquí no significa que se haya descartado: simplemente Forge no puede confirmarlo.

Build con attestation
Una attestation de procedencia verificada vincula este artefacto al repositorio listado. Nadie ha reclamado todavía el listado: esto demuestra dónde se construyó el código, no quién lo respalda.
6Estrellas en GitHub
3Forks
hoyÚltima actualización
Necesita 1 credencial antes de poder ejecutarse
  • PAPERLESS_API_KEYClave de APIobligatoria

    Paperless-ngx API token (My Profile → generate token)

Declarado por el autor en el registro oficial de MCP. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Paquete
AutorOliver Fueckert
LicenciaISC
Versión3.2.1
Fuentenpm+mcp-registry
Estado de confianza
A
85/100Fiable
✓Listado en el índice de Forge+10/10
✓Identidad verificada · build con attestation+20/20
—Firma de publicación Ed25519+0/5
→ Se incluye automáticamente cuando el publicador ejecuta `forge publish`
—Verificación de dominio+0/5
→ Publicador: aloja /.well-known/forge.json en la página del paquete con { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—Coincidencia de maintainer en npm+0/5
→ Publicador: añade el login de GitHub verificado a los maintainers del paquete de npm (npm owner add <login>)
✓Análisis CVE · limpio+30/30
✓Análisis estático · limpio+20/20
Pégalo en Claude Code, Cursor o cualquier asistente de IA para corregir todas las carencias
EstadoIdentidad verificada
PublicadorSin verificar
FirmaSin firmar
Dominio—
Procedencia✓ Verificado con Sigstore · fdb24b6
Dependencias✓ 60 resueltas+ · ninguna vulnerable
Superficie de herramientas40 herramientas · 8 privilegiadas
Análisis de seguridad✓ Limpiov3.2.1 · hoy¿Qué tan bien funciona este análisis?
EvaluacionesNinguna
Indexado24 sept 2026

La verificación confirma la identidad del publicador (la propiedad del repo), no la seguridad del código. El análisis de seguridad cubre los CVE conocidos y los scripts de instalación sospechosos.

Herramientas

40 herramientas · 8 privilegiadas
Extraído estáticamente del paquete publicadov3.2.1 · 7h ago

Leído del código que npm publica realmente, en el momento del análisis. El paquete nunca se ejecutó. Las herramientas registradas dinámicamente en tiempo de ejecución, o escondidas en código empaquetado o minificado, pueden pasarse por alto — así que esto es un mínimo de la superficie de herramientas, no un censo completo.

list_correspondentsList all correspondents with optional filtering and pagination. Correspondents represent entities that send or receive documents.

List all correspondents with optional filtering and pagination. Correspondents represent entities that send or receive documents.

No se publicó ningún esquema de entrada para esta herramienta.

get_correspondentGet a specific correspondent by ID with full details including matching rules.

Get a specific correspondent by ID with full details including matching rules.

No se publicó ningún esquema de entrada para esta herramienta.

create_correspondentCreate a new correspondent with optional matching pattern and algorithm for automatic document assignment.

Create a new correspondent with optional matching pattern and algorithm for automatic document assignment.

No se publicó ningún esquema de entrada para esta herramienta.

update_correspondentUpdate fields on ONE correspondent (PATCH — only fields you supply are changed). Editable fields: name, match (matching pattern), matching_algorithm, is_insensitive. To assign this correspondent to documents, use edit_documents_bulk with method 'set_correspondent' or update_document instead.

Update fields on ONE correspondent (PATCH — only fields you supply are changed). Editable fields: name, match (matching pattern), matching_algorithm, is_insensitive. To assign this correspondent to documents, use edit_documents_bulk with method 'set_correspondent' or update_document instead.

No se publicó ningún esquema de entrada para esta herramienta.

delete_correspondentprivilegiada⚠️ DESTRUCTIVE: Permanently delete a correspondent from the entire system. This will affect ALL documents that use this correspondent.

⚠️ DESTRUCTIVE: Permanently delete a correspondent from the entire system. This will affect ALL documents that use this correspondent.

No se publicó ningún esquema de entrada para esta herramienta.

list_custom_fieldsList all custom fields. IMPORTANT: When a user query may refer to a custom field, you should fetch all custom fields up front (with a large enough page_size), cache them for the session, and search locally for matches by name before making further API calls. This reduces redundant requests and hand…

List all custom fields. IMPORTANT: When a user query may refer to a custom field, you should fetch all custom fields up front (with a large enough page_size), cache them for the session, and search locally for matches by name before making further API calls. This reduces redundant requests and hand…

No se publicó ningún esquema de entrada para esta herramienta.

get_custom_fieldGet a specific custom field by ID with full details including data type and extra configuration.

Get a specific custom field by ID with full details including data type and extra configuration.

No se publicó ningún esquema de entrada para esta herramienta.

create_custom_fieldCreate a new custom field with a specified data type (string, url, date, boolean, integer, float, monetary, documentlink, or select). For monetary fields, values must use currency code prefix format (e.g., USD10.00, GBP123.45) — NOT trailing symbol format (e.g., 10.00$).

Create a new custom field with a specified data type (string, url, date, boolean, integer, float, monetary, documentlink, or select). For monetary fields, values must use currency code prefix format (e.g., USD10.00, GBP123.45) — NOT trailing symbol format (e.g., 10.00$).

No se publicó ningún esquema de entrada para esta herramienta.

update_custom_fieldUpdate fields on ONE custom field definition (PATCH — only fields you supply are changed). Editable fields: name, data_type, extra_data. ⚠️ Changing data_type on a field that already has values on documents may render those values invalid or unreadable — change data_type only on unused fields. To s…

Update fields on ONE custom field definition (PATCH — only fields you supply are changed). Editable fields: name, data_type, extra_data. ⚠️ Changing data_type on a field that already has values on documents may render those values invalid or unreadable — change data_type only on unused fields. To s…

No se publicó ningún esquema de entrada para esta herramienta.

delete_custom_fieldprivilegiada⚠️ DESTRUCTIVE: Permanently delete a custom field from the entire system. This will remove the field from ALL documents that use it.

⚠️ DESTRUCTIVE: Permanently delete a custom field from the entire system. This will remove the field from ALL documents that use it.

No se publicó ningún esquema de entrada para esta herramienta.

edit_custom_fields_bulkprivilegiadaManage custom field definitions themselves (permissions, delete). ⚠️ This does NOT modify custom field values on documents — use edit_documents_bulk with method 'modify_custom_fields' for that. WARNING: 'delete' permanently removes custom fields from the entire system.

Manage custom field definitions themselves (permissions, delete). ⚠️ This does NOT modify custom field values on documents — use edit_documents_bulk with method 'modify_custom_fields' for that. WARNING: 'delete' permanently removes custom fields from the entire system.

No se publicó ningún esquema de entrada para esta herramienta.

edit_documents_bulkprivilegiadaSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

post_documentUpload a new document file (PDF, image, etc.) to Paperless-NGX with optional metadata. Upload is asynchronous: by default returns a task UUID (use list_tasks to track consumer progress) — the actual document ID is assigned only after the consumer has processed the file. Set poll=true to wait for th…

Upload a new document file (PDF, image, etc.) to Paperless-NGX with optional metadata. Upload is asynchronous: by default returns a task UUID (use list_tasks to track consumer progress) — the actual document ID is assigned only after the consumer has processed the file. Set poll=true to wait for th…

No se publicó ningún esquema de entrada para esta herramienta.

list_documentsSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

get_documentSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

get_document_contentGet the text content of a specific document by ID. Use this when you need to read or analyze the actual document text. For long documents, read a slice with max_chars (and offset to continue) — e.g. max_chars: 2000 is usually enough to identify a document. Paperless stores the text without page bou…

Get the text content of a specific document by ID. Use this when you need to read or analyze the actual document text. For long documents, read a slice with max_chars (and offset to continue) — e.g. max_chars: 2000 is usually enough to identify a document. Paperless stores the text without page bou…

No se publicó ningún esquema de entrada para esta herramienta.

search_documentsRanked full-text search through Paperless's search index (content, title and metadata). mode 'query' (default) takes advanced syntax — AND/OR/NOT, "quoted phrases", field:value, wildcards*; 'text' takes plain words with no syntax; 'title' searches titles only. The index is updated in the background…

Ranked full-text search through Paperless's search index (content, title and metadata). mode 'query' (default) takes advanced syntax — AND/OR/NOT, "quoted phrases", field:value, wildcards*; 'text' takes plain words with no syntax; 'title' searches titles only. The index is updated in the background…

No se publicó ningún esquema de entrada para esta herramienta.

download_documentDownload a document file by ID. Returns the document as a base64-encoded resource.

Download a document file by ID. Returns the document as a base64-encoded resource.

No se publicó ningún esquema de entrada para esta herramienta.

get_document_thumbnailGet a document thumbnail (image preview) by ID. Returns the thumbnail as a base64-encoded WebP image resource.

Get a document thumbnail (image preview) by ID. Returns the thumbnail as a base64-encoded WebP image resource.

No se publicó ningún esquema de entrada para esta herramienta.

update_documentSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

email_documentSend a document via email to one or more recipients.

Send a document via email to one or more recipients.

No se publicó ningún esquema de entrada para esta herramienta.

get_document_historyGet the change history / audit log for a document, showing who changed what and when.

Get the change history / audit log for a document, showing who changed what and when.

No se publicó ningún esquema de entrada para esta herramienta.

get_document_previewGet a full-page preview image of a document. Returns the preview as a base64-encoded image resource.

Get a full-page preview image of a document. Returns the preview as a base64-encoded image resource.

No se publicó ningún esquema de entrada para esta herramienta.

list_document_typesList all document types. IMPORTANT: When a user query may refer to a document type or tag, you should fetch all document types and all tags up front (get_filing_options returns both, plus correspondents and storage paths, in one call), cache them for the session, and search locally for matches by n…

List all document types. IMPORTANT: When a user query may refer to a document type or tag, you should fetch all document types and all tags up front (get_filing_options returns both, plus correspondents and storage paths, in one call), cache them for the session, and search locally for matches by n…

No se publicó ningún esquema de entrada para esta herramienta.

get_document_typeGet a specific document type by ID with full details including matching rules.

Get a specific document type by ID with full details including matching rules.

No se publicó ningún esquema de entrada para esta herramienta.

create_document_typeCreate a new document type with optional matching pattern and algorithm for automatic document classification.

Create a new document type with optional matching pattern and algorithm for automatic document classification.

No se publicó ningún esquema de entrada para esta herramienta.

update_document_typeUpdate fields on ONE document type (PATCH — only fields you supply are changed). Editable fields: name, match (matching pattern), matching_algorithm, is_insensitive. To assign this document type to documents, use edit_documents_bulk with method 'set_document_type' or update_document instead.

Update fields on ONE document type (PATCH — only fields you supply are changed). Editable fields: name, match (matching pattern), matching_algorithm, is_insensitive. To assign this document type to documents, use edit_documents_bulk with method 'set_document_type' or update_document instead.

No se publicó ningún esquema de entrada para esta herramienta.

delete_document_typeprivilegiada⚠️ DESTRUCTIVE: Permanently delete a document type from the entire system. This will affect ALL documents that use this type.

⚠️ DESTRUCTIVE: Permanently delete a document type from the entire system. This will affect ALL documents that use this type.

No se publicó ningún esquema de entrada para esta herramienta.

upload_document_versionprivilegiadaAdd a new file version to an EXISTING document instead of creating a new document — e.g. a corrected scan, a signed copy, or an unlocked PDF. The new file becomes the current version: content, search and downloads follow it, and earlier versions stay listed in the document's `versions` (see get_doc…

Add a new file version to an EXISTING document instead of creating a new document — e.g. a corrected scan, a signed copy, or an unlocked PDF. The new file becomes the current version: content, search and downloads follow it, and earlier versions stay listed in the document's `versions` (see get_doc…

No se publicó ningún esquema de entrada para esta herramienta.

update_document_versionRename a version of a document (change its version_label). Version IDs are listed in get_document's `versions`.

Rename a version of a document (change its version_label). Version IDs are listed in get_document's `versions`.

No se publicó ningún esquema de entrada para esta herramienta.

delete_document_versionprivilegiada⚠️ DESTRUCTIVE: Permanently delete one non-root version of a document. The root (original) version can't be deleted — delete the document instead.

⚠️ DESTRUCTIVE: Permanently delete one non-root version of a document. The root (original) version can't be deleted — delete the document instead.

No se publicó ningún esquema de entrada para esta herramienta.

merge_documents_as_versions⚠️ Fold other documents into one document as its versions: each document in merge_documents stops existing as a separate document and becomes a version of root_document_id. Use it when the same paper arrived twice (e.g. a scan and a later emailed copy). Runs asynchronously.

⚠️ Fold other documents into one document as its versions: each document in merge_documents stops existing as a separate document and becomes a version of root_document_id. Use it when the same paper arrived twice (e.g. a scan and a later emailed copy). Runs asynchronously.

No se publicó ningún esquema de entrada para esta herramienta.

list_mail_accountsList the IMAP accounts Paperless fetches mail from. Passwords are always masked.

List the IMAP accounts Paperless fetches mail from. Passwords are always masked.

No se publicó ningún esquema de entrada para esta herramienta.

get_mail_accountGet one mail account by ID (password masked).

Get one mail account by ID (password masked).

No se publicó ningún esquema de entrada para esta herramienta.

create_mail_accountCreate an IMAP account for Paperless to fetch mail from. Nothing is fetched until a mail rule uses the account (create_mail_rule). Check the connection first with test_mail_account.

Create an IMAP account for Paperless to fetch mail from. Nothing is fetched until a mail rule uses the account (create_mail_rule). Check the connection first with test_mail_account.

No se publicó ningún esquema de entrada para esta herramienta.

update_mail_accountUpdate fields on ONE mail account (PATCH — only fields you supply are changed). Omit password to keep the stored one.

Update fields on ONE mail account (PATCH — only fields you supply are changed). Omit password to keep the stored one.

No se publicó ningún esquema de entrada para esta herramienta.

delete_mail_accountprivilegiada⚠️ DESTRUCTIVE: Permanently delete a mail account and stop fetching from it. Mail rules using it are deleted too. Already-imported documents are not affected.

⚠️ DESTRUCTIVE: Permanently delete a mail account and stop fetching from it. Mail rules using it are deleted too. Already-imported documents are not affected.

No se publicó ningún esquema de entrada para esta herramienta.

test_mail_accountSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

process_mail_accountFetch mail for one account now and run its rules, instead of waiting for the schedule. Runs in the background; see list_tasks with task_type mail_fetch.

Fetch mail for one account now and run its rules, instead of waiting for the schedule. Runs in the background; see list_tasks with task_type mail_fetch.

No se publicó ningún esquema de entrada para esta herramienta.

list_mail_rulesSin descripción publicada

Esta herramienta no publicó ninguna descripción. Forge no se la inventa.

34 de 40 herramientas publicaron una descripción.

Los nombres y descripciones de las herramientas los escribe el publicador y se muestran literalmente como texto inerte. Son las cadenas que un cliente MCP pasa al modelo, así que Forge las analiza en busca de patrones de inyección de prompts — cualquier hallazgo aparece junto al análisis de seguridad de arriba. «Privilegiada» es una coincidencia de palabra clave en el nombre de la herramienta, no una auditoría de lo que hace: un nombre inofensivo puede hacer cualquier cosa.

Acerca de

Model Context Protocol (MCP) server for Paperless-NGX. Lets AI assistants manage documents and their versions, tags, correspondents, document types, custom fields, saved views, storage paths, workflows, mail accounts and rules, share links and bundles, no

Palabras clave
mcppaperless-ngxdocument-managementaiclaudemodel-context-protocolpaperless
Alternativas
Comparando superficies de herramientas…

Árbol de dependencias

Lo que un análisis de Forge resolvió a partir de los metadatos de npm el 2026-10-01: resolución observada, no una declaración del publicador.

60 paquetes resueltos · 5 directos · ninguno con avisos de seguridad La resolución se detiene en la profundidad 4 y en 60 paquetes.

El rastreo se detuvo en el límite de 60 paquetes. El resto del árbol nunca se resolvió.

Hay 36 paquetes resueltos más que no se dibujan aquí (límite de visualización: 24). Toda dependencia con avisos de seguridad se dibuja aunque se supere el límite. Inventario completo (SBOM CycloneDX)

Declaradas pero no resueltas

69 dependencias declaradas nunca llegaron al árbol. Faltan en la resolución de Forge, no en el paquete.

+57 más sin listar. Los recuentos por motivo de arriba las incluyen todas.

No se siguen: peerDependencies. Este árbol cubre solo dependencias en tiempo de ejecución, así que lo que estas arrastren nunca se resolvió.

Temas

Relacionados en documents & pdfs